Способ передачи идентификатора субизображения
METHOD FOR TRANSMITTING THE SUBIMAGE IDENTIFIER

ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] Настоящая заявка испрашивает приоритет предварительной патентной заявки США №62/906 079, поданной 25 сентября 2019 г., и патентной заявки США №17/026 966, поданной 21 сентября 2020 г., которые включены в настоящий документ в полном объеме.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Настоящее изобретение в общем относится к области обработки данных и к кодированию и декодированию видео, в частности.
УРОВЕНЬ ТЕХНИКИ
[0003] Настоящее изобретение относится к области обработки данных и к кодированию и декодированию видео, в частности.
[0004] Различные приложения, такие как видео 360 градусов и облако точек, могут использовать механизм разбиения на субизображения. У каждого субизображения может быть соответствующий идентификатор, который может быть связан с определенной областью изображения. С помощью идентификаторов субизображений декодер или другой элемент системы может определить, какие блоки уровня сетевой абстракции уровня кодирования видео относятся к целевой области, связанной с выбранными значениями идентификаторов субизображений.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0005] Варианты осуществления изобретения относятся к способу, системе и машиночитаемому носителю для кодирования видеоданных. Согласно одному аспекту настоящего изобретения предлагается способ кодирования видео. Способ может предусматривать прием видеоданных, содержащих одно или более субизображение. При этом передается значение идентификатора, соответствующее субизображению из числа одного или более субизображений. Видеоданные кодируются и/или декодируются на основании переданного значения идентификатора.
[0006] Согласно другому аспекту настоящего изобретения предлагается компьютерная система для кодирования видео. Компьютерная система может содержать один или более процессоров, одну или более машиночитаемых систем памяти, одно или более машиночитаемых физических запоминающих устройств и программные инструкции, записанные по меньшей мере на одном из этих устройств хранения данных и предназначенные для исполнения по меньшей мере одним из указанных выше процессоров с помощью по меньшей мере одной из упомянутых выше систем памяти, в результате чего компьютерная система может реализовать данный способ. Способ может предусматривать прием видеоданных, содержащих одно или более субизображение. При этом передается значение идентификатора, соответствующее субизображению из числа одного или более субизображений. Видеоданные кодируются и/или декодируются на основании переданного значения идентификатора.
[0007] Согласно еще одному аспекту настоящего изобретения предлагается машиночитаемый носитель для кодирования видео. Машиночитаемый носитель может содержать одно или более машиночитаемых запоминающих устройств и программные инструкции, записанные по меньшей мере на одном из этих физических устройств хранения данных, причем эти программные инструкции могут исполняться процессором. Программные инструкции исполняются процессором для реализации способа, который может предусматривать прием видеоданных, содержащих одно или более субизображение. При этом передается значение идентификатора, соответствующее субизображению из числа одного или более субизображений. Видеоданные кодируются и/или декодируются на основании переданного значения идентификатора.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Эти и другие цели, особенности и преимущества настоящего изобретения будут понятны из приведенного ниже подробного описания иллюстрированных вариантов осуществления, которое следует читать совместно с сопроводительными чертежами. Различные элементы чертежей выполнены не в масштабе, поскольку иллюстрации приводятся для наглядности с целью облегчить понимание специалисту в данной области техники и сопровождаются подробным описанием. Состав чертежей:
На фиг. 1 представлена сетевая компьютерная среда согласно по меньшей мере одному варианту осуществления.
На фиг. 2 приведены примеры элементов синтаксиса согласно по меньшей мере одному варианту осуществления.
На фиг. 3 представлена блок-схема программы кодирования видео согласно по меньшей мере одному варианту осуществления.
На фиг. 4 представлена структурная схема внутренних и внешних компонентов компьютеров и серверов, изображенных на фиг. 1, согласно по меньшей мере одному варианту осуществления.
На фиг. 5 представлена структурная схема типовой облачной среды, содержащей компьютерную систему, изображенную на фиг. 1, согласно по меньшей мере одному варианту осуществления.
На фиг. 6 представлена структурная схема функциональных уровней типовой облачной среды, изображенной на фиг. 5, согласно по меньшей мере одному варианту осуществления.
ПОДРОБНОЕ ОПИСАНИЕ
[0009] В настоящем документе подробно описываются варианты осуществления предложенных структур и способов; однако следует иметь в виду, что описанные здесь варианты осуществления лишь иллюстрируют предложенные структуры и способы, которые могут быть воплощены в различных формах. Поскольку эти структуры и способы могут быть воплощены во множестве различных форм, описанные здесь варианты осуществления не следует рассматривать как ограничение для возможных реализаций. Эти варианты осуществления приводятся с целью всестороннего и полного описания настоящего изобретения, чтобы оно было в полной мере понятно специалистам в данной области. Во избежание неоправданной перегрузки представленных вариантов осуществления деталями, подробные описания известных особенностей и способов могут быть опущены.
[0010] Варианты осуществления относятся к области обработки данных в целом и к кодированию и декодированию видео в частности. В описанных ниже примерах вариантов осуществления предлагаются система, способ и компьютерная программа, позволяющие, в частности, передавать идентификатор субизображения вместе с видеоданными в заголовке блока уровня сетевой абстракции или заголовке слайса. Таким образом, некоторые варианты осуществления изобретения позволяют повысить эффективность вычислительных ресурсов, обеспечивая более высокую эффективность кодирования и декодирования благодаря гибкой передаче идентификаторов субизображений.
[0011] Как указано выше, механизм разбиения на субизображения может использоваться в различных приложениях, например, видео 360 и облаке точек. У каждого субизображения может быть соответствующий идентификатор, который может быть связан с определенной областью изображения. С помощью идентификаторов субизображений декодер или другой элемент системы может определить, какие блоки уровня сетевой абстракции уровня кодирования видео относятся к целевой области, связанной с выбранными значениями идентификаторов субизображений.
[0012] Однако необходимо передать элемент синтаксиса, описывающий идентификатор субизображения, тогда как таблица сопоставления, связывающая идентификаторы субизображений с конкретными областями, может содержаться в наборе параметров. Идентификатор субизображения может передаваться в заголовке блока уровня сетевой абстракции или в заголовке слайса. Несмотря на то, что заголовок блока уровня сетевой абстракции легко доступен элементам системы, он требует значительных вычислительных ресурсов и предварительно занят параметрами nuh_laye_rid и nal_unit_type. В области фиксированной длины в начальной позиции заголовка слайса может быть больше места, но его доступность хуже, чем доступность заголовка блока уровня сетевой абстракции, поскольку элемент системы должен каждый раз обращаться к заголовку слайса в полезной нагрузке уровня кодирования видео. Поэтому может быть целесообразно предусмотреть возможность гибкой передачи идентификаторов субизображений с использованием как заголовка блока уровня сетевой абстракции, так и заголовка слайса.
[0013] Описание аспектов настоящего изобретения опирается на блок-схемы и/или структурные схемы способов, устройств (систем) и машиночитаемых носителей согласно различным вариантам осуществления изобретения. Следует иметь в виду, что каждый блок алгоритма и/или структурной схемы, а также комбинации блоков алгоритма и/или структурной схемы могут быть реализованы с помощью машиночитаемых программных инструкций.
[0014] На фиг. 1 представлена функциональная схема сетевой компьютерной среды, иллюстрирующая систему кодирования видео 100 (далее «система») для кодирования видеоданных на основе гибкой передачи идентификаторов субизображений. Следует иметь в виду, что на фиг. 1 представлен лишь один вариант осуществления, который не накладывает никаких ограничений в отношении других сред, где могут быть реализованы другие варианты осуществления. Изображенные среды могут быть изменены различными способами в зависимости от требований к проектированию и реализации.
[0015] Система 100 может содержать компьютер 102 и сервер 114. Компьютер 102 может взаимодействовать с сервером 114 по коммуникационной сети 110 (далее «сеть»). Компьютер 102 может содержать процессор 104 и программное обеспечение 108, которое записано на запоминающем устройстве 106 и может взаимодействовать с пользователем и обмениваться данными с сервером 114. Как будет показано ниже со ссылкой на фиг. 4, компьютер 102 может содержать внутренние компоненты 800А и внешние компоненты 900А, а сервер 114 может содержать внутренние компоненты 800 В и внешние компоненты 900 В. Компьютер 102 может быть, в частности, мобильным устройством, телефоном, карманным портативным компьютером, нетбуком, ноутбуком, планшетным компьютером, настольным компьютером или любым типом вычислительного устройства, которое может исполнять программу, подключаться к сети и обращаться к базе данных.
[0016] Сервер 114 может также работать в рамках модели облачных сервисов, таких как программное обеспечение как услуга (SaaS, Software as a Service), платформа как услуга (PaaS, Platform as a Service) или инфраструктура как услуга (laaS, Infrastructure as a Service), как показано ниже в описании фиг. 5 и фиг. 6. Сервер 114 также может находиться в облачной модели развертывания вычислительных ресурсов, например, в частном облаке, коммунальном облаке, общедоступном облаке или гибридном облаке.
[0017] Сервер 114, который может использоваться для кодирования видеоданных на основе гибкой передачи идентификаторов субизображений, способен исполнять программу кодирования видео 116 (далее «программа»), которая может взаимодействовать с базой данных 112. Более подробно способ программы кодирования видео описывается ниже в контексте фиг. 3. В одном варианте осуществления компьютер 102 может выполнять функции устройства ввода, предоставляющего пользовательский интерфейс, а программа 116 может выполняться преимущественно на сервере 114. В другом варианте осуществления программа 116 может выполняться преимущественно на одном или более компьютерах 102, а сервер 114 может использоваться для обработки и хранения данных, которые используются программой 116. Следует отметить, что программа 116 может быть автономной или интегрированной в более крупную программу кодирования видео.
[0018] Однако нужно иметь в виду, что в некоторых случаях функции обработки программы 116 могут быть распределены между компьютерами 102 и серверами 114 в любых соотношениях. Еще в одном варианте осуществления программа 116 может работать на нескольких компьютерах, серверных компьютерах или комбинации компьютеров и серверных компьютеров, например, на нескольких компьютерах 102, взаимодействующих по сети 110 с одним сервером 114. В другом варианте осуществления программа 116 может работать, например, на нескольких серверах 114, взаимодействующих по сети 110 с несколькими клиентскими компьютерами. Как вариант, программа может работать на сетевом сервере, взаимодействующем по сети с сервером и несколькими клиентскими компьютерами.
[0019] Сеть 110 может содержать проводные соединения, беспроводные соединения, оптоволоконные соединения или комбинацию вышеперечисленных соединений. В целом сеть 110 может представлять собой любую комбинацию соединений и протоколов, которые обеспечивают взаимодействие между компьютером 102 и сервером 114. Сеть 110 может включать в себя различные типы сетей, в том числе локальную сеть (LAN, local area network), глобальную сеть (WAN, wide area network), например Интернет, телекоммуникационную сеть, например телефонную сеть общего пользования (ТфОП), беспроводную сеть, коммутируемую сеть общего пользования, спутниковую сеть, сеть сотовой связи (например сеть пятого поколения (5G), сеть LTE, сеть третьего поколения (3G), сеть множественного доступа с кодовым разделением (CDMA, code division multiple access) и т.д.), сеть сотовой связи общего пользования (ССОП), городскую сеть (MAN, metropolitan area network), частную сеть, специальную сеть, интранет, оптоволоконную сеть или т.п., а также (или) комбинацию этих или других типов сетей.
[0020] Количество и распределение устройств и сетей, показанных на фиг. 1, приведено в качестве примера. На практике могут использоваться дополнительные устройства и/или сети, меньшее количество устройств и/или сетей, другие устройства и/или сети либо устройства и/или сети, организованные иначе, чем показано на чертеже. 1. Кроме того, два или более устройств, изображенных на фиг. 1, могут быть реализованы в составе одного устройства, либо одно устройство, изображенное на фиг. 1, может быть реализовано в виде нескольких распределенных устройств. В качестве дополнительного или альтернативного варианта некоторые устройства системы 100 (например, одно или более устройств) могут выполнять одну или более функций, которые в описании закреплены за другими устройствами системы 100.
[0021] На фиг. 2 изображен пример элемента синтаксиса 200. Элементы синтаксиса 200 могут использоваться для передачи идентификатора субизображения.
[0022] Флаг use_nuh_layer_id_as_subpic_id_flag, равный 1, может указывать на то, что значение переменной subpicID каждого блока уровня сетевой абстракции уровня кодирования видео с идентификатором nuh_layer_id в кодированной видеопоследовательности, относящейся к набору параметров последовательности, предполагается равным идентификатору nuhlayerid. Флаг
use_nuh_layer_id_as_subpic_id_flag, равный 0, может указывать на то, что значение переменной subpicID каждого блока уровня сетевой абстракции уровня кодирования видео с идентификатором nuh_layer_id в кодированной видеопоследовательности, относящейся к набору параметров последовательности, предполагается равным идентификатору subpic_id, который присутствует в заголовке слайса. Когда флаг subpics_present_flag равен 1, а идентификатор sps_video_parameter_set_id равен 0, что означает, что текущая кодированная видеопоследовательность состоит из одного уровня с несколькими субизображениями, флаг use_nuh_layer_id_as_subpic_id_flag может быть равен 1. В противном случае флаг use_nuh_layer_id as subpic_id_flag может быть равен 0. Для согласованности битового потока значение флага use_nuh_layer_id_as_subpic_id_flag может быть равно 0, когда идентификатор sps_video_parameter_set_id может быть равен 1 или флаг subpics_present_flag может быть равен 0.
[0023] Идентификатор subpic_id может определять идентификатор субизображения слайса. Длина идентификатора subpic_id составляет (subpic_id_len_minus 1+1) бит. Значение subpic_id_len_minus1 может присутствовать в наборе параметров последовательности или в каком-либо другом месте.
[0024] Теперь обратимся к фиг. 3, где показана операционная блок-схема, демонстрирующая последовательность действий способа 300 для кодирования видеоданных. В некоторых вариантах осуществления один или более функциональных блоков на фиг. 3 могут выполняться компьютером 102 (фиг. 1) и сервером 114 (фиг. 1). В некоторых вариантах осуществления один или более функциональных блоков на фиг. 3 могут выполняться другим устройством или группой устройств, не связанных с компьютером 102 и сервером 114 или включающих их.
[0025] В блоке 302 способ 300 предусматривает прием видеоданных, содержащих одно или более субизображение.
[0026] В блоке 304 способ 300 предусматривает передачу значения идентификатора, соответствующего субизображению из числа одного или более субизображений.
[0027] В блоке 306 способ 300 предусматривает кодирование видеоданных на основании значения переданного идентификатора.
[0028] Следует иметь в виду, что на фиг. 3 представлен лишь один вариант осуществления, который не накладывает никаких ограничений в отношении возможности реализации других вариантов осуществления. Изображенные среды могут быть изменены различными способами в зависимости от требований к проектированию и реализации.
[0029] На фиг. 4 представлена структурная схема 400 внутренних и внешних компонентов компьютеров и серверов, изображенных на фиг. 1, согласно одному варианту осуществления. Следует иметь в виду, что на фиг. 4 представлен лишь один вариант осуществления, который не накладывает никаких ограничений в отношении других сред, где могут быть реализованы другие варианты осуществления. Изображенные среды могут быть изменены различными способами в зависимости от требований к проектированию и реализации.
[0030] Компьютер 102 (фиг. 1) и сервер 114 (фиг. 1) могут включать в себя соответствующие наборы внутренних компонентов 800А,В и внешних компонентов 900А,В, показанные на фиг. 4. Каждый набор внутренних компонентов 800 содержит один или более процессоров 820, одно или более машиночитаемых ОЗУ 822 и одно или более машиночитаемых ПЗУ 824 на одной или более шинах 826, одну или более операционных систем 828 и одно или более машиночитаемых физических запоминающих устройств 830.
[0031] Процессор 820 реализован в виде аппаратных средств, микропрограммного обеспечения или комбинации аппаратных средств и программного обеспечения. Процессор 820 может представлять собой центральный процессор (CPU, central processing unit), графический процессор (GPU, graphics processing unit), гибридный процессор (APU, accelerated processing unit), микропроцессор, микроконтроллер, цифровой сигнальный процессор (DSP, digital signal processor), программируемую логическую интегральную схему (FPGA, field-programmable gate array), интегральную схему специального назначения (ASIC, application-specific integrated circuit) или вычислительный компонент другого типа. В некоторых вариантах реализации процессор 820 может включать в себя один или более процессоров, которые могут быть запрограммированы на выполнение определенной функции. Шина 826 содержит компонент, который обеспечивает обмен данными между внутренними компонентами 800А,В.
[0032] Одна или более операционных систем 828, программное обеспечение 108 (фиг. 1) и программа кодирования видео 116 (фиг. 1) на сервере 114 (фиг. 1) хранятся, соответственно, на одном или более машиночитаемых физических запоминающих устройствах 830 для исполнения, соответственно, одним или более процессорами 820 с помощью, соответственно, одного или более ОЗУ 822 (которые обычно включают в себя кеш-память). В варианте осуществления, показанном на фиг. 4, каждое машиночитаемое физическое запоминающее устройство 830 представляет собой магнитный диск встроенного накопителя на жестком диске. В качестве альтернативного варианта каждое машиночитаемое физическое запоминающее устройство 830 может представлять собой полупроводниковое запоминающее устройство, например ПЗУ 824, ППЗУ, флеш-память, оптический диск, магнитооптический диск, твердотельный диск, компакт-диск (CD, compact disc), цифровой многоцелевой диск (DVD, digital versatile disc), дискету, картридж, магнитную ленту и/или другое машиночитаемое физическое запоминающее устройство, на котором могут храниться компьютерная программа и цифровая информация.
[0033] Каждый набор внутренних компонентов 800А,В также включает в себя привод или интерфейс чтения/записи 832 для чтения данных с одного или более портативных машиночитаемых физических запоминающих устройств 936 и для записи данных на них, например CD-ROM, DVD, карты памяти, магнитной ленты, магнитного диска, оптического диска или полупроводникового запоминающего устройства, и для записи данных на такие устройства. Программное обеспечение, например программное обеспечение 108 (фиг. 1) и программа кодирования видео 116 (фиг. 1), может храниться, соответственно, на одном или более портативных машиночитаемых физических запоминающих устройствах 936, считываться с помощью соответствующего привода или интерфейса чтения/записи 832 и загружаться на соответствующий жесткий диск 830.
[0034] Каждый набор внутренних компонентов 800А,В также включает в себя сетевые адаптеры или интерфейсы 836, например платы адаптера TCP/IP, платы беспроводного интерфейса Wi-Fi, платы беспроводного интерфейса 3G, 4G или 5G либо другие проводные или беспроводные каналы связи. Программное обеспечение 108 (фиг. 1) и программа кодирования видео 116 (фиг. 1) на сервере 114 (фиг. 1) могут быть скачаны в компьютер 102 (фиг. 1) и сервер 114 с внешнего компьютера через сеть (например Интернет, локальную сеть или другую глобальную сеть) и соответствующие сетевые адаптеры или интерфейсы 836. От сетевых адаптеров или интерфейсов 836 программное обеспечение 108 и программа кодирования видео 116 на сервере 114 загружаются на соответствующий жесткий диск 830. Сеть может быть построена на основе медных проводов, оптических волокон, беспроводных средств передачи данных, маршрутизаторов, межсетевых экранов, коммутаторов, шлюзовых компьютеров и/или периферийных серверов.
[0035] Каждый набор внешних компонентов 900А,В может содержать компьютерный монитор 920, клавиатуру 930 и компьютерную мышь 934. Внешние компоненты 900А,В могут также включать в себя сенсорные экраны, виртуальные клавиатуры, сенсорные панели, указывающие устройства и другие устройства для пользовательского интерфейса. Каждый набор внутренних компонентов 800А,В также включает в себя драйверы устройств 840 для подключения компьютерного монитора 920, клавиатуры 930 и компьютерной мыши 934. Драйверы устройств 840, привод или интерфейс чтения/записи 832 и сетевой адаптер или интерфейс 836 состоят из аппаратных средств и программного обеспечения, которое хранится в запоминающем устройстве 830 и/или ПЗУ 824.
[0036] Изначально подразумевается, что, хотя настоящее изобретение включает в себя подробное описание облачных технологий, реализация изложенных здесь принципов не ограничивается облачной средой. Напротив, некоторые варианты осуществления могут быть реализованы в любой другой вычислительной среде, как известной в настоящее время, так и созданной в будущем.
[0037] Облачные вычисления представляют собой модель предоставления услуг для обеспечения удобного сетевого доступа по запросу к общему пулу конфигурируемых вычислительных ресурсов (например сетей, сетевой пропускной способности, серверов, ресурсов обработки, памяти, хранения, приложений, виртуальных машин и сервисов), которые могут быть быстро подготовлены и переданы при минимальных управленческих затратах и взаимодействии с поставщиком услуг. Такая облачная модель может описываться не менее чем пятью характеристиками, включать в себя не менее трех сервисных моделей и не менее четырех моделей развертывания.
[0038] Применяются следующие характеристики:
Самообслуживание по запросу: потребитель облака может в одностороннем порядке, автоматически, по мере необходимости выделять вычислительные ресурсы, например время работы сервера и сетевое хранилище, без необходимости взаимодействия с поставщиком услуг.
Широкий сетевой доступ: доступ к ресурсам осуществляется по сети и с помощью стандартных механизмов, которые позволяют использовать гетерогенные платформы с тонкими или толстыми клиентами (например мобильные телефоны, ноутбуки и КПК).
Объединение ресурсов в пул: вычислительные ресурсы поставщика объединяются в пул для обслуживания множества потребителей с использованием многоарендной модели, при этом различные физические и виртуальные ресурсы динамически выделяются и перераспределяются в зависимости от спроса. Независимость от местоположения проявляется в том, что потребитель обычно не контролирует точное местоположении предоставляемых ресурсов или не знает о нем, но может задать местоположение на более высоком уровне абстракции (на уровне страны, региона или центра обработки данных).
Быстрая эластичность: ресурсы могут оперативно и гибко предоставляться для быстрого горизонтального масштабирования, в некоторых случаях автоматически, и оперативно высвобождаться для быстрого сокращения. Потребителю доступные для выделения ресурсы часто представляются неограниченными и могут быть приобретены в любом объеме в любой момент.
Измеряемый сервис: облачные системы автоматически контролируют и оптимизируют использование ресурсов, опираясь на возможности учета на определенном уровне абстракции в зависимости от типа сервиса (например хранение, обработка, пропускная способность и активные учетные записи пользователей). Использование ресурсов можно отслеживать, регулировать и регистрировать, обеспечивая прозрачность как для поставщика, так и для потребителя используемого сервиса.
[0039] Используются следующие сервисные модели:
Программное обеспечение как услуга (SaaS): потребителю предоставляется возможность использовать приложения поставщика, работающие в облачной инфраструктуре. Приложения доступны с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, веб-клиент электронной почты) Потребитель не управляет базовой облачной инфраструктурой, включая сеть, серверы, операционные системы, хранилища и даже отдельные возможности приложений, кроме ограниченных пользовательских параметров конфигурации приложений.
Платформа как услуга (PaaS): потребителю предоставляется возможность развертывать в облачной инфраструктуре собственные или приобретенные приложения, созданные с помощью языков программирования и инструментов, которые поддерживает поставщик. Потребитель не управляет базовой облачной инфраструктурой, включая сеть, серверы, операционные системы или хранилища, но контролирует развернутые приложения и, возможно, конфигурации среды размещения приложений.
Инфраструктура как услуга (laaS): потребителю предоставляется возможность выделять ресурсы обработки, хранения, сетевые и другие базовые вычислительные ресурсы, с помощью которых потребитель может развертывать и запускать произвольное программное обеспечение, в том числе операционные системы и приложения. Потребитель не управляет базовой облачной инфраструктурой, но контролирует операционные системы, хранилища, развернутые приложения и, возможно, ограниченно управляет отдельными сетевыми компонентами (например, брандмауэрами хоста).
[0040] Используются следующие модели развертывания:
Частное облако: облачная инфраструктура используется исключительно в интересах организации. Она может находиться под управлением организации или третьей стороны и может существовать как локально, так и дистанционно.
Коммунальное облако: облачная инфраструктура совместно используется несколькими организациями и поддерживает определенное сообщество с общими потребностями (например миссия, требования к безопасности, политика и соответствие нормативным требованиям). Она может находиться под управлением организаций или третьей стороны и может существовать как локально, так и дистанционно.
Общедоступное облако: облачная инфраструктура доступна широкой общественности или крупной промышленной группе и принадлежит организации, продающей облачные сервисы.
Гибридное облако: облачная инфраструктура представляет собой совокупность двух или более облаков (частных, коммунальных или общедоступных), которые остаются уникальными образованиями, но объединены стандартизированной или фирменной технологией, обеспечивающей возможность переноса данных и приложений (например, технология cloud bursting для балансировки нагрузки между облаками).
[0041] Облачная среда имеет сервис-ориентированный характер с акцентом на отказ от статичности, низкий уровень привязки, модульность и семантическую совместимость. Ядром облачных вычислений служит инфраструктура, состоящая из сети взаимосвязанных узлов.
[0042] На фиг. 5 показан пример облачной среды 500. Как показано на чертеже, облачная среда 500 содержит один или более узлов облака 10, с которыми могут взаимодействовать локальные вычислительные устройства, используемые потребителями облака, например карманный персональный компьютер (КПК) или сотовый телефон 54А, настольный компьютер 54 В, ноутбук 54С и/или автомобильная компьютерная система 54N. Узлы облака 10 могут взаимодействовать друг с другом. Они могут быть сгруппированы (не показано на рисунке) физически или виртуально, в одной или более сетях, например в частных, коммунальных, общедоступных или гибридных облаках, как описано выше, или в их комбинации. Благодаря этому облачная среда 500 может предлагать инфраструктуру, платформы и/или программное обеспечение в качестве сервисов, при использовании которых потребителю облака не требуется поддерживать ресурсы на локальном вычислительном устройстве. Следует иметь в виду, что типы вычислительных устройств 54A-N на фиг. 5 приведены только для примера и что узлы облака 10 и облачная среда 500 могут взаимодействовать с компьютерными устройствами любого типа по сети и/или посредством сетевого адресного подключения любого типа (например с помощью веб-браузера).
[0043] На фиг. 6 показан набор функциональных уровней абстракции 600, предоставляемых облачной средой 500 (фиг. 5). Следует сразу оговориться, что компоненты, уровни и функции, показанные на фиг. 6, приведены только для примера и не ограничивают варианты осуществления изобретения. Как показано на чертеже, предусмотрены следующие уровни и соответствующие им функции:
[0044] Аппаратно-программный уровень 60 состоит из аппаратных и программных компонентов. Примерами аппаратных компонентов могут служить: мэйнфреймы 61; серверы на базе архитектуры RISC (Reduced Instruction Set Computer, компьютер с сокращенным набором команд) 62; серверы 63; блейд-серверы 64; запоминающие устройства 65; сети и сетевые компоненты 66. В некоторых вариантах осуществления программные компоненты включают в себя программное обеспечение сетевого сервера приложений 67 и программное обеспечение базы данных 68.
[0045] Уровень виртуализации 70 обеспечивает уровень абстракции, на котором могут быть созданы следующие примеры виртуальных объектов: виртуальные серверы 71; виртуальные хранилища 72; виртуальные сети 73, включая виртуальные частные сети; виртуальные приложения и операционные системы 74; виртуальные клиенты 75.
[0046] В одном примере уровень управления 80 может обеспечивать описанные ниже функции. Подготовка ресурсов 81 обеспечивает динамическое выделение вычислительных и иных ресурсов, которые используются для выполнения задач в облачной среде. Учет и ценообразование 82 обеспечивают отслеживание затрат по мере использования ресурсов в облачной среде, а также тарификацию или выставление счетов за потребление этих ресурсов. В одном примере эти ресурсы могут включать в себя лицензии на прикладное программное обеспечение. Система безопасности обеспечивает проверку удостоверений потребителей и задач облака, а также защиту данных и других ресурсов. Пользовательский портал 83 обеспечивает доступ к облачной среде потребителям и системным администраторам. Управление уровнем обслуживания 84 обеспечивает распределение облачных ресурсов и управление ими таким образом, чтобы соблюдать требуемые уровни обслуживания. Планирование и выполнение соглашений об уровне обслуживания (SLA, Service Level Agreement) 85 обеспечивает предварительную оценку и приобретение облачных ресурсов, потребность в которых ожидается в соответствии с SLA.
[0047] Уровень рабочих нагрузок 90 предлагает примеры функциональных возможностей, для которых может быть использована облачная среда. На этом уровне могут быть предоставлены следующие рабочие нагрузки и функции: картирование и навигация 91; разработка и управление жизненным циклом программного обеспечения 92; организация виртуального учебного класса 93; аналитическая обработка данных 94; обработка транзакций 95; кодирование видео 96. Кодирование видео 96 может кодировать видеоданные на основе гибкой передачи идентификатора субизображения.
[0048] Некоторые варианты осуществления изобретения могут относиться к системе, способу и/или машиночитаемому носителю с интеграцией на любом возможном уровне технической детализации. Машиночитаемый носитель может содержать машиночитаемый физический носитель информации (или носители), на котором записаны машиночитаемые программные инструкции, под управлением которых процессор может выполнять операции.
[0049] Машиночитаемый носитель информации может быть физическим устройством, где могут храниться инструкции, которые выполняет устройство выполнения инструкций. Машиночитаемый носитель информации может быть, в частности, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией вышеперечисленных устройств. Неисчерпывающий перечень более конкретных примеров машиночитаемого носителя информации включает в себя следующие устройства: портативную компьютерную дискету, жесткий диск, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), стираемую программируемую память только для чтения (EPROM или Flash-память), статическое ОЗУ (СОЗУ), портативный компакт-диск только для чтения (CD-ROM), цифровой универсальный диск (DVD), карту памяти, дискету, устройство с механическим кодированием, например перфокарты или рельефные поверхностные структуры, на которых записаны инструкции, а также любую подходящую комбинацию перечисленных выше устройств. Под машиночитаемым носителем информации настоящем документе не подразумеваются сигналы как таковые, в частности, радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся по волноводу или в другой среде передачи (например световые импульсы, передаваемые по волоконно-оптическому кабелю), или электрические сигналы, передаваемые по проводам.
[0050] Описанные в настоящем документе машиночитаемые программные инструкции могут загружаться в соответствующие вычислительные или обрабатывающие устройства с машиночитаемого носителя информации или на внешний компьютер или внешнее запоминающее устройство по сети, например по Интернету, локальной сети, глобальной сети и/или беспроводной сети. Сеть может быть построена на основе медных кабелей, оптических волокон, беспроводных средств передачи данных, маршрутизаторов, межсетевых экранов, коммутаторов, шлюзовых компьютеров и/или периферийных серверов. Плата сетевого адаптера или сетевой интерфейс в каждом вычислительном или обрабатывающем устройстве получает машиночитаемые программные инструкции из сети и пересылает на хранение в машиночитаемый носитель информации в соответствующем вычислительном или обрабатывающем устройстве.
[0051] Машиночитаемый программный код или инструкции для выполнения операций могут быть командами ассемблера, командами архитектуры набора команд (ISA), машинными командами, машинозависимыми командами, микрокодом, командами микропрограммы, данными установки состояния, данными конфигурации для интегральных схем либо исходным или объектным кодом, написанными на любой комбинации из одного или более языков программирования, включая объектно-ориентированные языки программирования, например Smalltalk, С++ или аналогичные им, а также процедурные языки программирования, например язык программирования "С" или аналогичные языки программирования. Машиночитаемые программные инструкции могут выполняться на компьютере пользователя полностью или частично, как отдельный программный пакет, частично на компьютере пользователя и частично на удаленном компьютере либо полностью на удаленном компьютере или сервере. В последнем варианте удаленный компьютер может быть подключен к компьютеру пользователя через сеть любого типа, включая локальную сеть (LAN) или глобальную сеть (WAN), либо можно использовать подключение к внешнему компьютеру (например через Интернет с помощью интернет-провайдера). В некоторых вариантах осуществления выполнять машиночитаемые программные инструкции могут электронные схемы, в том числе программируемые логические схемы, программируемые логические интегральные схемы (FPGA) или программируемые логические матрицы (PLA, programmable logic array), используя информацию о состоянии машиночитаемых программных команд для персонализации электронной схемы с целью выполнения определенных аспектов или операций.
[0052] Эти машиночитаемые программные инструкции могут быть переданы в процессор компьютера общего назначения, в компьютер специального назначения или в другое программируемое устройство обработки данных для формирования машины таким образом, чтобы инструкции, выполняемые процессором компьютера или другого программируемого устройства обработки данных, создавали средства для реализации функций или действий, указанных на блоках блок-схемы и/или структурной схемы. Эти машиночитаемые программные инструкции могут также храниться на машиночитаемом носителе информации, который может предписывать компьютеру, программируемому устройству обработки данных и/или другим устройствам функционировать определенным образом, причем машиночитаемый носитель информации с записанными на нем инструкциями представляет собой изделие, включающее в себя инструкции, реализующие определенные аспекты функции или действий, указанных на блоках блок-схемы и/или структурной схемы.
[0053] Машиночитаемые программные инструкции могут также загружаться в компьютер, другое программируемое устройство обработки данных или иное устройство, чтобы инициировать выполнение ряда операционных действий на компьютере, другом программируемом устройстве или ином устройстве для получения реализованной на компьютере процедуры, причем инструкции, выполняемые на компьютере, другом программируемом устройстве или ином устройстве, реализуют функции или действия, указанные на блоках блок-схемы и/или структурной схемы.
[0054] Приведенные на чертежах блок-схемы и структурные схемы иллюстрируют архитектуру, функциональные возможности и работу возможных реализаций систем, способов и машиночитаемых носителей согласно различным вариантам осуществления изобретения. В связи с этим, каждый блок блок-схемы или структурной схемы может соответствовать модулю, сегменту или части инструкций, которые включают в себя одну или более исполняемых инструкций для реализации заданных логических функций. Способ, компьютерная система и машиночитаемый носитель могут содержать дополнительные блоки, меньшее количество блоков, другие блоки или иначе организованные блоки, нежели те, что изображены на чертежах. В некоторых альтернативных вариантах реализации указанные на блоках функции могут выполняться не в том порядке, который указан на чертежах. Например, два блока, изображенные последовательно, на практике могут выполняться одновременно или практически одновременно, а иногда блоки могут выполняться в обратном порядке в зависимости от используемых функциональных возможностей. Следует также отметить, что каждый блок структурной схемы и/или блок-схемы, а также комбинации блоков структурной схемы и/или блок-схемы могут быть реализованы специализированными аппаратными системами, которые выполняют указанные функции или действия либо реализуют комбинации инструкций для специализированных аппаратных средств и компьютеров.
[0055] Следует понимать, что описанные в настоящем документе системы и/или способы могут быть реализованы посредством различных форм аппаратных средств, микропрограммного обеспечения или комбинации аппаратных средств и программного обеспечения. Фактическое специализированное управляющее оборудование или программный код, используемые для реализации этих систем и/или способов, не ограничивают варианты реализации. Поэтому работа и поведение систем и/или способов описываются в настоящем документе без ссылки на конкретный программный код; при этом подразумевается, что программное обеспечение и аппаратные средства могут быть разработаны для реализации систем и/или способов на основе приведенного в настоящем документе описания.
[0056] Никакие элементы, действия или инструкции, используемые в настоящем документе, не следует рассматривать как критически важные или существенные, если это не оговорено в явном виде. Кроме того, понятия, используемые в настоящем документе в единственном числе, могут подразумевать один или более экземпляров и могут использоваться с тем же значением вместе с выражением «один или более». Также в настоящем документе понятие «набор» используется для обозначения одного или более элементов (например, связанных элементов, несвязанных элементов, комбинации связанных и несвязанных предметов и т.д.) и может использоваться взаимозаменяемо с выражением «один или более». Если имеется в виду только один элемент, то используется понятие «один» или аналогичная формулировка. Кроме того, используемые в настоящем документе понятия «имеет», «имеют», «имеющий» и т.п. являются неограничивающими понятиями. Кроме того, формулировка «на основе» означает «по меньшей мере частично на основе», если явно не оговорено иное.
[0057] Описания различных аспектов и вариантов осуществления представлены для наглядности и не исчерпывают и не ограничивают раскрытые варианты осуществления. Даже если в формуле изобретения и/или в описании приводятся комбинации особенностей, такие комбинации не ограничивают возможные варианты осуществления. На практике многие из этих особенностей можно объединять различными способами, которые отдельно не упоминаются в формуле изобретения и/или не раскрыты в описании. Хотя каждый приведенный ниже зависимый пункт формулы может напрямую зависеть только от одного пункта, при раскрытии возможных вариантов осуществления каждый зависимый пункт рассматривается в комбинации со всеми остальными пунктами формулы. Специалистам в данной области техники будут понятны разнообразные модификации и варианты, не выходящие за рамки описанных вариантов осуществления изобретения. Используемая в настоящем документе терминология выбрана с целью наилучшего разъяснения принципов осуществления, практического применения или технического усовершенствования по сравнению с существующими на рынке технологиями, а также для того, чтобы другие специалисты в данной области техники могли понять раскрытые здесь варианты осуществления.