ИНКАПСУЛЯЦИЯ ДАННЫХ ИЗОБРАЖЕНИЯ
ENCAPSULATING IMAGE DATA

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к хранению данных изображения, таких как неподвижные изображения, пакеты неподвижных изображений или видеоданные в мультимедийном хранилище с описательными метаданными. Такие метаданные как правило обеспечивают простой доступ к данным изображения и участкам данных изображения.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Некоторые из подходов, описанных в этом разделе, могут быть рассмотрены, но не обязательно являются подходами, которые были ранее сформулированы или рассмотрены. Вследствие этого, подходы, описываемые в данном разделе, не обязательно являются предшествующим уровнем техники для формулы изобретения в этой заявке и не допускаются в качестве предшествующего уровня техники при включении в данный раздел.
Стандарт HEVC задает профиль для кодирования неподвижных изображений и описывает особые инструменты для сжатия одиночных неподвижных изображения или пакетов неподвижных изображений. Для включения в стандарт ISO/IEC 23008, в Часть 12, под названием: «Формат Файла Изображений» было предложено Расширение Базового Формата Мультимедийного Файла ISO (ISOBMFF), используемое для такого вида данных изображения. Стандарт охватывает две формы хранения, соответствующие разным случаям использования:
- хранение последовательностей изображения, с хронометражем, который необязательно используется на декодере, и в которых изображения могут быть зависимыми от других изображений, и
- хранение одиночных изображений и совокупностей независимо кодированных изображений.
В первом случае инкапсуляция близка к инкапсуляции видеодорожек в Базовом Формате Мультимедийных Файлов ISO (т.е. в соответствии с Международной организацией по стандартизации) (см. документ «Information technology - Coding of audio-visual objects - Part 12: ISO base media file format», ISO/IEC 14496-12:2014, Пятая редакция, Avril 2015), и используются точно такие же инструменты и концепции, такие как поля (boxes) 'trak' и группирование образцов для описания. Поле 'trak' является полем формата файла, которое содержит суб-поля для описания дорожки, иначе говоря, последовательности с заданным временем связанных образцов.
Во втором случае используется набор полей ISOBMFF, поля 'meta'. Эти поля и их иерархия предлагают меньше инструментов описания, чем поля 'track' и относятся к «элементам информации» или «элементам», а не к связанным образцам.
Формат файла изображения может быть использован для локального отображения мультимедийных файлов или для потоковой передачи мультимедийных презентаций. Неподвижные Изображения HEVC имеют много применений, которые поднимают много вопросов.
Пакеты изображений являются одним применением. Пакеты изображений являются последовательностями неподвижных картинок, захваченных камерой и сохраненных в качестве единого представления (много элементов картинки ссылаются на блок данных). Пользователи могут пожелать выполнять несколько типов действий над этими картинками: выбирать одну в качестве миниатюры или обложки, применять эффекты к этим картинкам или подобное.
Таким образом существует потребность в описательных метаданных для идентификации списка картинок с их соответствующими байтами в блоке данных.
Другим применением является вычислительная фотография. В вычислительной фотографии пользователи имеют доступ к разным разрешениям одной и той же картинки (разные выдержки, разные фокусы и т.д.). Эти разные разрешения должны быть сохранены в качестве метаданных таким образом, чтобы можно было выбрать одно и можно было определить местоположение соответствующего фрагмента данных, и он мог быть извлечен для обработки (визуализации, редактирования, передачи или подобного).
С увеличением разрешения картинки по размеру, таким образом, существует потребность в обеспечении достаточного описания с тем, чтобы только некоторые пространственные части этих больших картинок могли быть легко идентифицированы и извлечены.
Другим видом применений является доступ к конкретным картинкам из видеопоследовательности, например, для реферирования видео, контрольных изображений в данных видеонаблюдения или подобного.
Для такого вида применений существует потребность в метаданных изображения, обеспечивающих простой доступ к ключевым изображениям, в дополнение к сжатым видеоданным и метаданным видео дорожек.
В дополнение профессиональные камеры достигли высоких пространственных разрешений. В настоящее время распространены видео или изображения с разрешением 4K2K. В настоящее время распространение получают даже 8k4k видео или изображения. Параллельно видео все чаще воспроизводится на мобильном и соединенных устройствах с возможностями потоковой передачи видео. Таким образом, разбиение видео на тайлы становится важным, если пользователь мобильного устройства желает отобразить или желает сфокусироваться на суб-частях видео при сохранении или даже улучшении качества. При использовании тайлов пользователь может, вследствие этого, интерактивно запрашивать пространственные суб-части видео.
Таким образом существует потребность в описании этих пространственных суб-частей видео компактным образом в формате файла для того, чтобы они были доступны без дополнительной обработки, кроме как простого синтаксического анализа полей метаданных. Применительно к изображениям, соответствующим описанному таким образом видео, для пользователя также интересен доступ к пространственным суб-частям.
В дополнение пользователи обычно преобразуют или составляют изображения, чтобы создавать новые производные изображения. Эти производные изображения получают при применении одной или более конкретных операций, таких как поворот или вырезание, к другим изображениям или набору изображений.
Таким образом существует потребность в описании операций, которые должны быть применены к одному или более выходным изображениям в качестве метаданных в формате файла для того, чтобы получить производные изображения из исходных изображений.
Стандарт ISO/IEC 23008-12 охватывает два способа для инкапсуляции (скрытия) неподвижных изображений в формат файла, которые недавно обсуждались.
Один способ основан на полях 'track', и упоминании последовательности с заданным временем из связанных образцов с помощью ассоциированных инструментов описания, а другой основан на полях 'meta', основанных на элементах информации, вместо образцов, обеспечивающих меньше инструментов описания, в частности для описания представляющей интерес области и поддержки организации тайлов.
Таким образом, существует потребность в обеспечении поддержки организации тайлов в новом Формате Файла Изображения.
Использование тайлов общеизвестно в предшествующем уровне техники, в особенности, во время сжатия. Что касается их индексации в Базовом Формате Мультимедийного Файла ISO, дескрипторы организации тайлов существуют в проектах изменения Части 15 стандарта ISO/IEC 14496 «Carriage of NAL unit structured video in the ISO Base Media File Format».
Тем не менее, эти дескрипторы основываются на полях 'track' и инструментах группирования образцов и не могут быть использованы в Формате Файла Неподвижного Изображения при использовании основанного на 'meta' подхода. Без таких дескрипторов становится сложным выбирать и извлекать тайлы из кодированной картинки, сохраненной в этом формате файла.
Фигура 1 иллюстрирует описание неподвижного изображения, закодированного с помощью тайлов в поле (100) 'meta' Базового Формата Мультимедийного Файла ISO, как раскрывается в положениях m32254 MPEG (стандарт сжатия движущегося изображения).
Элемент информации задается для полной картинки 101 в дополнение к соответствующим элементам информации для каждой картинки (102, 103, 104 и 105) тайла. Эти элементы информации хранятся в поле, именуемом 'ItemInfoBox' (iinf) (Поле Информации Элемента). Поле (106), именуемое 'ItemReferenceBox', из стандарта ISO BMFF используется для указания того, что зависимость (107) 'tile' существует между элементом информации полной картинки и четырьмя элементами информации, соответствующими картинкам (108) тайла. Идентификаторы для каждого элемента информации используются так, что поле (109), именуемый 'ItemLocationBox' (Поле Положения Элемента), предоставляет диапазон(ы) байтов в закодированных данных (110), который представляет собой каждый элемент информации. Другое поле 'ItemReferenceBox' (112) (Поле Ссылки на Элемент) используется для ассоциации метаданных (111) EXIF с элементом информации для полной картинки (101), и соответствующий блок (111) данных создается в поле (110) мультимедийных данных. Кроме того, для идентификации метаданных EXIF создается дополнительный элемент (113) информации.
Даже если полная картинка и ее тайлы вводятся в качестве элементов информации, здесь не предоставляется информация об организации тайлов. Более того, при ассоциации дополнительных метаданных с элементом информации (подобным EXIF), не создается блок данных, к которому обращаются посредством дополнительного 'ItemReferenceBox'.
Повторное использование информации об организации тайлов из EXIF и повторное использование механизма, заданного в проекте формата Файла Неподвижного Изображения, не позволили бы описать нерегулярную сетку существующими тэгами EXIF.
Таким образом, по-прежнему существует потребность в улучшениях в формате файла для неподвижных изображений, в особенности неподвижных изображений HEVC. В частности, существует потребность в способах для извлечения представляющей интерес области в неподвижных изображениях, сохраненных с помощью данного формата файла.
Изобретение лежит в рамках вышеупомянутого контекста.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии с первым аспектом изобретения, предоставляется способ инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, при этом способ содержит этапы, на которых:
- предоставляют информацию описания тайла, содержащую пространственные параметры для деления зоны изображения на один или более тайлов;
- предоставляют информацию элемента картинки тайла, идентифицирующую участок двоичного потока, представляющий тайл одиночного изображения;
- предоставляют информацию ссылки, связывающую упомянутый элемент картинки тайла с упомянутой информацией описания тайла, и
- выводят упомянутый двоичный поток вместе с упомянутой предоставленной информацией в качестве инкапсулированного файла данных.
Вывод может быть выполнен в соответствии с определенным стандартом и является читаемым и декодируемым.
Способ в соответствии с первым аспектом позволяет легко идентифицировать, выбирать и извлекать тайлы из, например, изображений со сверхвысоким разрешением (4K2K, 8K4K...) посредством синтаксического анализа элементов синтаксиса и без сложного вычисления.
Могут быть расширены инструменты описания полей метаданных Базового Формата Мультимедийного Файла ISO. В частности, это позволяет ассоциировать описание тайла с элементами информации.
Части иерархии полей 'meta' могут быть расширены так, чтобы предоставить дополнительные инструменты описания и, в особенности, поддерживать основанный на тайле доступ в рамках неподвижных изображений.
Способ в соответствии с первым аспектом позволяет легко извлекать из закодированной Неподвижной Картинки HEVC представляющую интерес область на основе тайлов HEVC.
Варианты осуществления изобретения обеспечивают поддержку описания тайла и доступ к тайлу для неподвижных изображений, закодированных в соответствии со стандартом HEVC.
Это позволяет сохранить признак представляющей интерес области, доступный видеодорожкам, для неподвижного изображения. В целом фрагменты неподвижной картинки, соответствующие определенной пользователем представляющей интерес области, могут быть идентифицированы и легко извлечены для визуализации или передачи мультимедийным проигрывателям.
Например, упомянутый инкапсулированный закодированный двоичный поток также может содержать информацию, идентифицирующую участок с заданным временем упомянутого потока данных, соответствующего видеопоследовательности.
Вследствие этого, двойная индексация может быть предоставлена в едином фрагменте данных, которая обеспечивает точно такие же возможности доступа к видео, как и в некоторых неподвижных изображениях, которые являются частью этого видео.
Например, информация описания тайла включает набор пространственных параметров для каждого элемента картинки тайла.
Например, информация описания тайла включает пространственные параметры общие для более чем одного элемента картинки тайла.
Например, информация описания тайла внедряется в двоичный поток.
Например, информация описания тайла предоставляется в качестве метаданных.
Например, информация ссылки включает тип ссылки и дополнительные описательные метаданные, включающие упомянутую информацию описания тайла.
Например, информация ссылки включает тип ссылки и параметр ссылки, относящийся к упомянутой информации описания тайлов.
Способ может дополнительно содержать предоставление элемента метаданных для ссылки на упомянутую информацию описания тайла в двоичном потоке.
Например, элементы картинки тайла группируются и при этом информация ссылки предоставляется для связывания группы элементов картинки тайла с упомянутой информацией описания тайла.
Например, все ссылки, связывающие элементы метаданных с другим элементом, включаются в единое поле ссылки в инкапсулированном файле данных.
Например, все зависимости от одного элемента, любого типа, сохраняются в едином дескрипторе информации элемента.
Например, при этом упомянутый вывод выполняется модулем сервера для адаптивной потоковой передачи.
Например, упомянутый вывод выполняется для сохранения в памяти.
Например, упомянутый вывод выполняется на дисплейный модуль для отображения.
Например, упомянутый вывод выполняется модулем связи для передачи.
Например, упомянутый инкапсулированный файл данных соответствует стандартизованному формату файла.
Например, упомянутый инкапсулированный файл данных является декодируемым и воспроизводимым.
В соответствии со вторым аспектом изобретения предоставляется способ обработки инкапсулированного файла данных, включающего закодированный двоичный поток, соответствующий одному или более изображениям, и информацию, включающую информацию описания тайла, содержащую пространственные параметры для деления зоны изображения на один или более тайлов, при этом способ содержит этапы, на которых:
- выбирают представляющую интерес область изображения,
- идентифицируют из упомянутой информации описания тайлов тайлы, которые соответствуют выбранной представляющей интерес зоне,
- выбирают один или более элементов картинки тайла, связанных с упомянутыми идентифицированными тайлами, причем каждый элемент картинки тайла идентифицирует участок двоичного потока, представляющий тайл одиночного изображения,
- извлекают участок двоичного потока, идентифицированный выбранным элементом(ами) картинки тайла, и
- выводят упомянутый извлеченный участок двоичного потока.
Например, при этом упомянутый вывод выполняется модулем сервера для адаптивной потоковой передачи.
Например, упомянутый вывод выполняется для сохранения в памяти.
Например, упомянутый вывод выполняется на дисплейный модуль для отображения.
Например, упомянутый вывод выполняется модулем связи для передачи.
Например, упомянутый инкапсулированный файл данных соответствует стандартизованному формату файла.
Например, упомянутый инкапсулированный файл данных является декодируемым и воспроизводимым.
В соответствии с третьим аспектом изобретения предоставляется способ обработки данных изображения, представляющих по меньшей мере одно изображение для инкапсуляции в файл инкапсуляции, при этом способ содержит этапы, на которых:
- получают пространственное подразделение упомянутого по меньшей мере одного изображения на множество участков изображения,
- определяют по меньшей мере одни данные идентификации участка, идентифицирующие участок данных в упомянутых данных изображения, представляющий участок изображения из упомянутого множества,
- инкапсулируют упомянутые данные изображения в упомянутый файл инкапсуляции наряду с по меньшей мере:
· данными описания подразделения, представляющими упомянутое подразделение упомянутого по меньшей мере одного изображения,
· упомянутыми данными идентификации участка, и
· данными ссылки, связывающими упомянутые данные описания подразделения и упомянутые данные идентификации участка.
Например, упомянутые данные изображения представляют множество изображений видеопоследовательности, и способ дополнительно содержит определение по меньшей мере одних данных идентификации времени, идентифицирующих участок данных в упомянутых данных изображения, представляющий участок времени упомянутой видеопоследовательности, и упомянутые данные изображения инкапсулируются наряду с упомянутыми данными идентификации времени.
Например, множество данных идентификации участка определяются соответственно представляющими один и тот же участок изображения из изображений упомянутого участка времени у упомянутой видеопоследовательности.
Например, по меньшей мере упомянутые данные описания подразделения инкапсулируются в качестве метаданных в данные изображения.
Например, упомянутое пространственное подразделение вставляется в двоичный поток, содержащий упомянутые данные изображения.
Например, соответствующие данные идентификации участка определяются для каждого участка изображения.
Например, общие данные идентификации участка определяются для множества участков изображения.
Способ может дополнительно содержать вывод упомянутого файла инкапсуляции в двоичный поток для адаптивной потоковой передачи посредством серверного устройства.
Способ может дополнительно содержать вывод упомянутого файла инкапсуляции в двоичный поток для передачи дисплейному устройству для отображения упомянутых данных изображения.
Способ может дополнительно содержать вывод упомянутого файла инкапсуляции в двоичный поток для передачи клиентскому устройству.
Способ может дополнительно содержать сохранение упомянутого файла инкапсуляции на запоминающем устройстве.
Например, данные ссылки включают тип ссылки и дополнительные описательные метаданные, включающие упомянутые данные описания подразделения.
Например, данные ссылки включают тип ссылки и параметр ссылки, относящийся к упомянутым данным описания подразделения.
Например, на упомянутые данные описания подразделения ссылаются в элементе метаданных.
Например, данные идентификации участка группируются и при этом данные ссылки связывают группу данных идентификации участка с упомянутыми данными идентификации участка.
Например, упомянутый инкапсулированный файл содержит единое поле ссылки, содержащее все данные ссылки для данных изображения.
Например, упомянутый инкапсулированный файл содержит описание, содержащее представление зависимостей между упомянутыми данные описания подразделения, данными идентификации участка и данными ссылки.
В соответствии с четвертым аспектом изобретения, предоставляется способ обработки файла инкапсуляции, содержащего:
- данные изображения, представляющие по меньшей мере одно изображение,
- данные описания подразделения, представляющие пространственное подразделение упомянутого по меньшей мере одного изображения на множество участков изображения,
- по меньшей мере одни данные идентификации участка, идентифицирующие участок данных в упомянутых данных изображения, представляющие участок изображения из упомянутого множества, и
- данные ссылки, связывающие упомянутые данные описания подразделения с упомянутой информацией участка,
при этом способ содержит этапы, на которых:
- определяют представляющую интерес область в упомянутом по меньшей мере одном изображении,
- определяют, на основании упомянутых данных описания подразделения, по меньшей мере один участок изображения, принадлежащий к упомянутой представляющей интерес области,
- осуществляют доступ, на основании упомянутых данных ссылки, к по меньшей мере одним данным идентификации участка, идентифицирующим участок данных в упомянутых данных изображения, представляющий упомянутый по меньшей мере один участок изображения, принадлежащий к упомянутой представляющей интерес области, и
- извлекают упомянутый участок данных в упомянутых данных изображения.
Например, упомянутые данные изображения содержат множество изображений видеопоследовательности, и упомянутый файл инкапсуляции дополнительно содержит по меньшей мере одни данные идентификации времени, идентифицирующие участок данных в упомянутых данных изображения, представляющий участок времени упомянутой видеопоследовательности, при этом извлекаются представляющая интерес область, определенная для изображений упомянутого участка времени у упомянутой видеопоследовательности, и участки данных, соответствующие упомянутой представляющей интерес области во множестве изображений упомянутого участка времени у упомянутой видеопоследовательности.
Например, множество данных идентификации участка соответственно представляют один и тот же участок изображения у изображений упомянутого участка времени у упомянутой видеопоследовательности.
Например, по меньшей мере упомянутые данные описания подразделения инкапсулируются в качестве метаданных для данных изображения.
Например, соответствующие данные идентификации участка определяются для каждого участка изображения.
Например, общие данные идентификации участка определяются для множества участков изображения.
Способ может дополнительно содержать прием упомянутого файла инкапсуляции в качестве двоичного потока, адаптивная потоковая передача которого осуществляется серверным устройством.
Способ может дополнительно содержать отображение упомянутой представляющей интерес области.
Например, данные ссылки включают тип ссылки и дополнительные описательные метаданные, включающие упомянутые данные описания подразделения.
Например, данные ссылки включают тип ссылки и параметр ссылки, относящийся к упомянутым данным описания подразделения.
Например, на упомянутые данные описания подразделения ссылаются в элементе метаданных.
Например, данные идентификации участка группируются и при этом данные ссылки связывают группу данных идентификации участка с упомянутыми данными идентификации участка.
Например, упомянутый инкапсулированный файл содержит единое поле ссылки, содержащее все данные ссылки для данных изображения.
Например, упомянутый инкапсулированный файл содержит описание, содержащее представление зависимостей между упомянутыми данными описания подразделения, данными идентификации участка и данными ссылки.
В соответствии с пятым аспектом изобретения, предоставляется устройство, выполненное с возможностью реализации способа в соответствии с первым аспектом.
Устройство может содержать:
- блок обработки, выполненный с возможностью предоставления информации описания тайлов, содержащей пространственные параметры для деления зоны изображения на один или более тайлов; предоставления информации элемента картинки тайла, идентифицирующей участок двоичного потока, представляющий тайл одиночного изображения; предоставления информации ссылки, связывающей упомянутый элемент картинки тайла с упомянутой информацией описания тайла, и
- блок связи, выполненный с возможностью вывода упомянутого двоичного потока вместе с упомянутой предоставленной информацией в качестве инкапсулированного файла данных.
В соответствии с шестым аспектом изобретения, предоставляется устройство, выполненное с возможностью реализации способа в соответствии со вторым аспектом.
Устройство может быть выполнено с возможностью обработки инкапсулированного файла данных, включающего в себя закодированный двоичный поток, соответствующий одному или более изображениям, и информацию, включающую в себя информацию описания тайла, содержащую пространственные параметры для деления зоны изображения на один или более тайлов. Устройство может также содержать:
- блок обработки, выполненный с возможностью выбора представляющей интерес области изображения, идентификации тайлов из упомянутой информации описания тайлов, которые соответствуют выбранной представляющей интерес зоне, выбора одного или более элементов картинки тайла, связанных с упомянутыми идентифицированными тайлами, причем каждый элемент картинки тайла идентифицирует участок двоичного потока, представляющий тайл одиночного изображения, извлечения участка двоичного потока, идентифицированного выбранным элементом(ами) картинки тайла, и
- блок связи, выполненный с возможностью вывода упомянутого извлеченного участка двоичного потока.
В соответствии с седьмым аспектом изобретения, предоставляется устройство, выполненное с возможностью реализации способа в соответствии с третьим аспектом.
Устройство может быть выполнено с возможностью обработки данных изображения, представляющих по меньшей мере одно изображение для инкапсуляции в файл инкапсуляции, и устройство может содержать блок обработки, выполненный с возможностью получения пространственного подразделения упомянутого по меньшей мере одного изображения на множество участков изображения, определения по меньшей мере одних данных идентификации участка, идентифицирующих участок данных в упомянутых данных изображения, представляющий участок изображения из упомянутого множества, инкапсуляции упомянутых данных изображения в упомянутый файл инкапсуляции наряду с по меньшей мере:
- данными описания подразделения, представляющими упомянутое подразделение упомянутого по меньшей мере одного изображения,
- упомянутыми данными идентификации участка и
- данными ссылки, связывающими упомянутые данные описания подразделения с упомянутыми данными идентификации участка.
В соответствии с восьмым аспектом изобретения, предоставляется устройство, выполненное с возможностью реализации способа в соответствии с четвертым аспектом.
Устройство может быть выполнено с возможностью обработки файла инкапсуляции, содержащего:
- данные изображения, представляющие по меньшей мере одно изображение,
- данные описания подразделения, представляющие пространственное подразделение упомянутого по меньшей мере одного изображения на множество участков изображения,
- по меньшей мере, одни данные идентификации участка, идентифицирующие участок данных в упомянутых данных изображения, представляющие участок изображения из упомянутого множества, и
- данные ссылки, привязывающие упомянутые данные описания подразделения к упомянутой информации участка.
Устройство может также содержать блок обработки, выполненный с возможностью определения представляющей интерес области в упомянутом по меньшей мере одном изображении, определения на основании упомянутых данных описания подразделения по меньшей мере одного участка изображения, принадлежащего упомянутой представляющей интерес области, осуществления доступа на основании упомянутых данных ссылки к по меньшей мере данным идентификации одного участка, идентифицирующим участок данных в упомянутых данных изображения, представляющий упомянутый по меньшей мере один участок изображения, принадлежащий упомянутой представляющей интерес области, и извлечения упомянутого участка данных в упомянутых данных изображения.
В соответствии с девятым аспектом изобретения, предоставляется система, содержащая:
- первое устройство в соответствии с пятым или седьмым аспектом и
- второе устройство в соответствии с шестым или восьмым аспектом для обработки файлов из упомянутого первого устройства.
В соответствии с десятым аспектом изобретения, предоставляются компьютерные программы и компьютерные программные продукты, содержащие команды для реализации способов в соответствии с первым, вторым, третьим и/или четвертым аспектом(ами) изобретения, когда загружаются и исполняются на компьютерном средстве программируемого устройства.
В соответствии с одиннадцатым аспектом изобретения, предоставляется способ для инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, при этом инкапсулированный двоичный поток содержит раздел данных и раздел метаданных. Способ содержит этапы, на которых:
- предоставляют информацию элемента изображения, идентифицирующую участок раздела данных, представляющий собой фрагмент изображения или изображение одиночного изображения;
- предоставляют информацию описания изображения, содержащую параметры, включающие в себя параметры отображения и/или операторы преобразования, относящиеся к одному или более изображениям, и
- выводят упомянутый двоичный поток совместно с упомянутой предоставленной информацией в качестве инкапсулированного файла данных;
- при этом информация описания изображения сохраняется в разделе метаданных.
В варианте осуществления каждый параметр, содержащийся в информации описания изображения, ассоциирован с дополнительными данными, которые содержат:
- информацию типа и/или
- идентификатор, используемый для связывания информации элемента изображения с упомянутым параметром.
В варианте осуществления раздел метаданных включается в поле данных 'meta' ISOBMFF.
В варианте осуществления дополнительными данными является заголовок.
В варианте осуществления дополнительными данными является элемент Virtual (Виртуальный).
В другом варианте осуществления каждый из операторов преобразования, содержащихся в информации описания изображения, ассоциирован с дополнительными данными, которые содержат идентификатор, используемый для связывания преобразованного элемента с упомянутыми операторами преобразования.
В варианте осуществления поле, хранящееся в разделе метаданных, включает в себя по меньшей мере один оператор преобразования.
В варианте осуществления раздел данных инкапсулированного двоичного потока содержит преобразованный элемент, ассоциированный с одним или более операторами преобразования, причем раздел метаданных дополнительно содержит:
- информацию для идентификации исходного изображения, к которому применяется оператор преобразования, и
- информацию для локализации преобразованного элемента в разделе данных.
В варианте осуществления преобразованный элемент включает в себя по меньшей мере один индекс преобразования, позволяющий идентифицировать один из оператора преобразования в разделе метаданных.
В соответствии с двенадцатым аспектом изобретения, предоставляется способ обработки инкапсулированного файла данных, содержащего раздел данных и раздел метаданных, включающего в себя закодированный двоичный поток, соответствующий одному или более изображениям в разделе данных, и информацию в разделе метаданных, включающую в себя информацию описания изображения или фрагмента изображения, содержащую параметры, включающие в себя параметры отображения и/или операторы преобразования, относящиеся к одному или более изображениям или фрагментам изображений. Способ содержит этапы, на которых:
- выбирают представляющее интерес изображение или фрагмент изображения,
- идентифицируют из упомянутой информации описания изображения или фрагмента изображения, на которую ссылаются, ассоциированные параметры отображения и/или операторы преобразования из раздела метаданных;
- в случае, когда были идентифицированы операторы преобразования, применяют преобразование к изображению или фрагменту изображения и отображают упомянутое изображение или фрагмент изображения в итоге преобразованное в соответствии с упомянутыми параметрами отображения.
В варианте осуществления способ дополнительно содержит, перед этапом идентификации, извлечение дополнительных данных, содержащихся в упомянутых параметрах, при этом упомянутые дополнительные данные содержат:
- информацию типа и/или
- идентификатор, используемый для связывания информации элемента изображения или фрагмента изображения с упомянутым параметром.
В варианте осуществления раздел метаданных включается в поле данных 'meta' ISOBMFF.
В варианте осуществления дополнительными данными является заголовок.
В варианте осуществления дополнительными данными является элемент Virtual.
В другом варианте осуществления каждый из операторов преобразования, содержащихся в информации описания изображения, ассоциирован с дополнительными данными, которые содержат идентификатор, используемый для связывания преобразованного элемента с упомянутыми операторами преобразования.
В варианте осуществления поле, хранящееся в разделе метаданных, включает в себя по меньшей мере один оператор преобразования.
В варианте осуществления раздел данных инкапсулированного двоичного потока содержит преобразованный элемент, ассоциированный с одним или более операторами преобразования, причем раздел метаданных дополнительно содержит:
- информацию для идентификации исходного изображения, к которому применяется оператор преобразования, и
- информацию для локализации преобразованного элемента в разделе данных.
В варианте осуществления преобразованный элемент включает в себя по меньшей мере один индекс преобразования, позволяющий идентифицировать один из оператора преобразования в разделе метаданных.
В соответствии с тринадцатым аспектом изобретения, предоставляется серверное устройство инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, выполненное с возможностью реализации способа инкапсуляции в соответствии с одиннадцатым аспектом изобретения.
В соответствии с четырнадцатым аспектом изобретения, предоставляется клиентское устройство инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, выполненное с возможностью реализации способа обработки в соответствии с двенадцатым аспектом изобретения.
В соответствии с пятнадцатым аспектом изобретения, предоставляются компьютерные программы и компьютерные программные продукты, содержащие команды для реализации способов в соответствии с одиннадцатым и двенадцатым аспектом изобретения, когда загружаются и исполняются на компьютерном средстве программируемого устройства.
В соответствии с шестнадцатым аспектом изобретения, предоставляется способ инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, при этом инкапсулированный двоичный поток содержит раздел данных и раздел метаданных, при этом способ содержит этапы, на которых:
- предоставляют информацию элемента изображения, идентифицирующую участок раздела данных, представляющий собой фрагмент изображения или изображение одиночного изображения и/или набор одиночных изображений;
- предоставляют информацию описания изображения, содержащую параметры, включающие в себя параметры отображения и/или операторы преобразования, относящиеся к одному или более изображениям, и
- выводят упомянутый двоичный поток вместе с упомянутой предоставленной информацией в качестве инкапсулированного файла данных.
Упомянутая информация элемента изображения содержит одно или более свойств, включающих в себя по меньшей мере часть информации описания изображения, предназначенной для рассматриваемого фрагмента изображения или одиночного изображения, или набора одиночных изображений, при этом упомянутая информация описания изображения задается в одном или более полях.
Этот аспект изобретения позволяет обеспечить четкое разделение данных и метаданных для эффективного ссылочного механизма.
В варианте осуществления информация элемента изображения представляет собой поле и каждое свойство информации элемента изображения представляет собой поле, при этом поля свойств организованы по порядку с образованием таблицы полей.
В варианте осуществления каждое свойство применяется к фрагменту изображения или изображению и/или набору одиночных изображений, следуя порядку появления или соответствующему полю в таблице полей.
В варианте осуществления фрагмент изображения или одиночное изображение и/или набор одиночных изображений относятся к видеопоследовательности, при этом одно из свойств информации элемента изображения содержит один или более параметров инициализации для ссылки на информацию инициализации упомянутой видеопоследовательности.
В варианте осуществления часть информации описания изображения, совместно используемая среди нескольких фрагментов изображений или одиночных изображений и/или набора одиночных изображений, задается в одном предназначенном совместно используемом поле, при этом каждая информация описания изображения является извлекаемой через структуру для связывания рассматриваемой информации элемента изображения с по меньшей мере одной информацией описания изображения, причем упомянутая структура связей содержит:
- первый идентификатор из расчета на рассматриваемую информацию элемента изображения, причем упомянутый первый идентификатор задается в качестве свойства информации элемента изображения и ссылается на второй идентификатор с тем же самым значением в предназначенном совместно используемом поле,
- один или несколько вторых идентификаторов, включенных в предназначенное совместно используемое поле, причем каждый второй идентификатор ссылается на информацию описания изображения.
В варианте осуществления часть информации описания изображения, совместно используемая среди нескольких фрагментов изображений или одиночных изображений и/или набора одиночных изображений, задается в двух предназначенных совместно используемых полях, причем одно совместно используемое поле относится к параметрам отображения и одно другое совместно используемое поле относится к операторам преобразования, причем каждая информация описания изображения является извлекаемой через структуру для связывания информации элемента изображения с по меньшей мере одной информацией описания изображения.
В варианте осуществления упомянутая структура связей содержит два параметра типа ссылки, связывающих информацию элемента изображения и по меньшей мере одну информацию описания изображения, при этом каждый параметр типа ссылки является особым для одного из предназначенных совместно используемых полей.
В варианте осуществления упомянутая структура связей содержит:
- первый и второй идентификаторы из расчета на рассматриваемую информацию элемента изображения, при этом упомянутый первый идентификатор задается в качестве свойства информации элемента изображения и ссылается на третьи идентификаторы в предназначенном совместно используемом поле, относящемся к параметрам отображения, при этом упомянутые вторые идентификаторы задаются в качестве свойства информации элемента изображения и ссылаются на четвертые идентификаторы в предназначенном совместно используемом поле, относящемся к операторам преобразования,
- один или несколько третьих и четвертых идентификаторов, соответственно включенных в предназначенные совместно используемые поля, которые относятся к параметрам отображения и операторам преобразования, при этом каждый третий и четвертый идентификаторы соответственно ссылаются на параметр отображения и оператор преобразования.
В варианте осуществления один из параметров отображения является сеткой для определения набора одиночных изображений, соответствующих частям одиночного изображения.
В варианте осуществления изображения из набора одиночных изображений относятся к одному и тому же одиночному изображению.
В соответствии с семнадцатым аспектом изобретения предоставляется способ получения инкапсулированного двоичного потока, представляющего одно или более изображений, при этом инкапсулированный двоичный поток содержит закодированный раздел данных и раздел метаданных, при этом способ содержит этапы, на которых:
- получают информацию элемента изображения, идентифицирующую участок раздела данных, представляющий фрагмент изображения или изображение одиночного изображения и/или набор одиночных изображений;
- получают информацию описания изображения, содержащую параметры, включающие в себя параметры отображения и/или операторы преобразования, относящиеся к одному или более изображениям, и
- извлекают упомянутый двоичный поток совместно с упомянутой определенной информацией в качестве инкапсулированного файла данных.
Упомянутая информация элемента изображения содержит одно или более свойства, включающие в себя по меньшей мере часть информации описания изображения, предназначенной для рассматриваемого фрагмента изображения или одиночного изображения, или набора одиночных изображений, при этом упомянутая информация описания изображения задается в одном или более полях.
В варианте осуществления информация элемента изображения представляет собой поле и каждое свойство информации элемента изображения представляет собой поле, при этом поля свойств организованы по порядку с образованием таблицы полей.
В варианте осуществления каждое свойство применяется к фрагменту изображения или изображению и/или набору одиночных изображений, следуя порядку появления или соответствующему полю в таблице полей.
В варианте осуществления фрагмент изображения или одиночное изображение и/или набор одиночных изображений относятся к видеопоследовательности, при этом одно из свойств информации элемента изображения содержит один или более параметров инициализации для ссылки на информацию инициализации упомянутой видеопоследовательности.
В варианте осуществления часть информации описания изображения, совместно используемая среди нескольких фрагментов изображений или одиночных изображений и/или набора одиночных изображений, задается в одном предназначенном совместно используемом поле, при этом каждая информация описания изображения является извлекаемой через структуру для связывания рассматриваемой информации элемента изображения с по меньшей мере одной информацией описания изображения, причем упомянутая структура связей содержит:
- первый идентификатор из расчета на рассматриваемую информацию элемента изображения, причем упомянутый первый идентификатор задается в качестве свойства информации элемента изображения и ссылается на второй идентификатор с тем же самым значением в предназначенном совместно используемом поле,
- один или несколько вторых идентификаторов, включенных в предназначенное совместно используемое поле, причем каждый второй идентификатор ссылается на информацию описания изображения.
В варианте осуществления часть информации описания изображения, совместно используемая среди нескольких фрагментов изображений или одиночных изображений и/или набора одиночных изображений, задается в двух предназначенных совместно используемых полях, причем одно совместно используемое поле относится к параметрам отображения и одно другое совместно используемое поле относится к операторам преобразования, причем каждая информация описания изображения является извлекаемой через структуру для связывания информации элемента изображения с по меньшей мере одной информацией описания изображения.
В варианте осуществления упомянутая структура связей содержит два параметра типа ссылки, связывающих информацию элемента изображения и по меньшей мере одну информацию описания изображения, при этом каждый параметр типа ссылки является особым для одного из предназначенных совместно используемых полей.
В варианте осуществления упомянутая структура связей содержит:
- первый и второй идентификаторы из расчета на рассматриваемую информацию элемента изображения, при этом упомянутый первый идентификатор задается в качестве свойства информации элемента изображения и ссылается на третьи идентификаторы в предназначенном совместно используемом поле, относящемся к параметрам отображения, при этом упомянутые вторые идентификаторы определяются в качестве свойства информации элемента изображения и ссылаются на четвертые идентификаторы в предназначенном совместно используемом поле, относящемся к операторам преобразования,
- один или несколько третьих и четвертых идентификаторов, соответственно включенных в предназначенные совместно используемые поля, которые относятся к параметрам отображения и операторам преобразования, при этом каждый третий и четвертый идентификаторы соответственно ссылаются на параметр отображения и оператор преобразования.
В варианте осуществления один из параметров отображения является сеткой для определения набора одиночных изображений, соответствующих частям одиночного изображения.
В варианте осуществления изображения из набора одиночных изображений относятся к одному и тому же одиночному изображению.
В соответствии с восемнадцатым аспектом изобретения, предоставляется устройство для инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, выполненное с возможностью реализации способа в соответствии с шестнадцатым аспектом изобретения.
В соответствии с девятнадцатым аспектом изобретения предоставляется устройство для обработки инкапсулированного двоичного потока, представляющего одно или более изображений, выполненное с возможностью реализации способа в соответствии с семнадцатым аспектом изобретения.
В соответствии с двадцатым аспектом изобретения предоставляется система, содержащая:
- первое устройство в соответствии с восемнадцатым аспектом изобретения и
- второе устройство в соответствии с девятнадцатым аспектом изобретения для обработки файлов от упомянутого первого устройства.
В соответствии с двадцать первым аспектом изобретения предоставляется компьютерный программный продукт, содержащий команды для реализации способа в соответствии с шестнадцатым или семнадцатым аспектом изобретения, когда программа загружается и исполняется программируемым устройством.
В соответствии с двадцать вторым аспектом изобретения, предоставляется невременное средство хранения информации, считываемое компьютером или микропроцессором, хранящее команды компьютерной программы, для реализации способа в соответствии с шестнадцатым или семнадцатым аспектом изобретения, когда программа загружается и исполняется компьютером или микропроцессором.
В соответствии с двадцать третьим аспектом изобретения, предоставляется способ инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, при этом инкапсулированный двоичный поток содержит раздел данных и раздел метаданных. Способ содержит этапы, на которых:
- предоставляют информацию элемента изображения, идентифицирующую участок раздела данных, представляющий фрагмент изображения или изображение одиночного изображения и/или набор одиночных изображений;
- предоставляют информацию описания изображения, содержащую параметры, включающие в себя параметры отображения и/или операторы преобразования, относящиеся к одному или более изображениям, и
- выводят упомянутый двоичный поток совместно с упомянутой предоставленной информацией в качестве инкапсулированного файла данных.
Информация описания изображения задается в одном или двух предназначенных полях, при этом каждая информация описания изображения является извлекаемой через структуру для связывания информации элемента изображения с по меньшей мере одной информацией описания изображения.
В варианте осуществления информация описания изображения задается в одном предназначенном поле, при этом упомянутая структура связей содержит параметр типа ссылки, связывающий информацию элемента изображения и по меньшей мере одну информацию описания изображения.
В варианте осуществления информация описания изображения задается в одном или двух предназначенных полях, при этом упомянутая структура связей содержит один или два набора индексов для связывания информации элемента изображения и по меньшей мере одной информации описания изображения, при этом каждый набор ассоциирован с одним из предназначенных полей.
В варианте осуществления информация описания изображения задается в двух предназначенных полях, при этом одно поле относится к параметрам отображения и одно другое поле относится к операторам преобразования.
В варианте осуществления информация описания изображения задается в двух предназначенных полях, при этом упомянутая структура связей содержит два параметра типа ссылки, соответственно ассоциированных с каждым одним из двух предназначенных полей, при этом каждый параметр типа ссылки связывает информацию элемента изображения и по меньшей мере одну информацию описания изображения в ассоциированном предназначенном поле.
В соответствии с двадцать четвертым аспектом изобретения предоставляется способ получения инкапсулированного двоичного потока, представляющего одно или более изображений, при этом инкапсулированный двоичный поток содержит закодированный раздел данных и раздел метаданных, при этом способ содержит этапы, на которых:
- получают информацию элемента изображения, идентифицирующую участок раздела данных, представляющий фрагмент изображения или изображение одиночного изображения и/или набор одиночных изображений;
- получают информацию описания изображения, содержащую параметры, включающие в себя параметры отображения и/или операторы преобразования, относящиеся к одному или более изображениям, и
- извлекают упомянутый двоичный поток совместно с упомянутой определенной информацией в качестве инкапсулированного файла данных,
- при этом информация описания изображения задается в одном или двух предназначенных полях, при этом каждая информация описания изображения является извлекаемой через структуру для связывания информации элемента изображения с по меньшей мере одной информацией описания изображения.
В варианте осуществления информация описания изображения задается в одном предназначенном поле, при этом упомянутая структура связей содержит параметр типа ссылки, связывающий информацию элемента изображения и по меньшей мере одну информацию описания изображения.
В варианте осуществления информация описания изображения задается в одном или двух предназначенных полях, при этом упомянутая структура связей содержит один или два набора индексов для связывания информации элемента изображения и по меньшей мере одной информации описания изображения, при этом каждый набор ассоциирован с одним из предназначенных полей.
В варианте осуществления информация описания изображения задается в двух предназначенных полях, при этом одно поле относится к параметрам отображения и одно другое поле относится к операторам преобразования.
В варианте осуществления информация описания изображения задается в двух предназначенных полях, при этом упомянутая структура связей содержит два параметра типа ссылки, соответственно ассоциированных с каждым одним из двух предназначенных полей, при этом каждый параметр типа ссылки связывает информацию элемента изображения и по меньшей мере одну информацию описания изображения в ассоциированном предназначенном поле.
В соответствии с двадцать пятым аспектом изобретения предоставляется устройство для инкапсуляции закодированного двоичного потока, представляющего одно или более изображений, выполненное с возможностью реализации способа в соответствии с двадцать третьим аспектом изобретения.
В соответствии с двадцать шестым аспектом изобретения предоставляется устройство для обработки инкапсулированного двоичного потока, представляющего одно или более изображений, выполненное с возможностью реализации способа в соответствии с двадцать четвертым аспектом изобретения.
В соответствии с двадцать седьмым аспектом изобретения предоставляется система, содержащая:
- первое устройство в соответствии с двадцать пятым аспектом изобретения и
- второе устройство в соответствии с двадцать шестым аспектом изобретения для обработки файлов из упомянутого первого устройства.
В соответствии с двадцать восьмым аспектом изобретения предоставляется компьютерный программный продукт, содержащий команды для реализации способа в соответствии с двадцать третьим или двадцать четвертым аспектами изобретения, когда программа загружается и исполняется программируемым устройством.
В соответствии с двадцать восьмым аспектом изобретения предоставляется невременное средство хранения информации, считываемое компьютером или микропроцессором, хранящее команды компьютерной программы, для реализации способа в соответствии с двадцать третьим или двадцать четвертым аспектами изобретения, когда программа загружается и исполняется компьютером или микропроцессором.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Прочие признаки и преимущества изобретения станут очевидны из нижеследующего описания неограничивающих примерных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых, в дополнение к Фигуре 1:
- Фигура 2 иллюстрирует пример организованного в тайлах видео;
- Фигура 3 иллюстрирует разнообразные конфигурации тайла/слайса в стандарте видеосжатия HEVC;
- Фигура 4 иллюстрирует инкапсуляцию тайла в соответствии с Базовым форматом Мультимедийного Файла ISO с помощью полей 'track';
- Фигура 5 иллюстрирует стандартные метаданные для описания элементов информации в полях 'meta' у ISOBMFF;
- Фигура 6 иллюстрирует примерное расширение описания элемента информации;
- Фигура 7 иллюстрирует ссылочные механизм между элементами информации;
- Фигура 8 иллюстрирует контекст реализации вариантов осуществления изобретения;
- Фигура 9 является принципиальной блок-схемой вычислительного устройства для реализации одного или более вариантов осуществления изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В дальнейшем описываются варианты осуществления изобретения.
Для того чтобы лучше понимать технический контекст, организация тайлов видео объясняется со ссылкой на Фигуру 2, которая показывает видео (200) с последовательными временными кадрами. Каждый кадр (201) разделен на 8 участков (здесь прямоугольных участков), называемых «тайлами», T1-T8. Число и форма тайлов могут быть разными. В дальнейшем считается, что организация тайлов является одной и той же каким бы ни был индекс видеокадра.
Результатом данной организации тайлов являются 8 независимых фрагментов видео (202). Эти фрагменты видео представляют разбиение всего общего видео. Каждый независимый фрагмент видео может быть закодирован в качестве независимого двоичного потока, например, в соответствии со стандартами AVC или HEVC. Фрагмент видео также может быть частью одного единого видео двоичного потока, как, например, тайлы стандарта HEVC или слайсы стандарта AVC.
Стандарт HEVC задает разное пространственное подразделение картинок: тайлы, слайсы и сегменты слайса. Эти разные подразделения (или разбиения) были введены для разных целей: слайсы относятся к вопросам потоковой передачи, тогда как тайлы и сегменты слайса были заданы для параллельной обработки.
Тайл задает прямоугольную область картинки, которая содержит целое число Единиц Дерева Кодирования (CTU). Фигура 3 показывает организацию тайлов изображения (300), характеризуемого границами (301, 302) строк и столбцов. Это делает тайлы хорошими кандидатами для описания представляющих интерес областей, исходя из позиции и размера. Тем не менее, организация двоичного потока стандарта HEVC с точки зрения синтаксиса и его инкапсуляция в единицы Слоя Сетевой Абстракции (NAL) скорее основаны на слайсах (как в стандарте AVC).
В соответствии со стандартом HEVC, слайс является набором сегментов слайса, при этом по меньшей мере первый сегмент слайса является независимым сегментом слайса, прочие, если таковые имеются, являются зависимыми сегментами слайса. Сегмент слайса содержит целое число последовательных CTU (по порядку растрового сканирования). Он не обязательно имеет прямоугольную форму (таким образом меньше подходит, чем тайл, для представления представляющей интерес области). Сегмент слайса кодируется в двоичном потоке HEVC в виде заголовка, именуемого «slice_segment_header» (заголовок сегмента слайса), за которым следуют данные, именуемые «slice_segment_data» (данные сегмента слайса). Независимые сегменты слайса и зависимые сегменты слайса отличаются их заголовком: зависимые сегменты слайса имеют более короткий заголовок, поскольку они повторно используют информацию из заголовка независимого сегмента слайса. Как независимые, так и зависимые сегменты слайса содержат список точек входа в двоичный поток: либо для тайлов, либо для точек синхронизации энтропийного декодирования.
Фигура 3 показывает другие конфигурации изображений 310 и 320 слайса, сегментов слайса и тайлов. Эти конфигурации отличаются от конфигурации изображения 300 тем, что один тайл имеет один слайс (содержащий только один независимый сегмент слайса). Изображение 310 разделено на два вертикальных тайла (311, 312) и один слайс (с 5 сегментами слайса). Изображение 320 разбито на два тайла (321, 322), при этом левый тайл 321 с двумя слайсами (каждый с двумя сегментами слайса), правый тайл 322 с одним слайсом (с двумя сегментами слайса). Стандарт HEVC задает правила организации между тайлами и сегментами слайса, которые могут быть обобщены следующим образом (должно выполняться одно или оба условия):
- Все CTU в сегменте слайса принадлежат одному и тому же тайлу, и
- Все CTU в тайле принадлежат одному и тому же сегменту слайса.
Чтобы иметь согласованную поддержку и передачу представляющей интерес области, предпочтительной является конфигурация 300, в которой один тайл содержит один слайс с одним независимым сегментом. Тем не менее, решение инкапсуляции будет работать и с другими конфигурациями 310 или 320.
В то время как тайл является подходящей поддержкой для представляющих интерес областей, сегмент слайса является объектом, который будет фактически помещен в единицы NAL для передачи по сети и в отношении которого осуществляется агрегация с образованием единицы доступа (кодированной картинки или образца на уровне формата файла). В соответствии со стандартом HEVC, тип единицы NAL указывается в заголовке единицы NAL. Для единиц NAL типа «кодированный сегмент слайса», slice_segment_header указывает через элемент синтаксиса «slice_segment_address» (адрес сегмента слайса) адрес первого блока дерева кодирования в сегменте слайса. Информация организации тайлов предоставляется в единице NAL PPS (Набор Параметров Картинки). Отношение между сегментом слайса и тайлом тогда может быть логически выведено из этих параметров.
В сущности, по границам тайлов повторно устанавливаются пространственные прогнозы. Тем не менее, ничто не препятствует использованию тайлом временных прогнозов из другого тайла в кадре(ах) ссылки. Для того чтобы построить независимые тайлы, во время кодирования векторы движения для единиц прогнозов внутри тайла ограничиваются, чтобы оставаться в совмещенном тайле в кадре(ах) ссылки. В дополнение, внутриконтурные фильтры (устранения блочности и SAO) должны быть деактивированы на границах тайлов с тем, чтобы не вносился дрейф ошибки при декодировании только одного тайла. Данное управление внутриконтурными фильтрами уже доступно в стандарте HEVC и устанавливается в заголовках сегмента слайса с помощью флага, называемого «loop_filter_across_tiles_enabled_flag» (флаг разрешенного контурного фильтра по тайлам). При явной установке данного флага на 0, пиксели на границах тайла не зависят от пикселей, которые падают на границу соседних тайлов. Когда два условия в отношении векторов движения и внутриконтурных фильтров выполняются, говорят, что тайлы являются «независимо декодируемыми» или «независимыми».
Когда видеопоследовательность кодируется в качестве набора независимых тайлов, она может быть декодирована с использованием основанного на тайле декодирования из одного кадра в другой без риска пропуска данных ссылки или распространения ошибок восстановления. Данная конфигурация позволяет восстанавливать только пространственную часть исходного видео, которая соответствует, например, представляющей интерес области.
В дальнейшем рассматриваются независимые тайлы.
Со ссылкой на Фигуру 4 описывается инкапсуляция тайлов в формат файла ISOBMFF. Например, каждый тайл инкапсулируется в предназначенную дорожку. Информация настройки и инициализации общая для всех тайлов инкапсулируется в конкретную дорожку, именуемую, например, «базовой дорожкой тайла». Таким образом полное видео инкапсулируется в качестве компоновки всех этих дорожек, а именно базовой дорожки тайла и набора дорожек тайла.
Фигура 4 иллюстрирует примерную инкапсуляцию. Один способ инкапсуляции организованного в тайлах видео в соответствии со стандартом ISOBMFF состоит в разделении каждого тайла на предназначенную дорожку, инкапсуляции информации настройки и инициализации, общей для всех тайлов в особую дорожку, именуемую «базовой дорожкой тайла» и инкапсуляции полного видео в качестве компоновки всех этих дорожек: базовая дорожка тайла плюс набор дорожек тайла. Таким образом инкапсуляция именуется «многодорожечной инкапсуляцией тайла». Пример многодорожечной инкапсуляции тайла предоставляется на Фигуре 4.
Поле 401 представляет собой поле ISOBMFF 'moov' и содержит полный список дорожек и их идентификаторы. Например, поля 411-414 представляют собой дорожки тайла (четыре тайла в настоящем примере), а поле 420 представляет собой базовую дорожку тайла. Дополнительные дорожки, такие как аудио и текстовые дорожки могут быть использованы и инкапсулированы в тот же самый файл. Тем не менее, для краткости, такие дополнительные дорожки здесь не обсуждаются.
Как представлено на Фигуре 4, данные тайла разделены на независимые и адресуемые дорожки с тем, чтобы любое сочетание дорожки(ек) тайла могло быть легко восстановлено из базовой дорожки тайла, ссылающейся на дорожки тайла для декодирования и отображения. Базовая дорожка тайла также может называться «дорожкой компоновки» или «дорожкой ссылки» поскольку она выполнена для обеспечения сочетания любых тайлов: одного, многих или всех тайлов. Базовая дорожка 420 тайла содержит общую информацию для всех дорожек тайла и список образцов 450 (только один первый представлен на Фигуре 4) в поле «mdat». Каждый образец 450 базовой дорожки 420 тайла построен посредством ссылки на каждую дорожку тайла при использовании экстракторов (451-454, при этом каждый представляет собой один экстрактор для каждого тайла). Каждая дорожка 411-414 тайла представляет собой пространственную часть всего или полнокадрового видео. Описание тайла (позиция, размер, полоса пропускания и т.д.) хранится в полях заголовка дорожки (не представлены) каждой дорожки 411-414 тайла. Базовая дорожка тайла и каждая дорожка тайла обладают перекрестной ссылкой (405), используя поле «TrackReferenceBox» в каждой дорожке. Каждая дорожка 411-414 тайла ссылается на базовую дорожку 420 тайла как дорожку 'tbas' ('tbas' является особым кодом, указывающим зависимость кодирования от каждой дорожки тайла к базовой дорожке тайла, в частности, где найти параметр «HEVCDecoderConfigurationRecord», который позволяет настраивать декодер видео, который будет обрабатывать элементарный поток, получаемый в результате синтаксического анализа формата файла). И наоборот, для того чтобы обеспечить полное восстановление видео, базовая дорожка 420 тайла указывает зависимость типа 'scal' для каждой дорожки (405) тайла. Это служит для указания зависимости кодирования и отражения определения образца 450 базовой дорожки тайла в качестве экстракторов для данных дорожек тайла. Эти экстракторы являются особыми экстракторами, которые во время синтаксического анализа могут поддерживать отсутствие данных. На Фигуре 4, для того, чтобы обеспечить версию файла с возможностью потоковой передачи, каждая дорожка разлагается на мультимедийные сегменты (431-434 для дорожек тайла и 460 для базовой дорожки тайла). Каждый мультимедийный сегмент содержит один или более фрагментов фильма, указываемых полем 'moof' плюс данные. Применительно к дорожкам тайла, раздел данных соответствует пространственной суб-части видео, тогда как применительно к базовой дорожке тайла, он содержит наборы параметров, сообщения SEI, если они присутствуют, и список экстракторов. Поле 401 «moov» в случае применения потоковой передачи будет вписано в сегмент инициализации. Фигура 4 иллюстрирует только один сегмент, но дорожки могут быть разложены на любое число сегментов, при этом ограничение состоит в том, что сегменты для дорожек тайла и для базовой дорожки тайла следуют одному и тому же временному разложению (т.е. они выровнены по времени), это служит для того, чтобы сделать возможным переключение из полного видео на тайл или набор тайлов. Степень разбиения данного временного разложения не описывается здесь для краткости.
Формат файла имеет описательные метаданные (такие как, например, «VisualSampleGroupEntries» или типы ссылки дорожки в полях 'tref'), которые описывают зависимости между дорожками таким образом, что данные, соответствующие одному тайлу, сочетанию тайлов или всем тайлам, могут быть легко идентифицированы при синтаксическом анализе описательных метаданных.
В дальнейшем на том же уровне описываются неподвижные изображения. Таким образом, по выбору пользователем любых тайлов, сочетания тайлов или всех тайлов картинки, облегчается идентификация и извлечение. В случае, когда картинки смешаны с видеоданными, описание идет параллельно с описательными метаданными для видео. Таким образом, для одного и того же набора данных, дополнительный слой индексации предоставляется для картинок (в дополнение к слоям индексации для видео и для аудио).
В форматах файла неподвижного изображения, использующих поля 'meta', картинки с относящейся к ним информацией описываются в качестве элементов информации. Как иллюстрируется на Фигуре 5, элементы информации перечисляются в предназначенном суб-поле 500 «ItemInfoBox» поля 'meta'. Данное суб-поле предоставляет ряд элементов информации, присутствующих в файле. Суб-поле также предоставляет для каждого элемента описательные метаданные, представленные в качестве «ItemInfoEntry» 501. В соответствии с развитием стандарта ISO BMFF существует несколько версий 502 (0, 1, 2, 3) данного поля.
Элементы 'meta' могут быть сохранены в файле не рядом. Также отсутствует конкретное ограничение касательно чередования данных элемента. Таким образом, два элемента в одном и том же файле могут совместно использовать один или несколько блоков данных. Это в частности полезно для тайлов HEVC (тайлы могут быть сохранены смежно или нет), поскольку это может обеспечить простой способ наличия одного элемента из расчета на независимо декодируемый тайл. Данный элемент указывает смещение данных в основной картинке HEVC и длину слайса(ов), используемого для тайла через ItemLocationBox.
В соответствии с вариантами осуществления, может быть добавлен новый тип элемента для описания картинки тайла, именуемый, например: «hvct» или 'tile' или повторно использован из ISO/IEC 14496-15: 'hvt1'. Каждый элемент, представляющий собой картинку тайла (независимо от того, какой из четырех символов был выбран), может иметь ссылку типа «tbas» на элемент 'hvc1', из которого он извлекается. Каждый элемент имеет идентификатор 503 «item_ID» и дополнительно описывается в поле «ItemLocationBox» с точки зрения байтовой позиции и размера в поле мультимедийных данных, содержащем сжатые данные для картинок.
Такой синтаксис позволяет средству считывания формата файла (или «средству синтаксического анализа») определять через список элементов информации, насколько много элементов информации доступно с помощью информации касательно их типа 504, например, 'tile', чтобы указывать, что элемент информации является картинкой тайла у полной картинки.
Таким образом можно выбирать подмножество элементов информации в файле, их сочетание, или полный набор элементов информации для того, чтобы загружать только один тайл изображения и ассоциированную конфигурацию декодера, при этом пропуская другие тайлы.
Применительно к случаям, где тайл HEVC зависит от другого тайла HEVC для декодирования, зависимость должна быть указана посредством ссылки на элемент типа 'dpnd' (или любого особого кода из четырех символов, который указывает зависимости кодирования), как описано в документе w14123, WD of ISO/IEC 14496-15:2013 AMD 1, «Enhanced carriage of HEVC and support of MVC with depth information», MPEG 107, Сан-Хосе, Январь 2014.
Этот документ характеризует инструменты для ассоциации NALU тайла HEVC с описаниями группы образцов, указывающими пространственную позицию тайла (используя дескриптор «TileRegionGroupEntry»). Тем не менее, отсутствует прямой эквивалент группирования образцов для элементов информации метаданных, который обеспечил бы повторное использование этих дескрипторов.
Вследствие этого, в соответствии с вариантами осуществления, элемент описания тайла задается из расчета на тайл и тайл связывается с его описанием, используя модифицированную версию поля «ItemReferenceBox», как объясняется ниже.
В соответствии с другими вариантами осуществления, предоставляется только описание организации тайлов, предпочтительно общим образом. Таким образом, список элементов не становится слишком длинным.
Исполнение может быть следующим:
- разрешают некоторым элементам описывать набор метаданных, сходных для групп образов, но особых для каждого типа элемента,
- для любого элемента добавляют возможность описания одного параметра для заданного типа ссылки на элемент. Параметр тогда должен интерпретироваться в зависимости от типа элемента, на который ссылаются (сходно с типом группирования).
Может потребоваться модернизация описательных метаданных для элемента информации, как объясняется в дальнейшем со ссылкой на Фигуру 6.
В соответствии со стандартом ISOBMFF, механизм группирования образцов основан на двух основных полях с параметром «grouping_type» следующим образом:
- поле «SampleGroupDescriptionBox» имеет параметр 'sgpd', который характеризует список свойств (список «SampleGroupEntry»),
- поле «SampleToGroupBox» имеет параметр 'sbgp', который характеризует список группы образцов с их соотнесением со свойством.
Параметр «grouping_type» связывает список групп образцов со списком свойств, при этом соотнесение группы образцов с одним свойством в списке указывается в поле «SampleToGroupBox».
Для того, чтобы обеспечить точно такую же функциональность для элементов информации, должны быть описаны список групп элементов информации и список свойств. Также следует обеспечить возможность соотнесения каждой группы из элементов информации со свойством.
В дальнейшем описывается то, каким образом обеспечить возможность вставки таких описательных метаданных в Формат Файла Неподвижного Изображения. Другими словами, каким образом привязать дескриптор к элементу изображения. Даже если случаи использования описываются для Формата Файла Неподвижного Изображения HEVC, нижеследующие признаки могут быть использованы в других стандартах, таких как ISO/IEC 14496-12, для ассоциации любого вида элемента информации с дополнительными описательными метаданными.
В соответствии с вариантами осуществления, существующее поле 601 «ItemInformationEntry» с параметром 'infe' расширяется новым номером версии (602 и 603) для того, чтобы связывать каждый элемент со свойством через новый параметр 604, именуемый «iref_type», как показано на Фигуре 6. Это позволяет избежать создания новых полей и улучшает описание, оставляя его коротким.
Исходное определение поля ItemInformationEntry дается как:
Новая версия, связывающая картинку тайла с его описанием может быть следующей:
В соответствии с другими вариантами осуществления, ближе к полю «SampleToGroupBox» определение поля «ItemInformationBox» с кодом из четырех символов 'iinf' меняется следующим образом, например, посредством введения новой версии этого поля:
текущая версия:
меняется на:
В качестве альтернативы, для того, чтобы сигнализировать, используется или нет группа, текущая версия меняется на:
Параметр «group_entry_count» характеризует число групп элементов информации в мультимедийном файле. Для каждой группы элемента информации указывается число элементов информации, начиная с item_ID=0. Поскольку элементы информации не имеют временных ограничений и зависимостей, то в противоположность образцам, модуль инкапсуляции может назначать идентификаторы элемента информации в любом порядке. При назначении увеличивающихся номеров идентификаторов, следующих группе элементов, список групп информации может быть более эффективно представлен с использованием параметра item_run, идентифицирующего тиражи (run) последовательных идентификаторов элементов информации в группе.
Связанные элементы информации имеют индекс, именуемый, например, «property_index». Данный параметр «property_index», ассоциированный с параметром «grouping_type», позволяет средству синтаксического анализа формата файла (или «средству считывания») идентифицировать либо ссылку на описательные метаданные, либо сами описательные метаданные. Фигура 7 иллюстрирует два примерных варианта осуществления.
Признак группы в поле 701 «SingleItemTypeReferenceBox» может быть использован с идентификацией группы «group_ID» вместо идентификации элемента информации (item_ID), которая обычно используется для значения параметра from_Item_ID. По определению, поле «SingleItemTypeReferenceBox» позволяет легче найти все ссылки особого вида или из особого элемента. Использование его с «group_ID» вместо «item_ID» позволяет найти группу элементов, чтобы легче идентифицировать все ссылки особого типа. Преимущественно, поскольку имеется не более одного поля «ItemInformationBox» из расчета на инкапсулированный файл, то отсутствует необходимость в определении идентификаций группы. Модуль инкапсуляции (во время кодирования) и модуль синтаксического анализа (во время декодирования) могут запускать соответствующий счетчик (в качестве переменной «g» в поле «ItemInformationBox») по списку групп элементов информации по мере того, как они создаются или считываются. В качестве альтернативы, средство синтаксического анализа может быть проинформировано с использованием флага «group_used_flag», вести или нет счетчик идентификации группы.
Возвращаясь к примеру с одной группой из элементов информации, соответствующих картинкам тайла, одна группа может содержать четыре записи и ссылка 700 «SingleItemTypeReference» может указывать список из элементов 704 информации от которого зависят четыре элемента информации картинки тайла, и поэтому для конкретного типа ссылки 703.
В соответствии с другими примерными вариантами осуществления, элемент информации используется в новом виде поля «ItemReferenceBox», как описывается ниже, что позволяет из одного элемента 722 перечислить несколько типов 723 ссылки для разнообразных других элементов 724 информации.
В последнем случае особое поле 721 «ItemReferenceBox» может быть реализовано следующим образом:
Как и для стандартного поля «ItemInformationBox», описывается список записей элемента, но на этот раз в другом порядке, зависящем от группирования. В примере тайла это может приводить к первой группе из четырех элементов информации, соответствующих картинкам тайла, собранным в группу с параметром, который может быть назван 'tile', за которой следуют не сгруппированные элементы информации для информации конфигурации, для элемента информации полной картинки и необязательно для метаданных EXIF.
Таким образом, одно поле модифицируется, а одно поле создается, которое является особым видом ItemReferenceBox. В дальнейшем описывается этот новый вид ItemReferenceBox.
Поле «ItemReferenceBox» также может быть расширено посредством организации отличия между разнообразными видами ItemReferenceBox при использовании параметров флага в поле «FullBox», которое является частью ItemReferenceBox, следующим образом:
Используя поле 721 «MultipleItemTypeReferenceBox», одна картинка с четырьмя тайлами может быть описана следующим образом:
Это исполнение позволяет довольно легко найти все ссылки любого вида из особого элемента.
Поддержка 711 описания для списка из элементов 712, ссылающихся на один и тот же элемент 714 заданного типа 713, может быть следующей:
Тогда в примере картинки с четырьмя тайлами мы может иметь:
Исполнение поля «SharedItemTypeReferenceBox» позволяет проще найти все ссылки особого типа, указывающие на особый элемент. Это противоположно полю «SingleItemTypeReferenceBox». Но поскольку большая часть «reference_type», определенных для ссылок дорожки, не являются двунаправленными, поле «SingleItemTypeReferenceBox» не может быть использовано с некоторыми однонаправленными типами ссылки, чтобы оповестить о всех узлах с этим типом ссылки другие элементы. В качестве альтернативы, флаг может быть предусмотрен в «SingleItemTypeReference» для указания того, является ли это прямой ссылкой или обратной ссылкой, тем самым частично снимая потребность в новом SingleItemTypeReferenceBox.
С учетом вышеприведенного, элемент информации может быть ассоциирован с информацией организации тайлов. Теперь должно быть предоставлено описание этой информации организации тайлов.
Например, каждый тайл может быть описан с использованием дескриптора тайла, такого как «iref_parameter» 605 расширенного «ItemInfoEntry» 601. Особый дескриптор может быть следующим:
В соответствии с вариантами осуществления, дескриптор может быть использован для сетки тайлов с применением к одной или более картинкам, которые должны быть сохранены.
Такой дескриптор может быть следующим:
Этот дескриптор «TileInfoDataItem» обеспечивает описание сетки организации тайлов (регулярная или нерегулярная). Сетка описывается строки за строками, начиная с верхней левой.
Дескриптор должен быть сохранен в качестве элемента типа 'tile'. Когда другой элемент ссылается на этот элемент, он должен использовать ссылку типа «tile» на это описание и он должен иметь указанный параметр «iref_parameter», значение которого является основанным на 0 индексом ячейки в сетке, определяемой дескриптором, где 0 является верхним левым элементом, 1 является ячейкой непосредственно справа от ячейки 0 и т.д.
В дескрипторе:
- «version» указывает версию синтаксиса для TileInfoDataItem. Задано только значение 0.
- «regular_spacing» указывает, имеют ли все тайлы в сетке одинаковую ширину и одинаковую высоту.
- «reference_width, reference_height» указывает единицы, в которых описана сетка. Эти единицы могут совпадать или могут не совпадать с разрешением в пикселях изображения, которое ссылается на этот элемент. Если сетка является регулярной, то «reference_width» (соответственно «reference_height») должен быть кратен «nb_cell_horiz» (соответственно «nb_cell_vert».
- «cell_width» задает горизонтальное деление сетки при нерегулярных тайлах, начиная с левой части.
- «cell_hight» задает вертикальное разделение сетки при нерегулярных тайлах, начиная с верхней части.
Вышеприведенный подход позволяет совместно использовать информацию организации тайлов для всех тайлов.
Более того, в случае, когда несколько картинок совместно используют одинаковую организацию тайлов, даже большая часть описания может быть совместно использована при простой ссылке на ячейку в сетке тайлов.
Конфигурация организации тайлов может быть помещена в поле мультимедийных данных или в предназначенное поле, совместно используемое (посредством ссылки) элементами информации тайла.
Вышеприведенные дескрипторы являются чисто пространственными дескрипторами в том смысле, что они предоставляют только пространственные местоположения и размеры для фрагмента изображения(ий) в большем изображении. В некоторых случаях использования, например, с совокупностями изображений или компоновкой изображений, пространственного местоположения недостаточно, чтобы описать изображение, как правило, когда изображения перекрываются. Это является одним ограничением приведенного выше дескриптора TileInfoDataBlock. Для обеспечения компоновки изображений, независимо от изображения, т.е. тайла или независимого/законченного изображения, может быть полезным определить дескриптор, который содержит с одной стороны позиции и размеры изображения (относительное положение в пространстве), а с другой стороны информацию отображения (цвет, обрезка…) для той картинки. Например, информация цвета может быть предоставлена, чтобы преобразовывать фрагмент изображения из цветового пространства в другое для отображения. Данный вид информации может быть перенесен в ColorInformationBox 'colr' у ISOBMFF. Может быть полезным, для компактности, наличие одних и тех же данных, подготовленных для разных видов отображения лишь посредством предоставления параметров парообразования для применения вместо того, чтобы переносить две разные преобразованные таким образом картинки. Кроме того, соотношение сторон пикселя, подобное полю PixelAspectRatio 'pasp', определенному в ISOBMFF Часть-12, может помещаться в этот дескриптор, чтобы переопределять ширину и высоту, которые могут быть другими, чем закодированная ширина и высота каждой картинки. Это будет указывать масштабное соотношение для применения дисплеем после декодирования изображения. Тогда мы будем иметь кодированные размеры, хранящиеся в записях образца видео (например, поле 'stsd') и размеры отображения, логически выведенные из поля 'pasp'. Другой возможной информацией для отображения может быть поле информации чистой апертуры 'clap', также заданное в ISOBMFF. В соответствии со стандартом SMPTE 274M, чистая апертура определяет зону, внутри которой информация картинки субъективно не загрязнена всеми искажениями перехода границы (возможно вертикальными полосами развертки по границам изображений после аналого-цифровых преобразований). Данный список параметров, полезных для отображения, не является ограничивающим, и мы может поместить в качестве необязательных компонентов в дескриптор фрагмента изображения любое другое поле описательных метаданных. Эти могут быть явно упомянуты, поскольку они уже являются частью стандарта и они предоставляют общие инструменты для указания обрезки изображения, модификации соотношения сторон образца и регулировки цвета. К сожалению, их использование было возможно только для мультимедийных дорожек, а не для формата файла изображения, который полагается на поля 'meta'. Тогда мы предлагаем новый дескриптор, именуемый, например, «SimpleImageMetaData», чтобы поддерживать пространственное описание элементов изображения, наряду с другими свойствами, такими как чистая апертура или соотношение сторон образца. Это применяется к любому фрагменту изображения (тайлу или независимому изображению), которое предназначено для компоновки большего изображения или которое, наоборот, извлекается из большего изображения:
Или его вариация, при рассмотрении параметров расширения для способствования процессу отображения (посредством, например, extra_boxes):
Где ImageSpatialRelationBox является расширением TileInfoDataBlock, как описано в дальнейшем. Другим полезным параметром для рассмотрения является возможность компоновки изображений в качестве слоев. Тогда мы предлагаем вставку параметра, чтобы указывать уровень, ассоциированный с изображением в этой слоистой компоновке. Это, как правило, полезно, когда изображения перекрываются. Это может быть названо 'layer', например, с указанием информации слоя. Предоставляется примерный синтаксис для такого дескриптора:
Определение:
Тип Поля: 'isre'
Хранилище: Простой элемент метаданных изображения ('simd')
Обязательный: Нет
Количество: Ноль или один на элемент
Синтаксис:
с ассоциированной семантикой:
horizontal_display_offset указывает горизонтальное смещение изображения.
vertical_display_offset указывает вертикальное смещение изображения.
display_width указывает ширину изображения.
display_height указывает высоту изображения.
layer указывает порядок изображения «от первого к последнему»; изображения с более низкими числами ближе к зрителю. 0 является нормальным значением, а -1 будет перед слоем 0, и т.д.
Этот новый тип поля 'isre' предоставляет возможность описания относительной позиции изображения с другими изображения в совокупности изображений. Он предоставляет подмножество функциональности матрицы преобразования, которые можно найти в поле заголовка фильма или дорожки у мультимедийного файла. Координаты в ImageSpatialRelationBox выражаются по квадратной сетке, задающей размер отображения заданный автором совокупности; эти единицы могут совпадать или могут не совпадать с кодированным размером изображения. Предназначенный размер отображения задается посредством:
- Горизонтально: максимального значения (horizontal_display_offset+display_width) для всех полей 'isre'
- Вертикально: максимального значения (vertical_display_offset+display_height) для всех полей 'isre'
Когда некоторые изображения не имеют какого-либо ассоциированного 'isre', в то время как другие изображения в файле имеют ассоциированный 'isre', изображения по умолчанию без какого-либо 'isre' должны рассматриваться, как если бы их горизонтальные и вертикальные смещения равнялись 0, их размер отображения является предназначенным размером отображения и их слой равен 0.
ImageSpatialRelationBox указывает относительную пространственную позицию изображений после того, как к изображениям была применена любая обрезка или соотношение сторон образца. Это означает, что 'isre' комбинируется с 'pasp', и т.д. в SimpleImageMetaData, изображение декодируется, применяются 'pasp', 'clap', 'colr', если присутствуют, и затем изображение перемещается и масштабируется в соответствии со смещением и размером, объявленными в поле 'isre'.
Этот новый дескриптор может быть использован в качестве дескриптора изображения (тайла или одиночного изображения) при задании ассоциации между информацией элемента, представляющей изображение, и информацией элемента, представляющей дескриптор (зададим тип 'simd' для Определения SimpleImageMetadata, любой зарезервированный код из 4 символов будет приемлемым для средства синтаксического анализа mp4, чтобы легко идентифицировать вид метаданных, которые он обрабатывает в настоящий момент). Эта ассоциация выполняется с ItemRefererenceBox и с новым типом ссылки; 'simr' служит для указания «относительного положения изображения в пространстве». Примерное описание ниже иллюстрирует случай компоновки 4-х изображений, где сама компоновка не имеет ассоциированного элемента. Каждый элемент изображения ассоциирован с элементом SimpleImageMetaData через ссылку на элемент типа 'simr' и совместно использует информацию DecoderConfigurationRecord в предназначенном элементе 'hvcC'.
Поле мультимедийных данных:
1 HEVC Decoder Configuration Record (запись конфигурации декодера HEVC) ('hvcC' at offset P0)
4 HEVC Images (at file offsets P1, P2, P3, P4)
4 simple image metadata (at file offsets P5, P6, P7, P8)
Вышеприведенная организация данных предоставляется в качестве примера: изображение и метаданные могут чередоваться в поле мультимедийных данных, например, чтобы изображение плюс его метаданные были адресуемыми как единый диапазон байтов. При приеме данного описания, средство синтаксического анализа информируется, посредством синтаксического анализа информации в элементах 'simd', о том, обрезается ли фрагмент изображения из полной картинки, или наоборот, является ли полная картинка компоновкой из фрагментов изображений. В случае обрезки, элемент полной картинки и обрезанное изображение будут совместно использовать один и тот же диапазон данных как в примере ниже и одну и ту же информацию конфигурации декодера. Затем фрагмент изображения будет ассоциирован с элементом 'simd' с только информацией 'clap' и без позиционирования, когда нет 'isre'.
В случае компоновки: в таком случае элемент полной картинки ассоциируется с элементом 'simd', который содержит только информацию 'isre' и фрагмент изображения будет ассоциирован с элементом 'simd', отражающим его позицию в полном изображении.
Пример ниже иллюстрирует случай, где 4 изображения компонуются в одно большее. Все изображения, включая скомпонованное, представляются в качестве воспроизводимого элемента, используя предложенный дескриптор.
ftyp box: major-brand='hevc', compatible-brands='hevc'
meta box: (container)
handler box: hdlr='hvc1' primary item: itemID=1;
Записи информации элемента:
item_type='hvc1', itemID=1, item_protection_index=0… // полное изображение
item_type='hvc1', itemID=2, item_protection_index=0… // фрагмент изображения
item_type='hvc1', itemID=3, item_protection_index=0… // фрагмент изображения
item_type='hvc1', itemID=4, item_protection_index=0… // фрагмент изображения
item_type='hvc1', itemID=5, item_protection_index=0… // фрагмент изображения
item_type='simd' itemID=6 (sub-image descriptor)…
item_type='simd' itemID=7 (sub-image descriptor)…
item_type='simd' itemID=8 (sub-image descriptor)…
item_type='simd' itemID=9 (sub-image descriptor)…
item_type='hvcC', item_ID=10 (decoder config record)
item_type='simd', item_ID=11 (sub-image descriptor)
Записи ссылки на элемент:
type= 'simr', fromID=1, toID=11
type= 'simr', fromID=2, toID=6
type= 'simr', fromID=3, toID=7
type= 'simr', fromID=4, toID=8
type= 'simr', fromID=5, toID=9
type= 'init', fromID=1, toID=10…
type= 'init', fromID=2, toID=10…
type= 'init', fromID=3, toID=10…
type= 'init', fromID=4, toID=10…
type= 'init', fromID=5, toID=10…
Положение элемента:
itemID=1, extent_count=4,// полное изображение скомпоновано из 4 фрагментов изображения
extent_offset=P2, extent_length=L2;
extent_offset=P3, extent_length=L3;
extent_offset=P4, extent_length=L4;
extent_offset=P5, extent_length=L5;
itemID=2, extent_count=1, extent_offset=P2, extent_length=L2;
itemID=3, extent_count=1, extent_offset=P3, extent_length=L3;
itemID=4, extent_count=1, extent_offset=P4, extent_length=L4;
itemID=5, extent_count=1, extent_offset=P5, extent_length=L5;
itemID=6, extent_count=1, extent_offset=P6, extent_length=L6;
itemID=7, extent_count=1, extent_offset=P7, extent_length=L7;
itemID=8, extent_count=1, extent_offset=P8, extent_length=L8;
itemID=9, extent_count=1, extent_offset=P9, extent_length=L9;
itemID=10, extent_count=1, extent_offset=P0, extent_length=L0;
itemID=11, extent_count=1, extent_offset=P10, extent_length=L10;
Поле мультимедийных данных:
1 HEVC Decoder Configuration Record ('hvcC' at offset P0)
4 HEVC (sub) Images (at file offsets P2, P3, P4, P5)
5 simple image metadata (at file offsets P6, P7, P8, P9, P10)
Этот другой пример иллюстрирует случай, где полная картинка является фактически организованной в тайлах картинкой HEVC (4 тайла):
ftyp box: major-brand='hevc', compatible-brands='hevc'
meta box: (container)
handler box: hdlr='hvc1' primary item: itemID=1;
Записи информации элемента:
item_type='hvc1', itemID=1, item_protection_index=0… // полное изображение
item_type='hvt1', itemID=2, item_protection_index=0… // фрагмент изображения
item_type='hvt1', itemID=3, item_protection_index=0… // фрагмент изображения
item_type='hvt1', itemID=4, item_protection_index=0… // фрагмент изображения
item_type='hvt1', itemID=5, item_protection_index=0… // фрагмент изображения
item_type='simd' itemID=6 (sub-image descriptor)…
item_type='simd' itemID=7 (sub-image descriptor)…
item_type='simd' itemID=8 (sub-image descriptor)…
item_type='simd' itemID=9 (sub-image descriptor)…
item_type='hvcC', item_ID=10 (decoder config record)
Записи ссылки на элемент:
type= 'init', fromID=1, toID=10…
// объявляют фрагмент изображения в качестве тайлов полного изображения
type= 'tbas', fromID=2, toID=1…
type= 'tbas', fromID=3, toID=1…
type= 'tbas', fromID=4, toID=1…
type= 'tbas', fromID=5, toID=1…
// предоставление позиций и размеров
type= 'simr', fromID=2, toID=6
type= 'simr', fromID=3, toID=7
type= 'simr', fromID=4, toID=8
type= 'simr', fromID=5, toID=9
Положение элемента:
itemID=1, extent_count=4,// полное изображение скомпоновано из 4 тайлов
extent_offset=P2, extent_length=L2… // данные для тайла 1
extent_offset=P3, extent_length=L3… // данные для тайла 2
extent_offset=P4, extent_length=L4… // данные для тайла 3
extent_offset=P5, extent_length=L5… // данные для тайла 4
itemID=2, extent_count=1, extent_offset=P2, extent_length=L2;
itemID=3, extent_count=1, extent_offset=P3, extent_length=L3;
itemID=4, extent_count=1, extent_offset=P4, extent_length=L4;
itemID=5, extent_count=1, extent_offset=P5, extent_length=L5;
itemID=6, extent_count=1, extent_offset=P6, extent_length=L6;
itemID=7, extent_count=1, extent_offset=P7, extent_length=L7;
itemID=8, extent_count=1, extent_offset=P8, extent_length=L8;
itemID=9, extent_count=1, extent_offset=P9, extent_length=L9;
itemID=10, extent_count=1, extent_offset=P0, extent_length=L0;
Поле мультимедийных данных:
1 HEVC Decoder Configuration Record ('hvcC' at offset P0)
1 HEVC Image (with 4 tiles at file offsets P2, P3, P4, P5)
4 simple image metadata (at file offsets P6, P7, P8, P9)
В зависимости от случаев использования, можно было бы иметь несколько элементов изображения, совместно использующих одни и те же метаданные, например, когда одна и та же обрезка должна быть применена ко всем изображениям. Также существует возможность, чтобы элемент изображения имел несколько ссылок 'simr' для разных SimpleImageMetaData, например, когда изображениями совместно используется обрезка, но не пространственная информация.
Альтернативным вариантом осуществления для новой версии ItemInfoEntry (как иллюстрируется на Фигуре 6) является определение более чем одного параметра (605) из расчета на запись и ссылку элемента информации. В варианте осуществления Фигуры 6, iref_parameter является кодом из четырех байтов, который полезен в случае индекса тайла для ссылки на ячейку в сетке организации тайлов. Но для того, чтобы иметь более богатое описание и чтобы иметь возможность вставки описания со ссылкой внутрь самой записи элемента info вместо с помощью данных в (поле mdat), может быть полезно следующее расширение:
В вышеприведенном расширении:
- item_iref_parameter_count задает число типов ссылки для которых задается параметр. Это не изменилось в сравнении с элементом 605 на Фигуре 6,
- iref_type задает типы ссылки, как указывается в поле 'iref', для которого параметр применяется для данного элемента. Это не изменилось в сравнении с элементом 605 на Фигуре 6.
- parameter здесь отличается от iref_parameter (элемент 605 на Фигуре 6) так как он обеспечивает средство расширения через новое поле ItemReferenceParameterEntry. При специализации данного нового поля (как выполнено выше с TileIndexItemReferenceParameterEntry для индекса тайла в конфигурации организации тайлов), любой вид дополнительных метаданных может быть ассоциирован с предоставленной записью элемента информации так, что модули инкапсуляции и синтаксического анализа осведомлены о структуре специализированного поля. Это может быть выполнено посредством стандартных типов ItemReferenceParameterEntry или посредством предоставления при создании или на этапе согласования структуры записи параметра. Семантика параметра задается посредством семантики элемента с типом iref_type.
В дальнейшем предоставляются примерные описательные метаданные для элементов информации, описывающих картинку с 4-мя тайлами и метаданными EXIF полной картинки.
В предшествующем уровне техники картинки тайла перечислялись в качестве элементов информации без какого-либо соответствующего предоставленного описания, как показано здесь ниже. Более того, информация настройки, обозначенная типом 'hvcC' не описывалась в качестве элемента. Это позволяет факторизовать общие данные, относящиеся к набору параметров HEVC, и сообщения SEI, которые применяются ко всем картинкам тайла и к полной картинке.
ftyp box: major-brand='hevc', compatible-brands='hevc'
meta box: (container)
handler box: hdlr='hvc1' primary item: itemID=1;
Информация элемента:
item_type='hvc1', itemID=1, item_protection_index=0 (unused) =>
Full pict.
item_type='Exif', itemID=2, item_protection_index=0 (unused)
item_type='hvcC', itemID=3, item_protection_index=0 (unused)
item_type='hvct', itemID=4, item_protection_index=0 (unused) =>
Tile pict.
item_type='hvct', itemID=5, item_protection_index=0 (unused) =>
Tile pict.
item_type='hvct', itemID=6, item_protection_index=0 (unused) =>
Tile pict.
item type='hvct', itemID=7, item_protection_index=0 (unused) =>
Tile pict.
Положение элемента:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P, extent_length=Q;
itemID=3, extent_count=1, extent_offset=R, extent_length=S;
itemID=4, extent_count=1, extent_offset=X, extent_length=ET1;
itemID=5, extent_count=1, extent_offset=X+ET1, extent_length=ET2;
itemID=6, extent_count=1, extent_offset=X+ET2, extent_length=ET3;
itemID=7, extent_count=1, extent_offset=X+ET3, extent_length=ET4;
Ссылка на элемент:
type='cdsc', fromID=2, toID=1;
type='init', fromID=1, toID=3;
type='tbas', fromID=4, toID=1;
type='tbas', fromID=5, toID=1;
type='tbas', fromID=6, toID=1;
type='tbas', fromID=7, toID=1;
Поле мультимедийных данных:
HEVC Image (at file offset X, with length Y)
Exif data block (at file offset P, with length Q)
HEVC Config Record (at file offset R, with length S)
// Нет описания Тайла
В соответствии с вариантами осуществления, использующими расширение версии 4 (см. Фигуры 6, 602, 603) у поля (601) ItemInfoEntry: информация картинки тайла перечисляется с помощью ассоциированных ссылок на части конфигурации организации тайлов, которая также описывается в качестве элемента информации (ID=8).
ftyp box: major-brand='hevc', compatible-brands='hevc'
meta box: (container)
handler box: hdlr='hvc1' primary item: itemID=1;
Информация элемента:
item_type='hvc1', itemID=1, item_protection_index=0 (unused)
item_type='Exif', itemID=2, item_protection_index=0 (unused)
item_type='hvcC', itemID=3, item_protection_index=0 (unused)
item_type='hvct', itemID=4, parameter for ireftype==tile: tile_index=0
item_type='hvct', itemID=5, parameter for ireftype==tile: tile_index=1
item_type='hvct', itemID=6, parameter for ireftype==tile: tile_index=2
item_type='hvct', itemID=7, parameter for ireftype==tile: tile_index=3
item_type='tile', itemID=8, (tiling configuration)
Положение элемента:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P, extent_length=Q;
itemID=3, extent_count=1, extent_offset=R, extent_length=S;
itemID=4, extent_count=1, extent_offset=X, extent_length=ET1;
itemID=5, extent_count=1, extent_offset=X+ET1, extent_length=ET2;
itemID=6, extent_count=1, extent_offset=X+ET2, extent_length=ET3;
itemID=7, extent_count=1, extent_offset=X+ET3, extent_length=ET4;
itemID=8, extent_count=1, extent_offset=i, extent_length=I;
Ссылка на элемент:
type='cdsc', fromID=2, toID=1;
type='init', fromID=1, toID=3;
type='tbas', fromID=4, toID=1;
type='tbas', fromID=5, toID=1;
type='tbas', fromID=6, toID=1;
type='tbas', fromID=7, toID=1;
type='tile', fromID=4, toID=8; //
type='tile', fromID=5, toID=8; // привязывают каждую картинку тайла
type='tile', fromID=6, toID=8; // к элементу конфигурации организации тайлов
type='tile', fromID=7, toID=8; //
Поле мультимедийных данных:
HEVC Image (at file offset X, with length Y)
Exif data block (at file offset P, with length Q)
HEVC Config Record (at file offset R, with length S)
Tile description data block (at file offset i, with length I)
Фигура 8 иллюстрирует контекст реализации вариантов осуществления изобретения. Сначала записывается разное мультимедиа: например, аудио во время этапа 800a, видео во время этапа 800b и одна или более картинок во время этапа 800c. Каждый из элементов мультимедиа сжимается во время соответствующих этапов 801a, 801b и 801c. Во время этих этапов сжатия генерируются элементарные потоки 802a, 802b и 802c. Далее, на уровне приложения (выбор пользователя в графическом интерфейсе пользователя, конфигурация системы генерирования мультимедиа и т.д.) для того, чтобы определять, должно или нет быть осуществлено слияние всех этих элементарных потоков, выбирается режим инкапсуляции. Когда активируется (тест 803, «да») режим «слияние», данные для аудио, видео и неподвижных изображений инкапсулируются в одном и том же файле во время этапа 806c, как описано выше. Если режим «слияние» не активируется (тест 803, «нет»), тогда во время этапов 806a и 806b последовательно или параллельно генерируется два инкапсулированных файла, тем самым соответственно приводя к созданию одного файла для синхронизированных по времени мультимедийных данных во время этапа 807a и дополнительного файла только с неподвижными изображениями 907b. Во время этапа 806a, элементарные потоки аудио и видео инкапсулируются в соответствии со стандартом ISOBMFF, а неподвижные картинки инкапсулируются во время этапа 806b, как описано выше, для того, чтобы обеспечить описание тайла и признаки представляющей интерес области. В заключение, получается мультимедийное представление 807 и оно может быть предоставлено генератору DASH для подготовки его для потоковой передачи (этап 820a) или сохранено в памяти (этап 820b), или визуализировано на дисплейном блоке (этап 820c), или передано (этап 820d) удаленному объекту либо целиком, либо после того, как некоторые части (такие как тайлы), были извлечены при синтаксическом анализе описательных метаданных.
ая
В соответствии с предыдущими описаниями вариантов осуществления следует отметить, что описательные метаданные, такие как, например, поле SimpleImageMetadata ('simd') (также именуемое ISOBMFFMetaData в последней версии технического описания Формата Файла Неподвижного Изображения), описываются в качестве полнофункциональных элементов. Дополнительные описательные или предписывающие метаданные также задаются техническим описанием Формата Файла Неподвижного Изображения, как описано в документе w14878, исследование проекта комитета ISO/IEC 23008-12:2013 1 редакция «Information technology - MPEG systems technologies - Part 12: Image File Format», MPEG 110 Страсбург Октябрь 2014. Примерами описательных или предписывающих метаданных являются CleanApertureBox ('clap'), ImageRotation ('irot'), ExifDataBlock ('exif), или ImageOverlay ('iovl'). В более общем виде описательные метаданные являются метаданными, которые предоставляют дополнительную информацию или описание для элемента, подобного изображению или фрагменту изображения (например, метаданные Exif), а предписывающие метаданные являются операциями или преобразованием, которое должно быть применено к элементу (например, поворот, обрезка или сочетание нескольких элементов, формирующих операторы преобразования).
Тем не менее, может показаться довольно раздражающим то, что нужно хранить такие описательные или предписывающие метаданные в техническом описании в качестве полнофункциональных элементов; это просто псевдо-элементы, требующие того, чтобы описательные или предписывающие метаданные были сохранены с закодированными данными в поле (110) mdat, и требующие определения записей в itemLocationBox (109) (iloc), itemInfoBox (iinf) и itemProtectionBox (ipro). Требование этих записей в iloc, iinf и ipro для этого является лишь служебными данными. Например, запись в itemInfoBox требует использования полного поля с по меньшей мере 12-байтовым заголовком, в дополнение item_protection_index (16 бит) плюс пустой item_name (8 бит) должны быть определены для суммарно 15 байтов дополнительных затрат из расчета на запись в itemInfoBox (iinf). Запись в itemLocationBox (iloc) также требует по меньшей мере 9 байтов в лучших случаях (base_offset_size=offset_size=length_size=1, 1 экстент). На практике, запись itemLocationBox используется с base_offset_size=offset_size=length_size=2 или 4, означая 12 или 18 байт дополнительных затрат. Кроме того, эти метаданные, как правило, небольшие и обеспечивают эффективное чтение других элементов. Сохранение их в качестве предназначенных элементов может усложнить синтаксический анализ файла, в особенности, частичную выборку файла (мультиплицирование HTTP-запросов, например).
В альтернативном варианте осуществления, все описательные и предписывающие метаданные могут быть заданы в качестве вставленных элементов, которые могут быть сохранены в поле 100 meta как часть других полей, а не в поле (110) mdat, и, следовательно, которые могут избежать дополнительных затрат определения записей itemInfoBox и itemLocationBox.
Для того, чтобы сохранить описательные и предписывающие метаданные в поле meta, задается поле виртуального элемента, именуемое 'VirtualItemBox'. В соответствии с данным вариантом осуществления, все поля описательных и предписывающих метаданных наследуются из данного класса виртуального элемента.
Виртуальный элемент имеет назначенные ему item_ID и item_type, наряду с набором полей. Виртуальные элементы являются дополнительными данными, которые, как правило, используются, чтобы описывать метаданные, которые должны быть ассоциированы с другими элементами. Например, виртуальный элемент обеспечивает ассоциацию записи itemInfoBox, идентифицирующей элемент (изображение или фрагмент изображения) и операции или преобразования, которые должны быть применены к данному элементу. Как правило, данная ассоциация может быть описана при задании записи типа 'simr' в itemReferenceBox из item_ID у изображения для item_ID у поля описания операции или преобразования метаданных. Ссылка на виртуальные элементы может осуществляться только в полях ссылки на элемент и первичных полях элемента, и они не должны объявляться или ссылка на них не должна осуществляться в любых других полях (например, itemLocationBox (iloc), itemInfoBox (iinf), itemProtectionBox (ipro)). 'VirtualItemBox' задается следующим образом:
со следующей семантикой для его параметров:
item_ID: ID (или идентификатор) данного элемента. Запрещено наличие записей в iinf, iloc или ipro с тем же самым значением item_ID.
item_type является 32-битным значением, как правило 4 печатаемых символа, это - заданный действительный индикатор типа элемента, такой как 'mime'.
Необязательно, в варианте 'VirtualItemBox' также может включать в себя дополнительный параметр, именуемый «descriptor_family». Семейство дескриптора указывает, является ли поле метаданных описательными или предписывающими метаданными. В варианте семейство дескриптора указывает тип поля метаданных из списка предварительно определенных значений. Например: transfo_operator, composed_image, descriptive_metadata …
При наследовании из данного поля виртуального элемента все поля описательных и предписывающих метаданных могут быть сохранены в поле meta без необходимости в определении ассоциированных записей в itemInfoBox (iinf) и itemLocationBox (iloc), но они по-прежнему сохраняют преимущество в том, что являются адресуемыми посредством полей ссылки на элемент.
В соответствии с этим вариантом осуществления, ImageOverlay (iovl), SubSampleItemData (subs), AuxiliaryConfiguration (auxC), ExifDataBlock (exif), SimpleImageMetadata (simd) и производный элемент изображения наследуются из класса виртуального элемента.
По-прежнему в соответствии с этим вариантом осуществления вводится единый, общий тип элемента, именуемый 'dimg', со ссылками элемента типа 'simr' на элементы типов 'simd'. Этот подход обеспечивает повторное использование свойств, при необходимости, и уменьшает число элементов и ссылок элемента. ImageRotationBox добавляется в SimpleImageMetadata (simd). Тип ссылки 'simr' определяет привязку от элемента изображения к элементу 'simd' с тем, чтобы предоставить прямой доступ к описательным метаданным изображения.
В дополнение, поле метаданных ImageOverlay (iovl) дорабатывается в соответствии с нижеследующим так, что оно больше не зависит от порядка ссылки.
Явный item_id добавляется для каждой записи в цикле, чтобы явным образом идентифицировать элемент, который компонуется.
В альтернативном варианте осуществления все поля, включенные в SimpleImageMetadata (simd), задаются в качестве независимых полей метаданных, которые наследуются из поля Виртуального Элемента.
В альтернативном варианте осуществления простой поворот изображения может быть объявлен посредством интеграции операции поворота непосредственно в поле дескриптора метаданных изображения SimpleImageMetadata ('simd') (также именуемый ISOBMFFMetaData в последней версии технического описания Формата Файла Неподвижного Изображения) следующим образом:
Несмотря на то, что поле поворота немного больше, чем элементы 'irot' (12 байт), выгода от использования данного подхода очевидна при объединении преобразований, таких как поворот и CleanApperture, поскольку требуется только один 'simd', вместо каскада производных элементов.
В таком случае, общий производный элемент, 'dimg' (описанный выше) может быть использован для ссылки как на элемент изображения, так и описание метаданных. Такой элемент может быть затем перечислен в качестве первичного элемента в PrimaryItemBox ('pitm').
Другое преимущество этого подхода состоит в том, что автор может четко указывать то, что он желает, чтобы был отображен только повернутый элемент.
Нижеследующие абзацы предлагают альтернативу вышеописанному варианту осуществления. Эта альтернатива преимущественно проста касательно того, каким образом преобразования (или «эффекты») могут быть применены к изображениям в формате файла Неподвижного Изображения ISO. В частности, с помощью данного альтернативного варианта осуществления решаются следующие вопросы:
- большое число ссылок элемента;
- растущее число элементов при каскадном включении эффектов; и
- невозможность обобщить эффекты для заданного набора элементов, значащего набора изображений или участков изображений, подобных представляющей интерес Области.
Существующие решения предлагаются, чтобы обобщить эффекты в качестве разных экстентов (значащие смещения байта в разделе данных) у элемента. Более подробно, экстент означает, что производное изображение будет описано в качестве списка экстентов в itemLocationBox («iloc»), при этом каждый экстент идентифицирует фрагмент раздела данных ('mdat'), причем каждый фрагмент соответствует одним или более описательным или предписывающим, или преобразующим метаданным.
Но этому решению присущи несколько недостатков:
- создание инкапсулированного файла изображения достаточно сложное: касание одного эффекта в одном производном элементе изображения подразумевает инспектирование всех производных изображений, чтобы проверить, используют ли они тот же самый экстент, и потенциально перезапись его части;
- синтаксический анализ также не очень простой, поскольку средству считывания файла изображения будет необходимо выяснить, является ли цепочка преобразований/эффектов одной и той же по разным элементам в упомянутом файле (отсутствует непосредственная сигнализация);
- применительно к каждому преобразованию/эффекту будет требоваться новый экстент в itemLocationBox («iloc») всякий раз, когда новое преобразование/эффект не сохраняется постоянно с помощью преобразования/эффекта в цепочке применяемых преобразований/эффектов. Более того, сочетание или каскадное выполнение эффектов может быть затратным, когда не сохранены в смежных экстентах в разделе данных.
Более того, эти решения требуют реализованного хранилища, которое предполагает создание поля для хранения эффекта, чтобы понимать его тип (до сих пор тип эффекта был задан посредством item_type). При задании нового формата поля для эффекта более простым решением является определение эффектов отдельно от элементов и наличие прямого соотнесения между элементами и эффектами без каких-либо дополнительных затрат.
Альтернативный вариант осуществления предлагает упрощение обработки эффекта при наличии четкого разграничения в форматах файла:
- регулярные элементы (изображения или участки изображений) (например: hvc1, …), привязанные к их описательным метаданным (как предложено выше: либо через тип ссылки 'init' или 'simr', либо любой тип ссылки, описывающий описательные метаданные);
- «производные изображения», которые являются совокупностью эффектов (или преобразований), которые применены к одному или более исходным элементам (изображению или участку изображения), идентифицируются через ссылку на элемент 'dimg' из элемента «производного изображения» на исходный элемент; и
- структура, представляющая преобразования/эффекты, включающая в себя совокупность нескольких разных эффектов.
Преимуществами данного альтернативного варианта осуществления являются:
- возможность повторного использования эффектов: объявленных единожды и на которые потенциально ссылаются несколько раз;
- более компактные описания при задании совокупности эффектов (подробнее об этом ниже);
- общая удобочитаемость, включая то, что не требуется новых экстентов у itemLocationBox; и
- поддержание небольшого числа ссылок элемента.
В соответствии с этим альтернативным вариантом осуществления, новый единый производный элемент задается с помощью типа элемента 'dimg'. Данный единый производный элемент конкретно представляется посредством:
Где nb_effects представляет собой число эффектов, которое должно быть применено к исходному изображению для того, чтобы скомпоновать производное изображение, а effect_id является уникальным идентификатором в инкапсулированном файле эффекта для применения. Эффекты применяются в обратном порядке их появления в списке эффектов.
Производное изображение или преобразованный элемент, именуемый «DerivedImage», характеризует изображение в качестве набора эффектов, которые должны быть применены, например, к исходному изображению до представления его пользователю или экрану дисплея. Исходное изображение идентифицируется при ссылке на элемент типа 'dimg' (или любого зарезервированного типа ссылки) из производного элемента на исходное изображение. Исходное изображение само может быть любым элементом изображения (изображениями или участками изображений, перекрытием изображений, производным изображением) определенным в техническом описании Формата Файла Неподвижного Изображения ISO. Не должно присутствовать более одной ссылки на элемент 'dimg' из одного и того же элемента (но может быть несколько на один и тот же элемент, если данный элемент повторно используется несколько раз для разнообразных компоновок).
Производное изображение сохраняется в разделе данных файла.
При редактировании инкапсулированного файла, например, при удалении эффекта из файла изображения, все ссылки на этот эффект должны быть удалены из производных изображений.
Эффекты могут быть применены к изображениям, участкам изображений, скомпонованному изображению или производному изображению посредством элементов DerivedImage. Каждый эффект описывается полем, которое получается из структуры BaseEffectBox, иллюстрируемой ниже.
Со следующей семантикой:
effect_type является типом поля у эффектов, получаемых из этого класса, при этом уникальный код из четырех символов идентифицирует вид поля;
effect_id является уникальным идентификатором для заданного эффекта или преобразования. Данный идентификатор должен быть уникальным внутри поля 'meta'.
nb_bits_effect получается из значения версии и указывает число битов, используемых для представления effect_id.
Эффекты могут быть объявлены в необязательном EffectDeclarationBox, который содержится в поле 'meta':
Тип Поля: 'effd'
Хранилище: meta
Обязательный: Нет
Количество: Ноль или Один
class EffectDeclarationBox extends Box('effd'){
//одно или более полей эффектов
}
Например, могут быть заданы следующие эффекты (не ограничивающий список):
- Эффект Поворота: эффект поворота преобразует исходное изображение в направлении против часовой стрелки в единицах 90 градусов.
Тип Поля: 'erot'
Хранилище: effd
Обязательный: Нет
Количество: Ноль или Более
Семантика следующая:
angle*90: это указывает угол (в направлении против часовой стрелки) в единицах градусов
- Эффект Чистой Апертуры: эффект чистой апертуры модифицирует видимую часть исходного изображения.
Тип Поля: 'ecla'
Хранилище: effd
Обязательный: Нет
Количество: Ноль или Более
Семантика следующая:
nb_bits_effect получается из родительского класса BaseEffectBox и указывает число битов, используемых для представления разных полей CleanApertureEffectBox;
hSpacing, vSpacing: определяют относительную ширину и высоту пикселя;
cleanApertureWidthN, cleanApertureWidthD: дробное число, которое определяет точную ширину чистой апертуры в подсчитанных пикселях у изображения;
cleanApertureHeightN, cleanApertureHeightD: дробное число, которое определяет точную высоту чистой апертуры в подсчитанных пикселях у изображения;
horizOffN, horizOffD: дробное число, которое определяет горизонтальное смещение центра чистой апертуры минус (ширина-1)/2 (обычно 0);
vertOffN, vertOffD: дробное число, которое определяет вертикальное смещение центра чистой апертуры минус (высота-1)/2 (обычно 0).
Совокупность Эффектов: Поле Совокупность Эффектов обеспечивает задание набора из нескольких эффектов в качестве единого эффекта для того, чтобы повторно использовать его для нескольких изображений и тем самым уменьшая затраты на описание в отношении байтов.
Тип Поля: 'ecol'
Хранилище: effd
Обязательный: Нет
Количество: Ноль или Более.
Семантика следующая:
nb_bits_effect получается из родительского класса BaseEffectBox и указывает количество битов, используемых для представления разных полей EffectCollectionBox.
apply_effect_id: указывает ID эффекта для применения к исходному изображению.
Эффекты и Совокупность Эффектов применяются в том же порядке, что и эффекты в элементе Derivedimaged; например, каждый эффект должен быть применен к вводу в обратном порядке их появления в списке эффектов.
OverlayEffectBox объявляет компоновку изображений в качестве перекрытия. Применительно к этому особому эффекту результирующее производное изображение не имеет ссылки на какое-либо исходное изображение, поскольку этот эффект объявляет список исходных изображений, которые являются частью компоновки.
со следующей семантикой:
nb_bits_effect получается из родительского класса BaseEffectBox и указывает число битов, используемых для представления разных полей OverlayEffectBox;
fill_required указывает, присутствуют ли отверстия в результирующем скомпонованном изображении для заполнения фоновым значением;
canvas_fill_value: указывает значение пикселя на каналы, используемое, если отсутствует пиксель любого входного изображения, расположенный в конкретном местоположении пикселя. Если входные изображения содержат меньше трех каналов, семантика canvas_fill_value, соответствующая каналам, которые не присутствуют в входных изображения, не указана;
nb_images указывает число изображений для компоновки, причем каждое идентифицируется посредством их item_ID, как указывается параметром image_item_ID.
output_width, output_height: Указывают ширину и высоту соответственно выходного изображения, в которое помещаются входные изображения. Зона картинки выходного изображения именуется холстом.
horizontal_offset, vertical_offset: Указывают смещение от верхнего левого угла холста, с которым располагается входное изображение. Местоположения пикселя с отрицательным значением смещения не включаются в выходное изображение. Горизонтальные местоположения пикселя, более высокие или равные output_width, не включаются в выходное изображение. Вертикальные местоположения пикселя, большие или равные output_height, не включаются в выходное изображение.
В соответствии с другим аспектом изобретения, хранилище всех описательных и предписывающих метаданных может быть дополнительно оптимизировано в сравнении с вышеприведенными вариантами осуществления в зависимости от того, являются ли описательные и/или предписывающие метаданные особыми для конкретного элемента изображения или совместно используются несколькими элементами изображения. Такое совместное использование возможно без использования совместного использования диапазонов байтов или без определения громадного списка ссылок на элемент, как требуется вышеприведенными вариантами осуществления. В соответствии с данным альтернативным вариантом осуществления, все описательные и предписывающие метаданные по-прежнему хранятся только внутри иерархии поля в поле (100) 'meta', позволяя средствам считывания ISOBMFF осуществлять синтаксический анализ всей системной информации без необходимости в поле 'idat' или 'mdat'. Число элементов изображения (в поле 'iinf') и ссылок на элемент (в поле 'iref'), таким образом, ограничивается только адресацией мультимедийных данных или представлением зависимости между несколькими элементами изображения. Такое исполнение делает синтаксический анализ файла простым и облегчает высокоуровневое понимание формата файла.
Ключевой аспект этого варианта осуществления состоит в том, что вся информация элемента системного уровня организуется в  предназначенных полях (используя fullbox ISOBMFF), которые доступны средству синтаксического анализа, без извлечения какого-либо поля 'mdat' или 'idat', и включены в или на которые непосредственно ссылается запись информации элемента.
Этот вариант осуществления вводит следующие изменения:
- новое предназначенное поле, именуемое SharedItemPropertiesBox ('sitp'), задается, чтобы содержать структурированные в полях описательные и предписывающие метаданные, которые совместно используются элементами.
- модификация ItemInfoEntry ('infe'), чтобы ассоциировать структурированные в полях описательные и предписывающие метаданные с элементом. Эти метаданные могут быть непосредственно сохранены в поле 'infe', если метаданные относятся только к этому элементу, или сохранены в поле 'sitp' и на них может быть организована ссылка из поля 'infe', если метаданные совместно используются несколькими элементами.
- новое поле (SampleDescriptionEntryReference 'sder', представляющее параметр инициализации), чтобы обеспечить совместное использование одних и тех же данных инициализации между элементом изображения и образцом в дорожке.
Новое поле, именуемое SharedItemPropertiesBox ('sitp'), задается следующим образом:
Тип Поля: 'sitp'
Хранилище: MetaBox ('meta')
Обязательный: Нет
Количество: Ноль или Один
Поле SharedItemProperties (предназначенное совместно используемое поле) содержит список полей, задающих описательные (параметры отображения) и предписывающие (операторы преобразования) метаданные (также именуемые свойствами), которые могут быть применены к нескольким элементам, объявленным в родительском поле 'meta'. Ссылка на эти поля осуществляется посредством основанного на 0 индекса из поля ItemInfoEntry. Это поле имеет следующий синтаксис:
Касательно модификации ItemInfoEntry, новая версия (4) задается со следующей семантикой: Поле ItemInfoEntry предоставляет возможность включать или осуществлять ссылку на дополнительные поля в записи информации элемента, которая предоставляет свойства для этого элемента. Должно присутствовать не более одного свойства заданного типа в объединении включенных или ссылаемых свойств. Свойства могут быть зависимыми от порядка, и в этом случае должен быть использован порядок, заданный в поле ItemInfoEntry, т.е. первое включенное свойство применяется первым, за которым следуют по порядку все другие включенные свойства, за которыми затем следуют все свойства, на которые ссылаются.
Дополнительный синтаксис указывается следующим образом:
Ассоциированная семантика следующая:
inciuded_prop_count: число свойств (описательных или предписывающих метаданных), включенных в массив item_properties.
item_properties: массив полей или таблица полей, предоставляющая дополнительную информацию для этого элемента (свойства информации элемента). Разрешенные поля точно такие же, как в поле SharedItemProperties.
indexed_prop_count: число ссылок на свойства в поле SharedItemProperties.
box_prop_idx: основанные на 0 индексы на список полей, хранящийся в поле SharedItemProperties поля 'meta'.
В соответствии с этим вариантом осуществления, все описательные и предписывающие метаданные являются полными полями ISOBMFF, которые должны храниться в поле SharedItemProperties или в массиве item_properties внутри поля ItemInfoEntry.
Например, предписывающие метаданные для поворота изображения задаются следующим образом:
Тип Поля: 'irot'
Хранилище: SharedItemProperties
Обязательный: Нет
Количество: Ноль или более.
ImageRotationBox предоставляет угол поворота в направлении против часовой стрелки в единицах 90 градусов. Должно присутствовать только одно такое поле, назначенное в качестве свойства элемента изображения. Синтаксис данного поля задается следующим образом:
Со следующей семантикой атрибута:
version должно быть равно 0.
flags должно быть равно 0.
angle*90 указывает угол (в направлении против часовой стрелки) в единицах градусов.
Предписывающие метаданные для перекрытия изображения задаются следующим образом:
Тип Поля: 'iovl'
Хранилище: SharedItemProperties
Обязательный: Нет
Количество: Ноль или более.
Поле перекрытия изображения располагает одно или более входные изображения в заданном порядке наслаивания в рамках большего холста. Входные изображения перечисляются по порядку, в которой они наслаиваются, т.е. самое нижнее входное изображение первое, а самое верхнее входное изображение последнее, в SingleItemTypeReferenceBox типа 'dimg' для производного элемента изображения, который включает в себя или ссылается на это поле как свойство. Должно присутствовать только одно такое поле, назначенное в качестве свойства элемента изображения.
Синтаксис данного поля задается следующим образом:
Со следующей семантикой атрибута:
version должно быть равно 0.
(flags & 1), равное 0, указывает на то, что длина полей output_width, output_height, horizontal_offset, и verticai_offset составляет 16 битов. (flags & 1), равное 1, указывает на то, что длина полей output_width, output_height, horizontal_offset, и verticai_offset составляет 32 бита. Значения flags выше 1 зарезервированы.
canvas_fill_value: указывает значение пикселя на каналы, используемое, если отсутствует пиксель любого входного изображения, расположенный в конкретном местоположении пикселя. Значения заполнения указываются как RGBA (R, G, B, и A, соответствующие счетчику цикла j, равному 0, 1, 2, и 3, соответственно). Значения RGB находятся в цветовом пространстве sRGB, как определено в IEC 61966-2-1. Значение A является значением линейной непрозрачности в диапазоне от 0 (полностью прозрачный) до 65535 (полностью непрозрачный).
output_width, output_height: Указывают ширину и высоту соответственно выходного изображения, в которое помещаются входные изображения. Зона изображения выходного изображения именуется холстом.
reference_count получается из SingleItemTypeReferenceBox типа 'dimg', где элемент, использующий это поле, идентифицируется посредством поля from_item_ID.
horizontal_offset, vertical_offset: Указывают смещение от верхнего левого угла холста, с которым располагается входное изображение. Местоположения пикселя с отрицательным значением смещения не включаются в выходное изображение. Горизонтальные местоположения пикселя, большие или равные output_width, не включаются в выходное изображение. Вертикальные местоположения пикселя, большие или равные output_height, не включаются в выходное изображение.
Предписывающие метаданные для сетки изображения задаются следующим образом:
Тип Поля: 'grid'
Хранилище: SharedltemProperties
Обязательный: Нет
Количество: Ноль или более.
Поле сетки изображения формирует выходное изображение из одного или более входных изображений в заданном порядке сетки внутри большего холста. Должно присутствовать только одно такое поле, назначенный в качестве свойства у элемента изображения. Входные изображения вставляются по порядку по строкам, верхняя строка первая, слева направо, по порядку SingleItemTypeReferenceBox типа 'dimg' для производного элемента изображения, использующего это поле внутри ItemReferenceBox. Из этого элемента на входные изображения должно присутствовать rows*columns (рядов*столбцов) ссылок на элемент. Все входные изображения имеют в точности одинаковую ширину и высоту; назовем их tile_width и tile_height. Организованные в тайлах входные изображения должны полностью «охватывать» холст сетки выходного изображения, где tile_width*columns больше или равно output_width, а tile_height*rows больше или равно output_height. Выходное изображение формируется при организации тайлов из входных изображений в сетке с шириной столбца (потенциально за исключением крайнего правого столбца), равной tile_width, и высотой строки (потенциально за исключением самой нижней строки,) равной tile_height, без промежутка или перекрытия, и затем подрезки справа и снизу до указанных output_width и output_height.
Синтаксис этого поля задается следующим образом:
Со следующей семантикой атрибута:
version должно быть равно 0.
(flags & 1), равное 0 указывает на то, что длина полей output_width, output_height, horizontal_offset, и verticai_offset составляет 16 битов. (flags & 1), равное 1, указывает на то, что длина полей output_width, output_height, horizontal_offset и verticai_offset составляет 32 бита. Значения flags выше 1 зарезервированы.
output_width, output_height: Указывают ширину и высоту соответственно выходного изображения, в которое помещаются входные изображения. Зона изображения выходного изображения именуется холстом.
rows, columns (строки, столбцы): Указывают число строк входных изображений и число входных изображений на строку. Входные изображения заполняют верхнюю строку первой, за которой следует вторая и следующие, по порядку ссылок на элемент.
Сходным образом все другие предписывающие и описательные метаданные, такие как поле вспомогательной конфигурации ('auxC'), поле пространственных экстентов изображения ('ispe'), поле информации пикселя ('pixi'), поле относительного местоположения ('rloc'), поле чистой апертуры ('clap') (не ограничивающий список), все наследуются от fullbox ISOBMFF.
В соответствии с этим вариантом осуществления, элемент является производным изображением, когда он включает в себя ссылку на элемент 'dimg' на один или более других элементов изображения, которые являются вводами для производной. Производное изображение получается посредством выполнения указанной операции, такой как поворот, над указанными входными изображениями. Операция, выполняемая, чтобы получить производное изображение, идентифицируется посредством item_type элемента. Элементы изображения, используемые в качестве ввода для производного изображения, могут быть кодированными изображениями или они могут быть другими элементами производного изображения.
Например, элемент производного изображения чистой апертуры идентифицируется значением item_type 'clap'. Оно не хранит данных и не должно иметь ассоциированной записи в таблице 'iloc'. Оно должно включать в себя или ссылаться на свойство элемента типа CleanApertureBox, как определено в ISO/IEC 14496-12. Оно должно иметь ссылку на элемент типа 'dimg' на элемент изображения. В качестве другого примера, элемент производного изображения поворота изображения идентифицируется значением item_type 'irot'. Оно не имеет данных и не должно иметь ассоциированной записи в таблице 'iloc'. Оно должно включать в себя или ссылаться на свойство элемента типа ImageRotationBox, как определено выше. Оно должно иметь ссылку на элемент типа 'dimg' на элемент изображения.
Сходным образом, элемент производного изображения перекрытия изображений идентифицируется посредством item_type 'iovl'. Оно не имеет данных и не должно иметь ассоциированной записи в таблице 'iloc'. Оно должно включать в себя или ссылаться на свойство элемента типа ImageOverlayBox, как определено выше. Оно должно иметь ссылку на элемент типа 'dimg' на набор элементов изображения. Элемент производного изображения сетки изображения идентифицируется посредством item_type 'grid'. Оно не имеет данных и не должно иметь ассоциированной записи в таблице 'iloc'. Оно должно включать в себя или ссылаться на свойство элемента типа ImageGridBox, как определено выше. Оно должно иметь ссылку на элемент типа 'dimg' на набор элементов изображения.
Ниже приведены некоторые примеры, которые демонстрируют использование поля SharedItemProperties и расширенного поля ItemInfoEntry, чтобы назначать описательные и предписывающие метаданные (или свойства) изображениям.
В нижеследующем примере, два поля свойства ('hvcC' и 'ispe') назначаются элементу изображения непосредственно внутри ассоциированного ItemInfoEntry в массиве item_properties:
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=l, item_protection_index=0
(unused), item_properties: 'hvcC', 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, xtent_length=Y; MediaDataBox:
HEVC Image (at file offset X, with length Y)
В нижеследующем примере, в дополнение к предыдущему примеру, оператор поворота изображения ('irot') назначается элементу изображения сходным образом:
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1, item_protection_index=0
(unused), item_properties: 'hvcC', 'ispe', 'irot'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y; MediaDataBox:
HEVC Image (at file offset X, with length Y)
В нижеследующем примере несколько изображений с разными конфигурациями HEVC совместно используют одни и те же размеры, описанные в общем поле пространственных экстентов изображения ('ispe'), которое хранится в поле SharedItemProperty ('sitp'). Каждое поле ItemInfoEntry изображения содержит свое собственное поле конфигурации HEVC ('hvcC') и использует индекс (индексы свойств элемента) на поле SharedItemProperty для ссылки на общее поле пространственных экстентов изображения ('ispe'):
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=l,
item_protection_index=0 (unused),
item properties: 'hvcC', item properties indices: 0
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused)
item properties: 'hvcC', item properties indices: 0
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused)
item properties: 'hvcC', item properties indices: 0
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused)
item properties: 'hvcC', item properties indices: 0
SharedItemPropertiesBox:
0) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Записи таблицы item properties indices формируют набор идентификаторов. Другой набор идентификаторов формируется посредством ранга информации описания изображения (здесь 'ispe') в предназначенном совместно используемом поле [SharedItemPropertiesBox] здесь «0).
В другом варианте осуществления другой идентификатор может быть сформирован посредством другого ID, распределенного информации описания изображения в предназначенном совместно используемом поле. Например, этот другой ID, распределенный информации описания изображения, может быть определен при наследовании из «VirtualItemBox» (описанного выше) вместо «fullbox» ISOBMFF. Этот вариант осуществления позволяет преимущественно переупорядочивать информацию описания изображения в предназначенном совместно используемом поле, не оказывая влияния на установленный идентификатор.
Оба набора идентификаторов формируют структуру для связывания информации элемента изображения [представленной записью в ItemInfoBox] с по меньшей мере одной информацией описания изображения.
Нижеследующий пример описывает производное изображение, скомпонованное из нескольких изображений в повернутой сетке. Все изображения, компонующие сетку, совместно используют одну и ту же конфигурацию HEVC и одни и те же размеры изображения через поля 'hvcC' и 'ispe', расположенные в поле SharedItemProperty и на которые ссылаются через индекс свойства поля. Производное изображение, представляющее собой сетку, описывается через ItemInfoEntry, содержащий поле сетки изображения. Поворот, который должен быть применен, описывается с помощью поля поворота изображения, ассоциированного с производным изображением. Ссылка на входные изображения для осуществления компоновки производного изображения осуществляется через запись ссылки на элемент в поле ссылки на элемент ('iref'):
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=5;
ItemInfoBox:
1) item_type='hvcl', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0, 1
2) item_type='hvcl', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
3) item_type='hvcl', itemID=3,
item_protection_index=0 (unused),
item properties indices: 0, 1
4) item_type='hvcl', itemID=4,
item_protection_index=0 (unused),
item properties indices: 0, 1
5) item_type='grid', itemID=5,
item_protection_index=0 (unused),
item properties: 'grid', 'irot'
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
ItemReferenceBox:
type='dimg', fromID=5, toID=1,2,3,4;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Нижеследующий пример описывает организованное в тайлах изображение HEVC. В этом примере все элементы (полное изображение (itemID=1) и тайлы (itemID=2,3,4,5)) совместно используют одно и то же поле конфигурации HEVC и все тайлы совместно используют одно и то же поле пространственных экстентов изображения, определяющее размер тайла (Wt, Ht) через SharedItemPropertiesBox. В дополнение все элементы тайла содержат свое собственное поле относительного местоположения ('rloc'), предоставляющее x,y-координаты каждого тайла:
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0
item properties: 'ispe' (W,H)
2) item_type='hvt1', itemID=2,
item_protection_index=0 (unused)
item properties indices: 0, 1
item properties: 'rloc'
3) item_type='hvt1', itemID=3,
item_protection_index=0 (unused)
item properties indices: 0, 1
item properties: 'rloc'
4) item_type='hvt1', itemID=4,
item_protection_index=0 (unused)
item properties indices: 0, 1
item properties: 'rloc'
5) item_type='hvt1', itemID=5,
item_protection_index=0 (unused)
item properties indices: 0, 1
item properties: 'rloc'
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe' (Wt, Ht)
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Q0+Ql+Q2+Q3;
itemID=2, extent_count=1, extent_offset=X, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=X+Q0, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=X+Q0+Ql, extent_length=Q2;
itemID=5, extent_count=1, extent _offset=X+Q0+Ql+Q2, extent_length=Q3;
ItemReferenceBox:
type='tbas', fromID=2, toID=1;
type='tbas', fromID=3, toID=1;
type='tbas', fromID=4, toID=1;
type='tbas', fromID=5, toID=1;
MediaDataBox:
HEVC Image (at file offset X, with length Q0+Q1+Q2+Q3)
В дополнение, некоторым форматам файла требуются данные инициализации для декодирования данных элемента изображения. Данные инициализации являются особыми для кодека и могут быть точно такими же или сходными с записью конфигурации декодера, указанной для видеодорожек. В таком случае полезно совместно использовать данные инициализации, вместо того, чтобы повторять их в формате файла. Если такие данные инициализации требуются, они предоставляются в информации элемента описательными метаданными (свойством) особого типа. Несколько элементов изображения могут совместно использовать одно и то же такое свойство. Для того чтобы обеспечить совместное использование одних и тех же данных инициализации между элементом изображения и некоторыми образцами дорожки, новое поле описательных метаданных, именуемое SampleDescriptionEntryReference ('sder'), задается следующим образом:
Тип Поля: 'sder'
Хранилище: SharedItemProperties
Обязательный: Нет
Количество: Ноль или более.
SampleDescriptionEntryReferenceBox обеспечивает указание на то, что элемент изображения повторно использует точно такие же данные инициализации, как некоторые образцы дорожки. Он идентифицирует дорожку и запись описания образца тех образцов у той дорожки. Это поле имеет следующий синтаксис:
Со следующей семантикой для его параметров:
track_ID: Идентификатор дорожки, из которой повторно используется инициализация.
sample_description_index: основанный на 1 индекс записи образца в ассоциированной дорожке, который описывает данные в этом элементе.
Нижеследующий пример демонстрирует совместное использование конфигурации HEVC между дорожкой и элементом изображения через поле SampleDescriptionEntryReference ('sder'), ассоциированное с ItemInfoEntry изображения:
FileTypeBox: major-brand='heic', compatible-brands='heic, mp41'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1, item_protection_index=0 (unused), item properties: 'sder' (track: 1, sample_desc_index: 1), 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
Movie Box: (container)
Заголовок фильма, дорожки (включая дорожку 1 с по меньшей мере 1-м описанием образца) и т.д., как того требует MP4
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Мультимедийные данные, как того требует фильм (некоторые могут быть совместно использованы с данными изображения)
Когда данные элемента изображения представляют тайлы HEVC, тогда каждый элемент тайла HEVC должен включать в себя или ссылаться на свойство типа HEVCConfigurationBox со всеми наборами параметров, требуемыми для декодирования тайлов, присутствующих в элементе тайла HEVC. Некоторые элементы тайла HEVC могут совместно использовать одно и то же свойство HEVCConfigurationBox. Элемент тайла HEVC также должен включать в себя или ссылаться на свойство RelativeLocationBox ('rloc'), указывающее позицию элемента тайла HEVC внутри соответствующего элемента изображения HEVC. Некоторые элементы тайла HEVC, соответствующие тайлам, принадлежащим разным изображениям HEVC, могут совместно использовать одно и то же RelativeLocationBox. Свойство ImageSpatialExtentsBox ('ispe') должно быть использовано для каждого элемента тайла HEVC. display_width и display_height у ImageSpatialExtentsBox должны быть заданы в ширину и высоту элемента тайла HEVC.
В варианте вышеприведенного альтернативного варианта осуществления вместо группирования всех совместно используемых описательных и предписывающих метаданных в одном едином хранилище SharedItemPropertiesBox, могут быть определены два разных поля-хранилища, одно, предназначенное для описательных метаданных, и другое, предназначенное для предписывающих метаданных. В таком случае расширенный ItemInfoEntry содержит два разных массива индекса свойства (box_prop_idx и box_ope_idx), или тип метаданных (описательный или предписывающий) ассоциируется с каждой записью массива индекса свойства (box_prop_idx), чтобы извлекать ассоциированное хранилище.
Записи box_prop_idx и box_ope_idx формируют набор идентификаторов. Другой набор идентификаторов формируется посредством ранга информации описания изображения в двух предназначенных совместно используемых полях.
В другом варианте осуществления другой набор идентификаторов может быть сформирован посредством других ID, распределенных в информацию описания изображения, в каждом из предназначенных совместно используемых полях. Этот вариант осуществления позволяет преимущественно переупорядочивать информацию описания изображения в предназначенном совместно используемом поле, не оказывая влияния на набор идентификаторов.
Оба набора идентификаторов формируют структуру для связывания информации элемента изображения [представленной посредством записи в ItemInfoBox] с по меньшей мере одной информацией описания изображения.
Дополнительные примеры этого последнего аспекта изобретения описываются в Приложении.
В другом аспекте изобретения все описательные и предписывающие метаданные могут быть по-прежнему сгруппированы в одном или двух полях, сходных с SharedItemPropertiesBox, но вместо модифицирования поля ItemInfoEntry, поле ссылки на элемент может быть использовано, чтобы ассоциировать элементы изображения с их описательными и предписывающими метаданными. В этом альтернативном варианте осуществления задается два разных поля-хранилища, одно для описательных свойств (например, SharedItemProperties), а другое для предписывающих свойств (например, SharedItemOperators):
Вместо модифицирования поля 'infe', поле ItemReferenceBox 'iref' используется, чтобы ассоциировать изображение и элементы производного изображения с их описательными метаданными и предписывающими метаданными (также именуемыми операторами).
Задается два новых типа ссылки: например, 'sipr' для описательных метаданных и 'sior' для предписывающих метаданных.
В зависимости от типа отношения ('sipr' или 'sior'), параметр 'to_item_ID' в поле ссылки на элемент интерпретируется в качестве индекса в соответственно SharedItemPropertiesBox или SharedItemOperatorsBox. Типы ссылки (здесь 'sipr' или 'sior'), ассоциированные с 'to_item_ID', формируют структуру для связывания информации элемента изображения (представленной записью в ItemInfoBox) с информацией описания изображения (описательным метаданным и предписывающим метаданным).
Для любых других существующих типов ссылки атрибут 'to_item_ID' по-прежнему интерпретируется как указывающий на itemID в ItemInfoBox.
Ниже представлен пример, использующий типы отношения 'sipr' и 'sior', чтобы описывать несколько Изображений в повернутой сетке:
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=5;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused)
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused)
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused)
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused)
5) item_type='grid', itemID=5,
item_protection_index=0 (unused)
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
SharedItemOperatorsBox:
0) 'irot'
1) 'grid'
ItemLocationBox:
itemID=1, extent_count=1,
extent_offset=X, extent_length=Y;
itemID=2, extent_count=1,
extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1,
extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1,
extent_offset=P2, extent_length=Q2;
ItemReferenceBox:
type='sipr', fromID=1, toID=0,1;
type='sipr', fromID=2, toID=0,1;
type='sipr', fromID=3, toID=0,1;
type='sipr', fromID=4, toID=0,1;
type='dimg', fromID=5, toID=1,2,3,4;
type='sior', fromID=5, toID=1,0;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
В качестве варианта, каждая информация описания изображения в совместно используемых полях ассоциируется с присущим ID. Этот вариант осуществления позволяет с преимуществом переупорядочивать информацию описания изображения в предназначенном совместно используемом поле, не оказывая влияния на идентификатор.
В варианте каждый существующий тип ссылки неявным образом ассоциируется с либо itemInfoBox, полем SharedItemProperties либо полем SharedItemOperators. Например, типы ссылки описательных метаданных, такие как 'ispe', 'rloc', 'clap' или 'hvcC', ассоциируются с полем SharedItemProperties, а типы ссылки предписывающих метаданных, такие как 'irot', 'ivol', 'grid', ассоциируются с полем SharedItemOperators.
Фигура 9 является принципиальной структурной схемой вычислительного устройства 900 для реализации одного или более вариантов осуществления изобретения. Вычислительное устройство 900 может быть устройством, таким как микрокомпьютер, рабочая станция или легкое портативное устройство. Вычислительное устройство 900 содержит шину связи, соединенную с:
- центральным блоком 901 обработки, таким как микропроцессор, обозначенным CPU;
- памятью 902 с произвольным доступом, обозначенной RAM, для хранения исполняемого кода способа вариантов осуществления изобретения, а также регистров, выполненных с возможностью записи переменных и параметров, необходимых для реализации способа для считывания и записи деклараций и/или для кодирования видео и/или для считывания или генерирования Данных в заданном формате файла, при этом ее емкость памяти может быть расширена посредством необязательной RAM, соединенной, например, с портом расширения;
- постоянной памятью 903, обозначенной ROM, для хранения компьютерных программ для реализации вариантов осуществления изобретения;
- сетевым интерфейсом 904, как правило соединенным с сетью связи, через которую цифровые данные, которые должны быть обработаны, передаются или принимаются. Сетевой интерфейс 904 может быть одиночным сетевым интерфейсом или скомпонованным из набора разных сетевых интерфейсов (например, проводных и беспроводных интерфейсов или разных видов проводных или беспроводных интерфейсов). Данные записываются в сетевой интерфейс для передачи или считываются из сетевого интерфейса для приема под управлением приложения программного обеспечения, выполняемого в CPU 901;
- интерфейсом 905 пользователя для приема вводов от пользователя или для отображения информации пользователю;
- жестким диском 906, обозначенным HD;
- модулем 907 I/O для приема/отправки данных от/к внешним устройствам, таким как видеоисточник или дисплей.
Исполняемый код может быть сохранен либо в постоянной памяти 903, на жестком диске 906, либо на съемном цифровом носителе информации, таком как, например, диск. В соответствии с вариантом, исполняемый код программ может быть принят посредством сети связи через сетевой интерфейс 904 для того, чтобы быть сохраненным на одном из средств хранения устройства 900 связи, таком как жесткий диск 906, перед исполнением.
Центральный блок 901 обработки выполнен с возможностью управления и предписания исполнения команд или участков кода программного обеспечения у программы или программ в соответствии с вариантами осуществления изобретения, при этом команды хранятся на одном из вышеупомянутых средств хранения. После включения питания CPU 901 способен исполнять команды из основной памяти 902 RAM, относящиеся к приложению программного обеспечения, после того как эти команды были загружены, например, из ROM 903 программы или жесткого диска 906 (HD). Такое приложение программного обеспечения при исполнении посредством CPU 901 предписывает выполнение этапов способа в соответствии с вариантами осуществления.
В качестве альтернативы, настоящее изобретения может быть реализовано в аппаратном обеспечении (например, в форме Специализированной Интегральной Микросхемы или ASIC).
Настоящее изобретение может быть внедрено в устройство, подобное камере, смартфону или планшету, которое выступает в роли пульта дистанционного управления для TV, например, чтобы осуществлять увеличение масштаба на конкретной представляющей интерес области. Оно также может быть использовано с теми же самыми устройствами для обеспечения персонализированного восприятия от просмотра TV программы при выборе особых представляющих интерес зон. Другим использованием этих устройств пользователем является совместное использование некоторых выбранных суб-частей его предпочитаемых видео с другими подключенными устройствами. Оно также может быть использовано в смартфоне или планшете, чтобы отслеживать то, что происходит в особой зоне здания, находящегося под наблюдением, при условии, что камера наблюдения поддерживает часть генерирования у этого изобретения.
Несмотря на то, что изобретение было проиллюстрировано и описано подробно на чертежах и вышеприведенном описании, такая иллюстрация и описание должны рассматриваться иллюстрирующими и примерными, а не ограничивающими, при этом изобретение не ограничивается раскрытым вариантом осуществления. Другие вариации к раскрытому варианту осуществления могут быть поняты и осуществлены специалистами в данной области техники при реализации на практике заявленного изобретения, из изучения чертежей, раскрытия и прилагаемой формулы изобретения.
В формуле изобретения слово «содержащий» не исключает других элементов или этапов, а формы единственного числа не исключают множество. Одиночный процессор или другой блок может выполнять функции нескольких элементов, перечисленных в формуле изобретения. Сам факт, что разные признаки перечислены во взаимно различных зависимых пунктах формулы изобретения, не указывает на то, что не может быть использовано с преимуществом сочетание этих признаков. Любые ссылочные обозначения в формуле изобретения не должны толковаться как ограничивающие объем изобретения.
ПРИЛОЖЕНИЕ
Пример 1: Одиночное Изображение
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'hvcC', 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Пример 2: Одиночное Изображение с поворотом
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'hvcC', 'ispe', 'irot'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Пример 3: Одиночное изображение с поворотом и чистой апертурой
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1, item_protection_index=0 (unused),
item properties: 'hvcC', 'ispe', 'clap', 'irot'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Пример 4: Несколько Изображений с одинаковыми размерами, но разными конфигурациями HEVC
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'hvcC'
item properties indices: 0
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties: 'hvcC'
item properties indices: 0
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused),
item properties: 'hvcC'
item properties indices: 0
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused),
item properties: 'hvcC'
item properties indices: 0
SharedItemPropertiesBox:
0) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Пример 5: Несколько Изображений с одинаковыми конфигурацией HEVC и размерами
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0, 1
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused),
item properties indices: 0, 1
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused),
item properties indices: 0, 1
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Пример 6: Несколько Изображений с одинаковыми конфигурацией HEVC и размерами, но разными поворотами
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'irot'
item properties indices: 0, 1
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties: 'irot'
item properties indices: 0, 1
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused),
item properties: 'irot'
item properties indices: 0, 1
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused),
item properties: 'irot'
item properties indices: 0, 1
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Пример 7: Несколько Изображений в сетке
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=5;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0, 1
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused),
item properties indices: 0, 1
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused),
item properties indices: 0, 1
5) item_type='grid', itemID=5,
item_protection_index=0 (unused),
item properties: 'grid'
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
ItemReferenceBox:
type='dimg', fromID=5, toID=1,2,3,4;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Пример 8: Несколько Изображений в повернутой сетке
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=5;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0, 1
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
3) item_type='hvc1', itemID=3,
item_protection_index=0 (unused),
item properties indices: 0, 1
4) item_type='hvc1', itemID=4,
item_protection_index=0 (unused),
item properties indices: 0, 1
5) item_type='grid', itemID=5,
item_protection_index=0 (unused),
item properties: 'grid', 'irot'
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=P1, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=P2, extent_length=Q2;
ItemReferenceBox:
type='dimg', fromID=5, toID=1,2,3,4;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
HEVC Image (at file offset P2, with length Q2)
HEVC Image (at file offset P3, with length Q3)
Пример 9: Несколько Изображений с перекрытием
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=3;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0, 1
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
3) item_type='ivol', itemID=3,
item_protection_index=0 (unused),
item properties: 'ivol'
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=2, extent_count=1, extent_offset=P0, extent_length=Q0;
ItemReferenceBox:
type='dimg', fromID=3, toID=1,2;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P1, with length Q1)
Пример 10: Одно Изображение и его повернутая версия
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=3;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'hvcC', 'ispe'
2) item_type='irot', itemID=2,
item_protection_index=0 (unused),
item properties: 'irot'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
ItemReferenceBox:
type='dimg', fromID=2, toID=1;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Пример 11: Организованные в тайлах Изображения
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0
item properties: 'ispe' (W,H)
2) item_type='hvt1', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
item properties: 'rloc'
3) item_type='hvt1', itemID=3,
item_protection_index=0 (unused),
item properties indices: 0, 1
item properties: 'rloc
4) item_type='hvt1', itemID=4,
item_protection_index=0 (unused),
item properties indices: 0, 1
item properties: 'rloc
5) item_type='hvt1', itemID=5,
item_protection_index=0 (unused),
item properties indices: 0, 1
item properties: 'rloc
SharedItemPropertiesBox:
0) 'hvcC'
1) 'ispe' (Wt, Ht)
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Q0+Q1+Q2+Q3;
itemID=2, extent_count=1, extent_offset=X, extent_length=Q0;
itemID=3, extent_count=1, extent_offset=X+Q0, extent_length=Q1;
itemID=4, extent_count=1, extent_offset=X+Q0+Q1, extent_length=Q2;
itemID=4, extent_count=1, extent_offset=X+Q0+Q1+Q2, extent_length=Q3;
ItemReferenceBox:
type='tbas', fromID=2, toID=1;
type='tbas', fromID=3, toID=1;
type='tbas', fromID=4, toID=1;
type='tbas', fromID=5, toID=1;
MediaDataBox:
HEVC Image (at file offset X, with length Q0+Q1+Q2+Q3)
Пример 12: Вспомогательное Изображение с такими же конфигурацией HEVC и размерами как у главного изображения
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties indices: 0, 1
2) item_type='hvc1', itemID=2,
item_protection_index=0 (unused),
item properties indices: 0, 1
item properties: 'auxC'
SharedItemPropertiesBox^
0) 'hvcC'
1) 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
itemID=1, extent_count=1, extent_offset=P, extent_length=Q;
ItemReferenceBox:
type='auxl', fromID=2, toID=1;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
HEVC Image (at file offset P, with length Q)
Пример 13: Изображение с описанием Суб-образца
FileTypeBox: major-brand='heic', compatible-brands='heic'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'hvcC', 'ispe', 'subs'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Пример 14: Совместно используема конфигурация HEVC между дорожкой и элементом
FileTypeBox: major-brand='heic', compatible-brands='heic, mp41'
MetaBox: (container)
HandlerBox: hdlr='pict'
PrimaryItemBox: itemID=1;
ItemInfoBox:
1) item_type='hvc1', itemID=1,
item_protection_index=0 (unused),
item properties: 'sder' (track: 1, sample_desc_index: 1), 'ispe'
ItemLocationBox:
itemID=1, extent_count=1, extent_offset=X, extent_length=Y;
MovieBox: (container)
Заголовок фильма, дорожки (включая дорожку 1 с по меньшей мере 1-м описанием образца) и т.д., как того требует MP4
MediaDataBox:
HEVC Image (at file offset X, with length Y)
Мультимедийные данные, как того требует фильм (некоторые могут быть совместно использованы с данными изображения).