Способ эффективной сигнализации виртуальной границы для управления петлевой фильтрацией
METHOD FOR EFFECTIVE SIGNALLING OF A VIRTUAL BOUNDARY FOR CONTROLLING LOOP FILTERING

Перекрестная ссылка на родственные заявки
[0001] По настоящей заявке испрашивается приоритет на основании предварительной заявки на патент США №62/865944, поданной 24 июня 2019 г., и заявки на патент США №16/908 227, поданной 22 июня 2020 г. в Бюро по патентам и товарным знакам США, которые полностью включены в настоящий документ посредством ссылки.
Предпосылки создания изобретения
[0002] Настоящее изобретение в целом относится к области вычислений и, в частности, к кодированию видео.
[0003] Экспертная группа кодирования видео (VCEG, Video Coding Experts Group) Исследовательская группа 16, Вопрос 6 (Q6/16, Study Group 16, Question 6) в Международном союзе электросвязи - Сектор стандартизации электросвязи (ITU-T, International Telecommunication Union Telecommunication Standardization Sector), и Экспертная группа по движущимся изображениям (MPEG, Moving Picture Experts Group) (Объединенный технический комитет 1/Подкомиссия 29/Рабочая группа 11 (JTC 1/SC 29/WG 11, Joint Technical Committee Number 1, Subcommittee 29, Working Group 11)) в Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC, International Standardization Organization and International Electrotechnical Commission,) опубликовали стандарт H.265/HEVC (HEVC, High Efficiency Video Coding, Высокоэффективное кодирование видео) в 2013 г. (версия 1), 2014 г. (версия 2), 2015 г. (версия 3) и 2016 г. (версия 4). С тех пор они изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит стандарт HEVC (включая его расширения). В октябре 2017 года они объявили совместный конкурс предложений (CfP, Call for Proposals) по сжатию видео с возможностями, выходящими за рамки HEVC. К 15 февраля 2018 г. было отправлено всего 22 ответа на CfP по стандартному динамическому диапазону (SDR, Standard Dynamic Range) и 12 ответов на CfP по расширенному динамическому диапазону (HDR, High Dynamic Range) и 12 ответов на CfP по категориям видео 360 градусов, соответственно. В апреле 2018 г. все полученные ответы на конкурс CfP были оценены на 122-м заседании MPEG/10-м заседании JVET (Объединенной группы по исследованию видео - Объединенной команды экспертов видео, Joint Video Exploration Team - Joint Video Expert Team). После тщательной оценки JVET официально запустила стандартизацию кодирования видео следующего поколения, выходящего за рамки HEVC, то есть так называемое Универсальное кодирование видео (VVC, Versatile Video Coding). В то же время китайский стандарт кодирования аудио-видео (AVS, Audio Video coding Standard) также находится в стадии разработки.
Сущность изобретения
[0004] Формы осуществления изобретения относятся к способу, системе и машиночитаемому носителю для кодирования видеопоследовательности. Согласно одному аспекту, предлагается способ кодирования видеопоследовательности. Способ может включать прием видеоданных, содержащих одну или более граней. Могут быть выбраны одна или более виртуальных границ между одной или более гранями принятых видеоданных. Внутрипетлевая фильтрация может быть отключена между одной или более выбранными границами из числа виртуальных границ.
[0005] Согласно другому аспекту, предлагается компьютерная система для кодирования видеопоследовательности. Компьютерная система может содержать один или более процессоров, одно или более машиночитаемых запоминающих устройств, одно или более машиночитаемых материальных запоминающих устройств и команды программы, хранящиеся по меньшей мере на одном из одного или более запоминающих устройств, для выполнения по меньшей мере одним из одного или более процессоров посредством по меньшей мере одного или более запоминающих устройств, посредством чего компьютерная система способна выполнять способ. Способ может включать прием видеоданных, содержащих одну или более граней. Могут быть определены одна или более виртуальных границ между одной или более гранями принятых видеоданных. Внутрипетлевая фильтрация может быть отключена между одной или более выбранными границами из числа виртуальных границ.
[0006] Согласно еще одному аспекту, предлагается машиночитаемый носитель для кодирования видеопоследовательности. Машиночитаемый носитель может содержать одно или более машиночитаемых запоминающих устройств и команд программы, хранящихся по меньшей мере на одном из одного или более материальных запоминающих устройств, причем команды программы могут быть исполнены процессором. Команды программы могут быть исполнены процессором для выполнения способа, который, соответственно, может включать в себя прием видеоданных, содержащих одну или более граней. Могут определяться одна или более виртуальных границ между одной или более гранями принятых видеоданных. Внутрипетлевая фильтрация может отключаться между одной или более выбранными границами из числа виртуальных границ.
Краткое описание чертежей
[0007] Эти и другие цели, особенности и преимущества станут очевидными из следующего подробного описания иллюстративных форм осуществления изобретения, которое следует читать вместе с сопроводительными чертежами. Различные элементы чертежей приведены не в масштабе, поскольку иллюстрации приведены для ясности и облегчения понимания специалистами в данной области техники в сочетании с подробным описанием. На чертежах:
На фиг. 1 показана сетевая компьютерная среда согласно по меньшей мере одной форме осуществления изобретения.
Фиг. 2 представляет собой набор примеров синтаксических элементов согласно по меньшей мере одной форме осуществления изобретения.
Фиг. 3 - блок-схема последовательности операций, иллюстрирующая этапы, выполняемые программой для кодирования видеопоследовательности с отключением фильтра виртуальных границ, согласно по меньшей мере одной форме осуществления изобретения.
Фиг. 4 - блок-схема внутренних и внешних компонентов компьютеров и серверов, изображенных на фиг. 1, согласно по меньшей мере одной форме осуществления изобретения.
Фиг. 5 - блок-схема иллюстративной среды облачных вычислений, включающей компьютерную систему, изображенную на фиг. 1, согласно по меньшей мере одной форме осуществления изобретения.
Фиг. 6 - блок-схема функциональных уровней иллюстративной среды облачных вычислений, показанной на фиг. 5, согласно по меньшей мере одной форме осуществления изобретения.
Подробное описание
[0014] Подробные формы осуществления изобретения заявленных структур и способов раскрыты в настоящем документе; однако раскрытые формы осуществления изобретения являются просто иллюстрацией заявленных структур и способов, которые могут быть воплощены в различных формах. Эти структуры и способы могут быть воплощены во многих различных формах, и их не следует рассматривать как ограниченные примерами осуществления изобретения, изложенными в данном документе. Эти примеры осуществления изобретения представлены для того, чтобы это описание было исчерпывающим и полным и полностью передавало объем для специалистов в данной области техники. В описании детали хорошо известных функций и технологий могут быть опущены, чтобы избежать ненужного затруднения понимания представленных форм осуществления изобретения.
[0015] Формы осуществления изобретения в целом относятся к области вычислений и, в частности, к кодированию видео. Следующие описанные ниже примеры осуществления изобретения представляют систему, способ и программу для компьютера, предназначенную, среди прочего, для кодирования видеопоследовательности с отключением фильтра виртуальных границ. Следовательно, некоторые формы осуществления изобретения обладают способностью улучшать область вычислений, позволяя компьютеру отключать внутрипетлевую фильтрацию через разрывные границы, что полезно для улучшения субъективного визуального качества видеопоследовательности вследствие смягчения нежелательного эффекта фильтрации.
[0016] Как описано ранее, ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) опубликовали стандарт H.265/HEVC (Высокоэффективное кодирование видео) в 2013 г. (версия 1), 2014 г. (версия 2), 2015 г. (версия 3) и 2016 г. (версия 4). С тех пор они изучают потенциальную потребность в стандартизации будущей технологии кодирования видео с возможностью сжатия, которая значительно превосходит стандарт HEVC (включая его расширения). В октябре 2017 года они объявили совместный конкурс предложений по сжатию видео с возможностями, выходящими за рамки HEVC (CfP). К 15 февраля 2018 г. было отправлено всего 22 ответа на CfP по стандартному динамическому диапазону (SDR) и 12 ответов на CfP по расширенному динамическому диапазону (HDR), а также 12 ответов на CfP по категориям видео 360 градусов, соответственно. В апреле 2018 г. все полученные ответы на конкурс CfP были оценены на 122-м заседании MPEG/10-м заседании JVET. После тщательной оценки JVET официально запустила стандартизацию кодирования видео следующего поколения, выходящего за рамки HEVC, то есть так называемое Универсальное кодирование видео (VVC). В то же время китайский стандарт кодирования аудио-видео (AVS) также находится в стадии разработки.
[0017] Для форматов проекций, состоящих из множества граней (плоскостей), разрывные края могут появляться между двумя или более смежными гранями в изображении с упакованными кадрами, независимо от типа используемой компоновки компактной упаковки кадров. Например, в конфигурации упаковки кадров 3×2, три грани в верхней половине могут быть непрерывными в трехмерной геометрии. Точно так же, три грани в нижней половине также могут быть непрерывными в трехмерной геометрии. Однако верхняя и нижняя половины изображения с упаковкой кадров могут быть разрывными в трехмерной геометрии по отношению друг к другу. Следовательно, если операции внутрипетлевой фильтрации должны выполняться с переходом через этот разрыв, артефакты стыка граней могут стать видимыми в восстановленном видео. Внутрипетлевая фильтрация обычно относится к каскадному процессу, состоящему из двух этапов, а именно к деблокинговой фильтрации и фильтрации с адаптивным сдвигом значений отсчетов для удаления блочных артефактов, возникающих во время кодирования видео. Следовательно, может быть полезным устранять артефакты стыка путем избирательного отключения операций внутрипетлевой фильтрации через разрывные границы в изображении с упаковкой кадров. Это может быть достигнуто путем задания индикации положения i-й виртуальной границы как значения разницы между х-значением и у-значением i-й виртуальной границы и х-значением и у-значением (i-1)-й виртуальной границы.
[0018] Аспекты описаны в данном документе со ссылкой на иллюстрации блок-схем и/или функциональных схем способов, устройств (систем) и машиночитаемых носителей согласно различным формам осуществления изобретения. Следует понимать, что каждый блок иллюстраций блок-схем и/или функциональных схем, а также комбинации блоков на иллюстрациях блок-схем и/или функциональных схем могут быть реализованы с помощью машиночитаемых команд программы.
[0019] Нижеописанные примеры осуществления изобретения предоставляют систему, способ и программу для компьютера для кодирования видео путем отключения внутрипетлевого фильтра между разрывными границами граней. Обратимся теперь к фиг. 1, на которой представлена функциональная блок-схема сетевой компьютерной среды, иллюстрирующая систему 100 (далее - "система") для отключения фильтра границ. Следует понимать, что фиг. 1 представляет только иллюстрацию одной реализации и не подразумевает каких-либо ограничений в отношении сред, в которых могут быть внедрены различные формы осуществления изобретения. Многие модификации изображенных сред могут быть сделаны на основе требований технического решения и реализации.
[0020] Система 100 может содержать компьютер 102 и серверный компьютер 114. Компьютер 102 может связываться с серверным компьютером 114 через сеть 110 связи (далее - "сеть"). Компьютер 102 может содержать процессор 104 и программу 108, которая хранится на устройстве 106 хранения данных и может взаимодействовать с пользователем и осуществлять связь с серверным компьютером 114. Как будет описано ниже со ссылкой на фиг. 4, компьютер 102 может содержать внутренние компоненты 800А и внешние компоненты 900А, соответственно, а серверный компьютер 114 может содержать внутренние компоненты 800В и внешние компоненты 900 В, соответственно. Компьютер 102 может быть, например, мобильным устройством, телефоном, персональным цифровым помощником, нетбуком, портативным компьютером, планшетным компьютером, настольным компьютером, или вычислительными устройствами любого типа, способными выполнять программу, получать доступ к сети и базе данных.
[0021] Серверный компьютер 114 может также работать в модели службы облачных вычислений, такой как программное обеспечение как услуга (SaaS, Software as a Service), платформа как услуга (PaaS, Platform as a Service) или инфраструктура как услуга (IaaS, Infrastructure as a Service), как обсуждается ниже в отношении фиг. 5 и 6. Серверный компьютер 114 также может быть расположен в модели развертывания облачных вычислений, такой как частное облако, общественное облако, общедоступное облако или гибридное облако.
[0022] Серверный компьютер 114, который может использоваться для кодирования видеопоследовательности с отключением фильтра виртуальных границ, имеет возможность выполнять программу 116 отключения фильтра границ (далее "программу"), которая может взаимодействовать с базой 112 данных. Способ программы отключение фильтра границ ниже поясняется более подробно со ссылкой на фиг. 3. В одной форме осуществления изобретения компьютер 102 может работать как устройство ввода, содержащее пользовательский интерфейс, в то время как программа 116 может работать в основном на серверном компьютере 114. В альтернативной форме осуществления изобретения программа 116 может работать в основном на одном или более компьютерах 102, в то время как серверный компьютер 114 может использоваться для обработки и хранения данных, используемых программой 116. Следует отметить, что программа 116 может быть отдельной программой или может быть интегрирована в более крупную программу отключения фильтра границ.
[0023] Однако следует отметить, что обработка данных для программы 116 может в некоторых случаях разделяться компьютерами 102 и серверными компьютерами 114 в любом соотношении. В другой форме осуществления изобретения программа 116 может работать более чем на одном компьютере, серверном компьютере или некоторой комбинации компьютеров и серверных компьютеров, например, множестве компьютеров 102, обменивающихся данными по сети 110 с одним серверным компьютером 114. В другой форме осуществления изобретения, например, программа 116 может работать на множестве серверных компьютеров 114, обменивающихся данными через сеть 110 с множеством клиентских компьютеров. В качестве альтернативы программа может работать на сетевом сервере, обменивающемся данными по сети с сервером и множеством клиентских компьютеров.
[0024] Сеть 110 может содержать проводные соединения, беспроводные соединения, оптоволоконные соединения или некоторую их комбинацию. В общем, сеть 110 может представлять собой любую комбинацию соединений и протоколов, которые будут поддерживать связь между компьютером 102 и серверным компьютером 114. Сеть 110 может включать в себя различные типы сетей, такие как, например, локальная сеть (LAN, Local Area Network), глобальная сеть (WAN, Wide Area Network), такая как Интернет, телекоммуникационная сеть, такая как коммутируемая телефонная сеть общего пользования (PSTN, Public Switched Telephone Network), беспроводная сеть, коммутируемая сеть общего пользования, спутниковая сеть, сотовая сеть (например, сеть пятого поколения (5G, 5-th Generation), сеть связи по технологии долгосрочного развития (LTE, Long-Term Evolution), сеть третьего поколения (3G, 3-rd Generation), сеть множественного доступа с кодовым разделением каналов (CDMA, Code Division Multiple Access) и т.п.), наземная мобильная сеть общего пользования (PLMN, Public Land Mobile Network), городская сеть (MAN, Metropolitan Area Network), частная сеть, децентрализованная сеть, интранет, волоконно-оптическая сеть и т.п., и/или комбинация этих и других видов сетей.
[0025] Число и расположение устройств и сетей, показанных на фиг. 1, приведены в качестве примера. На практике могут быть дополнительные устройства и/или сети, меньшее число устройств и/или сетей, другие устройства и/или сети или устройства и/или сети, расположенные иначе, чем показанные на фиг. 1. Кроме того, два или более устройств, показанных на фиг. 1, могут быть реализованы в одном устройстве или одно устройство, показанное на фиг. 1, может быть реализовано как несколько распределенных устройств. Дополнительно или альтернативно, группа устройств (например, одно или более устройств) системы 100 может выполнять одну или более функций, описанных как выполняемые другой группой устройств системы 100.
[0026] Обратимся теперь к фиг. 2, на которой изображены примерные синтаксические элементы 200 согласно одной или нескольким формам осуществления изобретения. Синтаксические элементы 200 могут содержать, помимо прочего, параметры, которые соответственно могут включать в себя:
[0027] Параметр pps_num_ver_virtual_boundaries может определять число синтаксических элементов pps_virtual_boundaries_pos_x[i], которые могут присутствовать в наборе параметров изображения (PPS, Picture Parameter Set). Когда pps_num_ver_virtual boundaries отсутствует, значение может быть принято равным 0.
2
[0028] Параметр pps_virtual_boundaries_pos_x_delta[i] может использоваться для вычисления значения PpsVirtualBoundariesPosX[i], который может определять местоположение i-й вертикальной виртуальной границы в единицах отсчетов яркости. Число битов, используемых для представления pps_virtual_boundaries_pos_х_delta[i], может иметь значение ceil(log(pic_width_in_luma_samples)-3). Параметр pps_virtual_boundaries_pos_x_delta[i] может быть в диапазоне от 1 до ceil((pic_width_in_luma_samples-PpsVirtualBoundariesPosX[i-1])÷8)-2 включительно. Местоположение вертикальной виртуальной границы PpsVirtualBoundariesPosX[i] может быть задано как PpsVirtualBoundariesPosX[i]=pps_virtual_boundaries_pos_х_delta[i]*8, когда i равно нулю, и как PpsVirtualBoundaries_PosX[i]=pps_virtual_boundaries__pos_x_delta[i]*8+PpsVirtualBounda riesPosX[i-1] для всех остальных значений. Расстояние между любыми двумя вертикальными виртуальными границами может быть больше или равно CtbSizeY отсчетам яркости.
[0029] Параметр pps_num_hor_virtual_boundaries может определять число синтаксических элементов pps_virtual_boundaries_pos_y[i], которые могут присутствовать в наборе PPS. Когда pps_num_horvirtual_boundaries отсутствует, значение может быть принято равным 0.
2
[0030] Параметр pps_virtual_boundaries_pos_y_delta[i] может использоваться для вычисления значения PpsVirtualBoundariesPosY[i], которое определяет местоположение i-й горизонтальной виртуальной границы в единицах отсчетов яркости. Число битов, используемых для представления pps_virtual_boundaries_pos_y_delta[i], - это ceil(Log(pic_heigh_in_luma_samples)-3). Параметр pps_virtual_boundaries_pos_у_delta[i] может быть в диапазоне от 1 до ceil((pic_height_in_luma_samples-PpsVirtualBoundariesPosY[i-1])÷8)-2 включительно. Местоположение горизонтальной виртуальной границы PpsVirtualBoundariesPosY[i] может быть задано как PpsVirtualBoundariesPosY[i]=pps_virtual_boundaries_pos_y_delta[i]*8, когда i равно нулю, и как PpsVirtualBoundariesPosYfi]=pps_virtual_boundaries_pos-у_delta[i]*8+PpsVirtualBoundariesPosY[i-1] для всех остальных значений. Расстояние между любыми двумя горизонтальными виртуальными границами может быть больше или равно CtbSizeY отсчетам яркости.
[0031] Обратимся теперь к фиг. 3, на которой изображена функциональная блок-схема 300, иллюстрирующая этапы, выполняемые программой для кодирования видеопоследовательности с отключением фильтра виртуальных границ. Фиг. 3 можно описать с помощью фиг. 1 и 2. Как описано ранее, программа 116 отключения фильтра границ (фиг. 1) может быстро и эффективно отключить внутрипетлевую фильтрацию виртуальных границ для уменьшения граничных артефактов в видеопоследовательности.
[0032] На этапе 302 принимают видеоданные, содержащие одну или более граней. Одна или более граней могут соответствовать непрерывным и разрывным плоскостям в трехмерном видео. Грани могут быть расположены в компоновке упаковки кадров. Во время работы программа 116 отключения фильтра границ (фиг. 1) на серверном компьютере 114 (фиг. 1) может принимать видеоданные. Видеоданные могут приниматься из компьютера 102 (фиг. 1) по сети 110 связи (фиг. 1) или могут выбираться из базы 112 данных (фиг. 1).
[0033] На этапе 304 выбирают одну или более виртуальных границ между одной или более гранями принятых видеоданных. Каждая из одной или более виртуальных границ может включать в себя х-значение и у-значение, которые могут располагаться в возрастающем порядке. При этом i-я виртуальная граница может быть указана среди одной или более виртуальных границ как разность между х-значением и у-значением i-й виртуальной границы, и х-значением и у-значением (i-1)-й виртуальной границы. Во время работы программы 116 отключения фильтра границ (фиг. 1) может использоваться один или более синтаксических элементов (фиг. 2) для выбора виртуальных границ в видеоданных.
[0034] На этапе 306 может быть отключена внутрипетлевая фильтрация между одной или более выбранными виртуальными границами из виртуальных границ. Отключение внутрипетлевой фильтрации может минимизировать артефакты, присутствующие между виртуальными границами при использовании в трехмерной геометрии. При работе программа 116 отключения фильтра границ (фиг. 1) может использовать один или более синтаксических элементов (фиг. 2) для отключения внутрипетлевой фильтрации разрывных границ, чтобы минимизировать артефакты на виртуальных границах.
[0035] Понятно, что фиг. 3 представляет только иллюстрацию одной реализации и не подразумевает каких-либо ограничений в отношении того, как могут быть реализованы различные формы осуществления изобретения. Многие модификации изображенных сред могут быть сделаны на основе требований технического решения и реализации.
[0036] Фиг. 4 - блок-схема 400 внутренних и внешних компонентов компьютеров, изображенных на фиг. 1, в соответствии с иллюстративной формой осуществления изобретения. Следует понимать, что фиг. 4 представляет только иллюстрацию одной реализации и не подразумевает каких-либо ограничений в отношении сред, в которых могут быть внедрены различные формы осуществления изобретения. Многие модификации изображенных сред могут быть сделаны на основе требований технического решения и реализации.
[0037] Компьютер 102 (фиг. 1) и серверный компьютер 114 (фиг. 1) могут содержать соответствующие комплекты внутренних компонентов 800А, В и внешних компонентов 900А, В, показанные на фиг. 4. Каждый из комплектов внутренних компонентов 800 содержит один или более процессоров 820, одно или более машиночитаемых оперативных запоминающих устройств (RAM, Random-Access Memory) 822 и одно или более машиночитаемых постоянных запоминающих устройств (ROM, Read-Only Memory) 824 на одной или более шинах 826, одну или более операционных систем 828 и одно или более машиночитаемых материальных запоминающих устройств 830.
[0038] Процессор 820 реализован в виде аппаратного обеспечения, встроенного программного обеспечения или комбинации аппаратного и программного обеспечения. Процессор 820 это центральный процессор (CPU, Central Processing Unit), графический процессор (GPU, Graphics Processing Unit), блок ускоренной обработки (APU, Accelerated Processing Unit), микропроцессор, микроконтроллер, процессор обработки цифровых сигналов (DSP, Digital Signal Processor), программируемая пользователем матрица логических элементов (FPGA, Field Programmable Gate Area), специализированная интегральная схема (ASIC, Application-Specific Integrated Circuit) или другой тип компонента обработки. В некоторых реализациях процессор 820 содержит один или более процессоров, которые могут быть запрограммированы для выполнения определенной функции. Шина 826 содержит компонент, который обеспечивает связь между внутренними компонентами 800А, В.
[0039] Одна или более операционных систем 828, программа 108 (фиг. 1) и программа 116 отключения фильтра границ (фиг. 1) на серверном компьютере 114 (фиг. 1) хранятся на одном или более из соответствующих машиночитаемых материальных запоминающих устройств 830 для исполнения одним или более соответствующими процессорами 820 при помощи одного или более соответствующих устройств RAM 822 (которые обычно содержат кэш-память). В форме осуществления изобретения, показанной на фиг. 4, каждое из машиночитаемых материальных запоминающих устройств 830 является запоминающим устройством на магнитном диске внутреннего дисковода для жестких дисков. В качестве альтернативы каждое из машиночитаемых материальных запоминающих устройств 830 представляет собой полупроводниковое запоминающее устройство, такое как ROM 824, EPROM, флэш-память, оптический диск, магнитооптический диск, твердотельный диск, компакт-диск (CD, Compact Disk), универсальный цифровой диск (DVD, Digital Versatile Disk), дискета, картридж памяти, магнитная лента и/или другой тип машиночитаемого материального запоминающего устройства, которое может хранить программу для компьютера и цифровую информацию.
[0040] Каждый комплект внутренних компонентов 800А,В также содержит привод для чтения/записи или интерфейс 832 для чтения из и записи на одно или более портативных машиночитаемых материальных запоминающих устройств 936, таких как CD-ROM, DVD, карта памяти, магнитная лента, магнитный диск, оптический диск или полупроводниковое запоминающее устройство. Программное обеспечение, такое как программа 108 (фиг. 1) и программа 116 отключения фильтра границ (фиг. 1), может храниться на одном или более соответствующих портативных машиночитаемых материальных запоминающих устройствах 936, считываться с помощью соответствующего привода для чтения/записи или интерфейса 832 и загружаться в соответствующий дисковод 830 для жестких дисков.
[0041] Каждый комплект внутренних компонентов 800А,В также содержит сетевые адаптеры или интерфейсы 836, такие как адаптерные карты адаптера протокола управления передачей/межсетевого протокола (TCP/IP, Transmission Control Protocol/Internet Protocol); карты беспроводного интерфейса Wi-Fi; карты беспроводного интерфейса 3G, 4G или 5G или другие проводные или беспроводные линии связи. Программа 108 (фиг.1) и программа 116 отключения фильтра границ (фиг. 1) на серверном компьютере 114 (фиг. 1) могут быть загружены в компьютер 102 (фиг. 1) и серверный компьютер 114 с внешнего компьютер через сеть (например, Интернет, локальную сеть или другую глобальную сеть) и соответствующие сетевые адаптеры или интерфейсы 836. С сетевых адаптеров или интерфейсов 836 программа 108 и программа 116 отключения фильтра границ на серверном компьютере 114 загружаются в соответствующий дисковод 830 для жестких дисков. Сеть может содержать медные провода, оптические волокна, линии беспроводной передачи, маршрутизаторы, брандмауэры, коммутаторы, шлюзовые компьютеры и/или пограничные серверы.
[0042] Каждый из комплектов внешних компонентов 900А,В может содержать компьютерный монитор 920, клавиатуру 930 и компьютерную мышь 934. Внешние компоненты 900А,В также могут содержать сенсорные экраны, виртуальные клавиатуры, сенсорные панели, указывающие устройства и другие устройства интерфейса пользователя. Каждый из комплектов внутренних компонентов 800А,В содержит также драйверы 840 устройств для взаимодействия с компьютерным монитором 920, клавиатурой 930 и компьютерной мышью 934. Драйверы 840 устройств, привод для чтения/записи или интерфейс 832 и сетевой адаптер или интерфейс 836 содержат аппаратное и программное обеспечение (хранящееся в запоминающем устройстве 830 и/или ROM 824).
[0043] Понятно, что, хотя это раскрытие включает в себя подробное описание облачных вычислений, реализация изложенных здесь идей не ограничивается средой облачных вычислений. Напротив, некоторые формы осуществления изобретения могут быть реализованы в сочетании с любым другим типом вычислительной среды, известным сейчас или разработанным позже.
[0044] Облачные вычисления - это модель предоставления услуг для обеспечения удобного сетевого доступа по требованию к общему пулу конфигурируемых вычислительных ресурсов (например, сетей, пропускной способность сети, серверам, обработке данных, памяти, хранилищам данных, приложениям, виртуальным машинам и услугам), которые могут быть быстро предоставлены и освобождены с минимальными усилиями по управлению или взаимодействию с поставщиком услуги. Эта облачная модель может включать как минимум пять характеристик, как минимум три модели обслуживания и как минимум четыре модели развертывания.
[0045] Характеристики следующие:
[0046] Самообслуживание по требованию: потребитель облака может в одностороннем порядке обеспечивать вычислительные возможности, такие как время сервера и сетевое хранилище, по мере необходимости автоматически, не требуя взаимодействия человека с поставщиком услуг.
[0047] Широкий сетевой доступ: возможности доступны по сети и доступны при помощи стандартных механизмов, которые способствуют использованию через гетерогенные платформы тонких или толстых клиентов (например, мобильных телефонов, ноутбуков и персональных цифровых помощников).
[0048] Объединение ресурсов в пулы: вычислительные ресурсы провайдера объединяются в пулы для обслуживания многих потребителей с использованием многоарендной модели, при этом различные физические и виртуальные ресурсы динамически назначаются и переназначаются в соответствии с запросами. Существует ощущение независимости от местоположения в том смысле, что у потребителя обычно нет управления или знания о точном местоположении предоставляемых ресурсов, но он может иметь возможность указать их местонахождение на более высоком уровне абстракции (например, страна, штат или центр обработки данных).
[0049] Мгновенная эластичность: возможности могут быть быстро и эластично предоставлены, в некоторых случаях автоматически, для быстрого увеличения и быстро освобождены для быстрого уменьшения. Для потребителя возможности, доступные для предоставления, часто видятся как неограниченные и могут быть присвоены в любом количестве в любое время.
[0050] Измеряемый сервис: облачные системы автоматически управляют и оптимизируют использование ресурсов, эффективно используя средства измерения, реализованные на некотором уровне абстракции, соответствующем типу сервиса (например, хранения, обработки, пропускной способности и активных учетных записей пользователей). Использование ресурсов можно отслеживать, контролировать и сообщать, что обеспечивает прозрачность как для поставщика, так и для потребителя, использующего сервис.
[0051] Модели обслуживания следующие:
[0052] Программное обеспечение как услуга (SaaS): возможность, предоставляемая потребителю, заключается в использовании приложений поставщика, работающих в облачной инфраструктуре. Приложения доступны с различных клиентских устройств через интерфейс тонкого клиента, такой как веб-браузер (например, электронная почта на базе Интернета). Потребитель не управляет и не контролирует базовую инфраструктуру облака, включающую сеть, серверы, операционные системы, хранилище или даже возможности отдельных приложений, за возможным исключением ограниченных параметров конфигурации приложения для конкретного пользователя.
[0053] Платформа как услуга (PaaS): возможность, предоставляемая потребителю, заключается в развертывании в облачной инфраструктуре, созданных потребителем или приобретенных приложений, созданных с использованием языки программирования и инструментов, поддерживаемых провайдером. Потребитель не управляет и не контролирует базовую инфраструктуру облака, включающую сети, серверы, операционные системы или хранилище, но имеет контроль над развернутыми приложениями и, возможно, конфигурациями среды размещения приложений.
[0054] Инфраструктура как услуга (IaaS): возможность, предоставляемая потребителю, заключается в предоставлении обработки, хранения, сетей и других основных вычислительных ресурсов, при этом потребитель может развертывать и запускать произвольное программное обеспечение, которое может включать в себя операционные системы и приложения. Потребитель не управляет базовой инфраструктурой облака и не контролирует ее, но имеет контроль над операционными системами, хранилищем, развернутыми приложениями и, возможно, ограниченный контроль над отдельными сетевыми компонентами (например, межсетевыми экранами хоста).
[0055] Модели развертывания следующие:
[0056] Частное облако: облачная инфраструктура используется исключительно для организации. Оно может управляться организацией или третьей стороной и может существовать как в помещениях заказчика, так и за их пределами.
[0057] Общественное облако: облачная инфраструктура совместно используется несколькими организациями и поддерживает конкретное сообщество, которое имеет общие задачи (например, миссии, требований безопасности, политики и соответствия различным требованиям). Оно может управляться организациями или третьей стороной и может существовать как в помещениях организаций, так и за их пределами.
[0058] Общедоступное (публичное) облако: облачная инфраструктура сделана доступной для широкой публики или большой отраслевой группы и принадлежит организации, продающей облачные услуги.
[0059] Гибридное облако: облачная инфраструктура представляет собой композицию из двух или более облаков (частных, общественных или общедоступных), которые остаются уникальными объектами, но связаны вместе стандартизированной или запатентованная технологией, которая обеспечивает переносимость данных и приложений (например, временное использование ресурсов публичного облака (cloud bursting) для балансировки нагрузки между облаками).
[0060] Среда облачных вычислений ориентирована на услуги с акцентом на отсутствие сохранения состояния, низкую связь, модульность и семантическую совместимость. В основе облачных вычислений лежит инфраструктура, состоящая из сети взаимосвязанных узлов.
[0061] Обратимся к фиг. 5, на которой изображена иллюстративная среда 500 облачных вычислений. Как показано, среда 500 облачных вычислений содержит один или более узлов 10 облачных вычислений, с помощью которых локальные вычислительные устройства используются потребителями облачных вычислений, такими как, например, персональный цифровой помощник (PDA, Personal Digital Assistant) или сотовый телефон 54А, настольный компьютер 54В, портативный компьютер 54С, … автомобильная компьютерная система 54N могут осуществлять связь. Узлы 10 облачных вычислений могут связываться друг с другом. Они могут быть сгруппированы (не показано) физически или виртуально в одной или более сетях, таких как частные, общественные, общедоступные или гибридные облака, как описано выше, или их комбинацию. Это позволяет среде 500 облачных вычислений предлагать инфраструктуру, платформы и/или программное обеспечение в качестве услуг, для которых потребителю облачных вычислений не нужно поддерживать ресурсы на локальном вычислительном устройстве. Понятно, что типы вычислительных устройств 54A-N, показанные на фиг. 5, предназначены только для иллюстрации, и что узлы 10 облачных вычислений и среда 500 облачных вычислений могут связываться с любым типом компьютеризированного устройства по любому типу сети и/или сетевого адресуемого соединения (например, с использованием веб-браузера).
[0062] Обратимся к фиг. 6, на которой показан набор функциональных уровней 600 абстракции, предоставляемых средой 500 облачных вычислений (фиг. 5). Заранее следует понимать, что компоненты, уровни и функции, показанные на фиг. 6, предназначены только для иллюстрации, и формы осуществления изобретения этим не ограничиваются. Как показано, предусмотрены следующие уровни и соответствующие функции:
[0063] Аппаратный и программный уровень 60 включает в себя аппаратные и программные компоненты. Примеры аппаратных компонентов включают: мэйнфреймы 61; серверы 62 на основе архитектуры компьютера с сокращенным набором команд (RISC, Reduced Instruction Set Computer); серверы 63; сверхкомпактные (лезвийные) серверы 64; запоминающие устройства65; и сети и сетевые компоненты 66. В некоторых формах осуществления изобретения программные компоненты включают в себя программное обеспечение 67 сервера сетевых приложений и программное обеспечение 68 базы данных.
[0064] Уровень 70 виртуализации обеспечивает уровень абстракции, из которого могут быть предоставлены следующие примеры виртуальных объектов: виртуальные серверы 71; виртуальная память 72; виртуальные сети 73, включая виртуальные частные сети; виртуальные приложения и операционные системы 74; и виртуальные клиенты 75.
[0065] В одном примере уровень 80 управления может предоставлять функции, описанные ниже. Предоставление 81 ресурсов обеспечивает динамическую закупку вычислительных ресурсов и других ресурсов, которые используются для выполнения задач в среде облачных вычислений. Измерение и ценообразование 82 обеспечивает отслеживание затрат по мере использования ресурсов в среде облачных вычислений, а также выставление счетов или выставление счетов за потребление этих ресурсов. В одном примере эти ресурсы могут содержать лицензии на прикладное программное обеспечение. Безопасность обеспечивает проверку личности потребителей и задач облака, а также защиту данных и других ресурсов. Пользовательский портал 83 обеспечивает доступ к среде облачных вычислений для потребителей и системных администраторов. Управление 84 уровнем обслуживания обеспечивает распределение ресурсов облачных вычислений и управление таким образом, чтобы обеспечить соблюдение требуемых уровней обслуживания. Планирование и выполнение 85 соглашения об уровне обслуживания (SLA, Service Level Agreement) предусматривает предварительную организацию и закупку ресурсов облачных вычислений, в отношении которых ожидается появление будущих требований в соответствии с SLA.
[0066] Уровень 90 рабочих нагрузок предоставляет примеры функциональных возможностей, для которых может использоваться среда облачных вычислений. Примеры рабочих нагрузок и функций, которые могут быть предоставлены на этом уровне, включают: отображение и навигацию 91; разработку программного обеспечения и управление 92 жизненным циклом; предоставление 93 обучения в виртуальном классе; аналитическую обработку 94 данных; обработку 95 транзакций; и отключение 96 фильтра границ. Отключение 96 фильтра границ может кодировать видеопоследовательность с отключением фильтра виртуальных границ.
[0067] Некоторые формы осуществления изобретения могут относиться к системе, способу и/или машиночитаемому носителю на любом возможном уровне технических деталей интеграции. Машиночитаемый носитель может включать в себя машиночитаемый носитель (или носители) данных, содержащий машиночитаемые команды программы, чтобы заставить процессор выполнять операции.
[0068] Машиночитаемый носитель данных может быть материальным устройством, которое может запоминать и хранить команды для использования устройством выполнения команд. Машиночитаемый носитель данных может быть, например, но, не ограничиваясь этим, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любой подходящей комбинацией вышеперечисленного. Неисчерпывающий список более конкретных примеров машиночитаемого носителя данных включает следующее: портативную компьютерную дискету, жесткий диск, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), стираемую программируемую постоянную память (EPROM, Erasable Programmable Read-Only Memory или флэш-память), статическую память с произвольным доступом (SRAM, Static Random Access Memory), портативное постоянное запоминающее устройство на компакт-диске (CD-ROM, Compact Disc Readonly Memory), универсальный цифровой диск (DVD), карту памяти, дискету, устройство с механическим кодированием, такое как перфокарты или выпуклые структуры в канавке с записанными на них командами, и любую подходящую комбинацию вышеперечисленного. Машиночитаемый носитель данных, используемый в данном документе, не следует рассматривать как кратковременные сигналы сами по себе, такие как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся через волновод или другую среду передачи (например, световые импульсы, проходящие через волоконно-оптический кабель) или электрические сигналы, передаваемые по проводам.
[0069] Машиночитаемые команды программы, описанные здесь, могут быть загружены в соответствующие вычислительные/обрабатывающие устройства с машиночитаемого носителя данных или на внешний компьютер или внешнее запоминающее устройство через сеть, например Интернет, локальную сеть, глобальную вычислительная сеть и/или беспроводную сеть. Сеть может содержать медные кабели передачи, волоконно-оптические линии передачи, беспроводные линии передачи, маршрутизаторы, брандмауэры, коммутаторы, шлюзовые компьютеры и/или пограничные серверы. Карта сетевого адаптера или сетевой интерфейс в каждом вычислительном/обрабатывающем устройстве принимает машиночитаемые команды программы из сети и пересылает машиночитаемые команды программы для хранения на машиночитаемом носителе данных в соответствующем вычислительном/ обрабатывающем устройстве.
[0070] Машиночитаемый программный код/команды для выполнения операций могут быть командами ассемблера, командами архитектуры системы команд (ISA, Instruction-Set-Architecture), машинными командами, машинно-зависимыми командами, микрокодом, командами встроенного программного обеспечения, данными установки состояния, данными конфигурации для интегральных схем, либо исходным кодом, либо объектным кодом, написанным на любой комбинации одного или более языков программирования, включая объектно-ориентированный язык программирования, такой как Smalltalk, С++ и т.п., и процедурные языки программирования, такие как язык "С" программирования или аналогичные языки программирования. Машиночитаемые команды программы могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, как автономный пакет программного обеспечения; частично на компьютере пользователя и частично на удаленном компьютере или полностью на удаленном компьютере или сервере. В последнем сценарии удаленный компьютер может быть подключен к компьютеру пользователя через сеть любого типа, включая локальную сеть (LAN) или глобальную сеть (WAN), или соединение может быть выполнено с внешним компьютером (например, через Интернет с помощью Интернет-провайдера). В некоторых формах осуществления изобретения электронные схемы, включая, например, программируемые логические схемы, программируемые логические схемы (FPGA) или программируемые логические матрицы (PLA, Programmable Logic Arrays), могут выполнять машиночитаемые команды программы, используя информацию о состоянии машиночитаемых команд программы для персонализации электронных схем, чтобы выполнять аспекты или операции.
[0071] Эти машиночитаемые команды программы могут быть предоставлены процессору универсального компьютера, специализированного компьютера или другого программируемого устройства обработки данных для создания машины, так что команды, которые выполняются с помощью процессора компьютера или другого программируемого устройства обработки данных, создают средства для реализации функций/действий, указанных на блок-схеме и/или в блоке или блоках функциональной схемы. Эти машиночитаемые команды программы также могут храниться на машиночитаемом носителе данных, который может указывать компьютеру, программируемому устройству обработки данных и/или другим устройствам функционировать определенным образом.
[0072] Машиночитаемые команды программы также могут быть загружены в компьютер, другое программируемое устройство обработки данных или другое устройство, чтобы вызвать выполнение ряда рабочих этапов на компьютере, другом программируемом устройстве или другом устройстве для создания процесса, реализуемого компьютером, так что команды, которые выполняются на компьютере, другом программируемом устройстве или другом устройстве, реализуют функции/действия, указанные в блоке или блоках блок-схемы и/или функциональной схемы.
[0073] Блок-схема и функциональные схемы на чертежах иллюстрируют архитектуру, функциональные возможности и работу возможных реализаций систем, способов и машиночитаемых носителей согласно различным формам осуществления изобретения. В этом отношении каждый блок на блок-схеме или функциональной схеме может представлять модуль, сегмент или часть команд, которые содержат одну или более исполняемых инструкций для реализации указанной логической функции(-й). Способ, компьютерная система и машиночитаемый носитель могут включать в себя дополнительные блоки, меньшее число блоков, разные блоки или блоки, расположенные иначе, чем те, которые изображены на фигурах. В некоторых альтернативных реализациях функции, указанные в блоках, могут выполняться не в порядке, указанном на фигурах. Например, два блока, показанные подряд, на самом деле могут выполняться одновременно или по существу одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от используемой функциональности. Также отметим, что каждый блок блок-схем и/или иллюстрации блок-схемы, а также комбинации блоков в блок-схемах и/или иллюстрации блок-схемы могут быть реализованы аппаратными системами специального назначения, которые выполняют указанные функции или действия, или выполняют комбинации команд для специализированного оборудования и компьютеров.
[0074] Очевидно, что описанные здесь системы и/или способы могут быть реализованы в различных формах аппаратного обеспечения, встроенных программ или комбинации аппаратного и программного обеспечения. Фактическое специализированное оборудование или программный код управления, используемые для реализации этих систем и/или способов, не ограничивают реализации. Таким образом, работа и поведение систем и/или способов были описаны здесь без ссылки на конкретный программный код - при этом понятно, что программное обеспечение и аппаратные средства могут быть разработаны для реализации систем и/или способов, основанных на описании в данном документе.
[0075] Ни один элемент, действие или команда, используемые здесь, не должны рассматриваться как критические или существенные, если они явно не описаны как таковые. Кроме того, используемые здесь формы единственного числа предназначены для включения одного или более элементов и могут использоваться взаимозаменяемо с "одним или более". Кроме того, используемый здесь термин "набор" предназначен для включения одного или более элементов (например, связанных элементов, несвязанных элементов, комбинации связанных и несвязанных элементов и т.д.), и может использоваться взаимозаменяемо с "одним или более". Если имеется только один элемент, используется термин "один" или аналогичное выражение. Кроме того, используемые в данном документе термины "имеет" и т.п. являются неограничивающими терминами. Кроме того, фраза "на основе" обозначает "основанный по меньшей мере частично на", если явно не указано иное.
[0076] Описания различных аспектов и форм осуществления изобретения были представлены в целях иллюстрации, но не предназначены для того, чтобы быть исчерпывающими или ограничиваться раскрытыми формами осуществления. Несмотря на то, что комбинации признаков изложены в формуле изобретения и/или раскрыты в описании, эти комбинации не предназначены для ограничения возможных реализаций. Фактически, многие из этих признаков могут быть объединены такими путями, которые конкретно не указаны в формуле изобретения и/или не раскрыты в описании. Хотя каждый зависимый пункт, приведенный ниже, может непосредственно зависеть только от одного пункта, раскрытие возможных реализаций включает каждый зависимый пункт в комбинации с каждым другим пунктом в наборе пунктов. Специалистам в данной области техники будут очевидны многие модификации и вариации, не выходящие за рамки описанных форм осуществления изобретения. Используемая здесь терминология была выбрана для лучшего объяснения принципов осуществления изобретения, его практического применения или технического усовершенствования по сравнению с технологиями, имеющимися на рынке, или для того, чтобы дать возможность другим специалистам в данной области техники понять раскрытые здесь формы осуществления изобретения.