IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7451556ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述
<>
  • 特許-ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述 図1
  • 特許-ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述 図2
  • 特許-ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述 図3
  • 特許-ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述 図4
  • 特許-ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-08
(45)【発行日】2024-03-18
(54)【発明の名称】ネットワークに基づいたメディア処理(NBMP)におけるメディア処理機能のための構成パラメータのグラフ表現及び記述
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240311BHJP
【FI】
G06F9/50 150B
【請求項の数】 20
(21)【出願番号】P 2021558679
(86)(22)【出願日】2021-01-04
(65)【公表番号】
(43)【公表日】2022-05-26
(86)【国際出願番号】 US2021012085
(87)【国際公開番号】W WO2021141856
(87)【国際公開日】2021-07-15
【審査請求日】2021-09-29
(31)【優先権主張番号】62/958,997
(32)【優先日】2020-01-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/095,339
(32)【優先日】2020-11-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2016/0330497(US,A1)
【文献】米国特許出願公開第2010/0134501(US,A1)
【文献】米国特許第10310896(US,B1)
【文献】米国特許出願公開第2013/0185715(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
ネットワークに基づいたメディア処理(NBMP)の方法であって、
NBMPシステムのワークフローマネージャで、機能リポジトリからメディア処理機能の機能記述を受信するステップであって、前記機能記述は、前記メディア処理機能のパラメータの構成情報を提供する構成記述子を含み、前記パラメータは、一連のルールに従って構成されたパラメータ表現グラフによって表される論理関係を有し、前記ルールは、
(a)前記パラメータ表現グラフが、ノードと、それぞれが2つのノードを結合し、2つの各ノード間の論理関係を表すエッジとを含み、前記ノードは、パラメータノードと、値ノードとを含むこと、
(b)任意の2つのノードが、多くとも1つのエッジで互いに結合されること、
(c)パラメータが、前記パラメータ表現グラフではパラメータノードによって表されること、
(d) 第2のパラメータを設定するための条件として、第1のパラメータの第1の値の存在が必要とされる場合、第1のパラメータの第1の値は、前記パラメータ表現グラフでは値ノードによって表されること、及び
前記第2のパラメータを設定するための前記条件として、前記第1のパラメータの第1の値の不存在が必要とされる場合、
前記第1のパラメータの第1の値は、前記パラメータ表現グラフでは前記値ノードによって表され、かつ
前記第1のパラメータの第1の値の前記値ノードから前記第2のパラメータのパラメータノードへのエッジは、前記第1のパラメータが前記第1のパラメータの第1の値に設定されている場合に前記第2のパラメータが許可されないことを示すこと、
(e)パラメータノードが、他のどのノードからも結合されていないか、又は1つ以上の値ノードから結合されること、並びに
(f)1つのエッジが、任意の値ノードに結合し、且つ1つのパラメータノードから結合されること
を含む、ステップと、
ワークフローの一部であるメディア処理タスクとして前記メディア処理機能をインスタンス化するステップと、
前記構成記述子内の前記パラメータの前記構成情報に基づいて、前記メディア処理タスクを構成するステップと
を含む方法。
【請求項2】
前記構成記述子に対応する前記パラメータ表現グラフが前記ルールに従い、前記ルールが、
(g)前記パラメータ表現グラフの前記エッジが3つの型に分類されることであって、前記3つの型が、
(i)P2V型:パラメータノードから値ノードへの第1の結合であって、前記第1の結合に結合された前記パラメータノードの前記パラメータが、前記第1の結合に結合された前記値ノードによって表されるサブセット又はある範囲の許容値をとることを示すもの、
(ii)V2P型:値ノードからパラメータノードへの第2の結合であって、前記第2の結合に結合された前記パラメータノードによって表される前記パラメータが、前記第2の結合に結合された前記値ノードによって表される値をとる親パラメータに依存することを示すもの、及び
(iii)V0P型:値ノードからパラメータノードへの第3の結合であって、親パラメータが前記第3の結合に結合された前記値ノードによって表される値に設定されている場合、前記第3の結合に結合された前記パラメータノードによって表される前記パラメータが、許容されないことを示すもの
を含む、こと、及び
(h)パラメータノードに結合されたエッジの型が前記V2P型又は前記V0P型であること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記パラメータの各々が、前記構成記述子で示されたデータ型を有する、請求項2に記載の方法。
【請求項4】
前記パラメータの各々が値を有し、前記値は一組の値又はある範囲の値である、請求項2に記載の方法。
【請求項5】
前記パラメータ表現グラフにおける、前記パラメータノードのうちの1つのパラメータノードのエッジが、前記構成記述子内の2つの別のリストによって示され、前記2つの別のリストがそれぞれ前記V2P型及び前記V0P型に対応する、請求項2に記載の方法。
【請求項6】
前記構成記述子内の前記2つの別のリストによって示された各エッジに結合された前記値ノードの識別子(ID)が、前記パラメータノードのうちの1つのパラメータノードの各エッジを示すように、前記構成記述子内の前記2つの別のリストに含まれている、請求項5に記載の方法。
【請求項7】
前記パラメータ表現グラフにおける、前記パラメータノードのうちの1つのパラメータノード及び前記値ノードのうちの1つの値ノードが、前記パラメータノードのうちの前記1つのパラメータノード及び前記値ノードのうちの前記1つの値ノードに結合されたエッジを示すために、それぞれ親ノードIDのリストを使用する、請求項2に記載の方法。
【請求項8】
前記パラメータ表現グラフにおける、前記値ノードのうちの1つの値ノードの一組の値が、前記構成記述子内で、スタート値、エンド値、及びインクリメント値を使用して定義される、請求項2に記載の方法。
【請求項9】
ネットワークに基づいたメディア処理(NBMP)の装置であって、
NBMPシステムのワークフローマネージャで、機能リポジトリからメディア処理機能の機能記述を受信することであって、前記機能記述は、前記メディア処理機能のパラメータの構成情報を提供する構成記述子を含み、前記パラメータは、一連のルールに従って構成されたパラメータ表現グラフによって表される論理関係を有し、前記ルールは、
(a)前記パラメータ表現グラフが、ノードと、それぞれが2つのノードを結合し、2つの各ノード間の論理関係を表すエッジとを含み、前記ノードは、パラメータノードと、値ノードとを含むこと、
(b)任意の2つのノードが、多くとも1つのエッジで互いに結合されること、
(c)パラメータが、前記パラメータ表現グラフではパラメータノードによって表されること、
(d) 第2のパラメータを設定するための条件として、第1のパラメータの第1の値の存在が必要とされる場合、第1のパラメータの第1の値は、前記パラメータ表現グラフでは値ノードによって表されること、及び
前記第2のパラメータを設定するための前記条件として、前記第1のパラメータの第1の値の不存在が必要とされる場合、
前記第1のパラメータの第1の値は、前記パラメータ表現グラフでは前記値ノードによって表され、かつ
前記第1のパラメータの第1の値の前記値ノードから前記第2のパラメータのパラメータノードへのエッジは、前記第1のパラメータが前記第1のパラメータの第1の値に設定されている場合に前記第2のパラメータが許可されないことを示すこと、
(e)パラメータノードが、他のどのノードからも結合されていないか、又は1つ以上の値ノードから結合されること、並びに
(f)1つのエッジが、任意の値ノードに結合し、且つ1つのパラメータノードから結合されること、
を含む、ことと、
ワークフローの一部であるメディア処理タスクとして前記メディア処理機能をインスタンス化することと、
前記構成記述子内の前記パラメータの前記構成情報に基づいて、前記メディア処理タスクを構成することと
を行うように構成された回路を備える、装置。
【請求項10】
前記構成記述子に対応する前記パラメータ表現グラフが前記ルールに従い、前記ルールが、
(g)前記パラメータ表現グラフの前記エッジが3つの型に分類されることであって、前記3つの型が、
(i)P2V型:パラメータノードから値ノードへの第1の結合であって、前記第1の結合に結合された前記パラメータノードの前記パラメータが、前記第1の結合に結合された前記値ノードによって表されるサブセット又はある範囲の許容値をとることを示すもの、
(ii)V2P型:値ノードからパラメータノードへの第2の結合であって、前記第2の結合に結合された前記パラメータノードによって表される前記パラメータが、前記第2の結合に結合された前記値ノードによって表される値をとる親パラメータに依存することを示すもの、及び
(iii)V0P型:値ノードからパラメータノードへの第3の結合であって、親パラメータが前記第3の結合に結合された前記値ノードによって表される値に設定されている場合、前記第3の結合に結合された前記パラメータノードによって表される前記パラメータが、許容されないことを示すもの
を含む、こと、及び
(h)パラメータノードに結合されたエッジの型が前記V2P型又は前記V0P型であること
をさらに含む、請求項9に記載の装置。
【請求項11】
前記パラメータの各々が、前記構成記述子で示されたデータ型を有する、請求項10に記載の装置。
【請求項12】
前記パラメータの各々が値を有し、前記値は一組の値又はある範囲の値である、請求項10に記載の装置。
【請求項13】
前記パラメータ表現グラフにおける、前記パラメータノードのうちの1つのパラメータノードのエッジが、前記構成記述子内の2つの別のリストによって示され、前記2つの別のリストがそれぞれ前記V2P型及び前記V0P型に対応する、請求項10に記載の装置。
【請求項14】
前記構成記述子内の前記2つの別のリストによって示された各エッジに結合された前記値ノードの識別子(ID)が、前記パラメータノードのうちの1つのパラメータノードの各エッジを示すように、前記構成記述子内の前記2つの別のリストに含まれている、請求項13に記載の装置。
【請求項15】
前記パラメータ表現グラフにおける、前記パラメータノードのうちの1つのパラメータノード及び前記値ノードのうちの1つの値ノードが、前記パラメータノードのうちの前記1つのパラメータノード及び前記値ノードのうちの前記1つの値ノードに結合されたエッジを示すために、それぞれ親ノードIDのリストを使用する、請求項10に記載の装置。
【請求項16】
前記パラメータ表現グラフにおける、前記値ノードのうちの1つの値ノードの一組の値が、前記構成記述子内で、スタート値、エンド値、及びインクリメント値を使用して定義される、請求項10に記載の装置。
【請求項17】
命令を記憶した非一時的なコンピュータ可読媒体であって、
前記命令は、プロセッサによって実行されると、前記プロセッサに、ネットワークに基づいたメディア処理(NBMP)の方法を実行させ、前記方法は、
NBMPシステムのワークフローマネージャで、機能リポジトリからメディア処理機能の機能記述を受信するステップであって、前記機能記述は、前記メディア処理機能のパラメータの構成情報を提供する構成記述子を含み、前記パラメータは、一連のルールに従って構成されたパラメータ表現グラフによって表される論理関係を有し、前記ルールは、
(a)前記パラメータ表現グラフが、ノードと、それぞれが2つのノードを結合し、2つの各ノード間の論理関係を表すエッジとを含み、前記ノードは、パラメータノードと、値ノードとを含むこと、
(b)任意の2つのノードが、多くとも1つのエッジで互いに結合されること、
(c)パラメータが、前記パラメータ表現グラフではパラメータノードによって表されること、
(d) 第2のパラメータを設定するための条件として、第1のパラメータの第1の値の存在が必要とされる場合、前記第1のパラメータの第1の値は、前記パラメータ表現グラフでは値ノードによって表されること、及び
前記第2のパラメータを設定するための前記条件として、前記第1のパラメータの第1の値の不存在が必要とされる場合、
前記第1のパラメータの第1の値は、前記パラメータ表現グラフでは前記値ノードによって表されること、かつ
前記第1のパラメータの第1の値の前記値ノードから前記第2のパラメータのパラメータノードへのエッジは、前記第1のパラメータが前記第1のパラメータの第1の値に設定されている場合に前記第2のパラメータが許可されないことを示すこと、
(e)パラメータノードが、他のどのノードからも結合されていないか、又は1つ以上の値ノードから結合されること、並びに
(f)1つのエッジが、任意の値ノードに結合し、且つ1つのパラメータノードから結合されること
を含む、ステップと、
ワークフローの一部であるメディア処理タスクとして前記メディア処理機能をインスタンス化するステップと、
前記構成記述子内の前記パラメータの前記構成情報に基づいて、前記メディア処理タスクを構成するステップと
を含む、非一時的なコンピュータ可読媒体。
【請求項18】
前記構成記述子に対応する前記パラメータ表現グラフが前記ルールに従い、前記ルールが、
(g)前記パラメータ表現グラフの前記エッジが3つの型に分類されることであって、前記3つの型が、
(i)P2V型:パラメータノードから値ノードへの第1の結合であって、前記第1の結合に結合された前記パラメータノードの前記パラメータが、前記第1の結合に結合された前記値ノードによって表されるサブセット又はある範囲の許容値をとることを示すもの、
(ii)V2P型:値ノードからパラメータノードへの第2の結合であって、前記第2の結合に結合された前記パラメータノードによって表される前記パラメータが、前記第2の結合に結合された前記値ノードによって表される値をとる親パラメータに依存することを示すもの、及び
(iii)V0P型:値ノードからパラメータノードへの第3の結合であって、親パラメータが前記第3の結合に結合された前記値ノードによって表される値に設定されている場合、前記第3の結合に結合された前記パラメータノードによって表される前記パラメータが、許容されないことを示すもの
を含む、こと、及び
(h)パラメータノードに結合されたエッジの型が前記V2P型又は前記V0P型であること
をさらに含む、請求項17に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記パラメータの各々が、前記構成記述子で示されたデータ型を有する、請求項18に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記パラメータの各々が値を有し、前記値は一組の値又はある範囲の値である、請求項18に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本開示は2020年11月11日に出願された米国特許出願第17/095,339号、「GRAPH REPRESENTATION AND DESCRIPTION OF CONFIGURATION PARAMETERS FOR MEDIA PROCESSING FUNCTION IN NETWORK-BASED MEDIA PROCESSING(NBMP)」に対する優先権の利益を主張し、この特許出願は、2020年1月9日に出願された米国仮特許出願第62/958,997号、「EFFICIENT GENERIC PARAMETER GRAPH FOR FUNCTIONS」の優先権を主張する。先行出願の開示は、参照によってその全体が本願に組み込まれる。
【0002】
本開示は、メディア処理機能の構成パラメータのグラフ表現及び記述に関する。いくつかの実施形態は、ネットワークに基づいたメディア処理(NBMP)に関する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の背景を一般的に示すためのものである。本発明に記載されている発明者による研究については、研究がこの背景技術の項で説明されている範囲において、出願時には先行技術としてみなされない可能性のある本明細書の態様と同様に、明示的にも黙示的にも本開示に対する先行技術とは認められない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
マルチメディアのサービスプロバイダは、顧客に届けるために、自社のサービスを複数のクラウド及びネットワークサービスプロバイダに適応させるという課題に直面している。このようなクラウド及びネットワークサービスプロバイダは、顧客に計算リソースを割り当てるために、自社のアプリケーションプログラムインターフェース(API)を定義することが多い。あらゆるクラウドプラットフォームの上層で、またあらゆるIPネットワーク上でメディア処理を実行するために、断片化に対処し統一した方法を提供するための、ネットワークに基づいたメディア処理(NBMP)の規格が開発されている。NBMPは、既成のメディア処理機能の実施に使用でき、メディア処理ワークフローを作成するためにこれらを組み立てることが可能なワークフローマネージャを定義する。
【課題を解決するための手段】
【0005】
本開示の態様は、ネットワークに基づいたメディア処理(NBMP)の方法を提供する。本方法は、NBMPシステムのワークフローマネージャで、メディア処理機能の機能記述を機能リポジトリから受信するステップを含むことができる。機能記述は、メディア処理機能のパラメータの構成情報を提供する構成記述子を含むことができる。パラメータは、一連のルールに従って構成されたパラメータ表現グラフによって表される論理関係を有することができる。ルールは、
(a)パラメータ表現グラフが、ノードと、それぞれが2つのノードを結合し、2つの各ノード間の論理関係を表すエッジとを含み、ノードは、パラメータノードと、値ノードとを含むこと、
(b)任意の2つのノードが、多くとも1つのエッジで互いに結合されること、
(c)パラメータが、パラメータ表現グラフではパラメータノードによって表されること、
(d)別のパラメータを設定する条件としてパラメータの値の存在又は不存在が必要とされる場合、パラメータの値は、パラメータ表現グラフでは値ノードによって表されること、
(e)パラメータノードが、他のどのノードからも結合されていないか、又は1つ以上の値ノードから結合されること、及び
(f)1つのエッジが、任意の値ノードに結合し、且つ1つのパラメータノードから結合されること
を含むことができる。
メディア処理機能は、ワークフローの一部であるメディア処理タスクとしてインスタンス化することができる。構成記述子内のパラメータの構成情報に基づいて、メディア処理タスクを構成することができる。
【0006】
実施形態では、構成記述子に対応するパラメータ表現グラフはルールに従い、ルールは、
(g)パラメータ表現グラフのエッジが3つの型に分類されることであって、3つの型が、
(i)P2V型:パラメータノードから値ノードへの第1の結合であって、第1の結合に結合されたパラメータノードのパラメータが、第1の結合に結合された値ノードによって表されるサブセット又はある範囲の許容値をとることを示すもの、
(ii)V2P型:値ノードからパラメータノードへの第2の結合であって、第2の結合に結合されたパラメータノードによって表されるパラメータが、第2の結合に結合された値ノードによって表される値をとる親パラメータに依存していることを示すもの、及び
(iii)V0P型:値ノードからパラメータノードへの第3の結合であって、親パラメータが第3の結合に結合された値ノードによって表される値に設定されている場合、第3の結合に結合されたパラメータノードによって表されるパラメータが、許容されないことを示すもの
を含む、こと、及び
(h)パラメータノードに結合されたエッジの型はV2P又はV0Pであること
をさらに含む。
【0007】
実施形態では、各パラメータは、構成記述子で示されたデータ型を有する。実施形態では、各パラメータは値を有し、値は一組の値又はある範囲の値である。実施形態では、パラメータ表現グラフにおける、パラメータノードのうちの1つのパラメータノードのエッジは、構成記述子内の2つの別のリストによって示されている。2つの別のリストは、それぞれV2P型及びV0P型に対応する。
【0008】
実施形態では、構成記述子内の2つの別のリストによって示された各エッジに結合された値ノードの識別子(ID)は、パラメータノードのうちの1つのパラメータノードの各エッジを示すように、構成記述子内の2つの別のリストに含まれている。実施形態では、パラメータ表現グラフにおける、パラメータノードのうちの1つのパラメータノード及び値ノードのうちの1つの値ノードが、パラメータノードのうちの1つのパラメータノード及び値ノードのうちの1つの値ノードに結合されたエッジを示すために、それぞれ親ノードIDのリストを使用する。実施形態では、パラメータ表現グラフにおける、値ノードのうちの1つの値ノードの一組の値が、構成記述子内で、スタート値、エンド値、及びインクリメント値を使用して定義される。
【0009】
本開示の態様は、NBMPの装置を提供する。本装置は、NBMPシステムのワークフローマネージャで、メディア処理機能の機能記述を機能リポジトリから受信するように構成された回路を含むことができる。機能記述は、メディア処理機能のパラメータの構成情報を提供する構成記述子を含むことができる。パラメータは、一連のルールに従って構成されたパラメータ表現グラフによって表される論理関係を有することができる。ルールは、
(a)パラメータ表現グラフが、ノードと、それぞれが2つのノードを結合し、2つの各ノード間の論理関係を表すエッジとを含み、ノードは、パラメータノードと、値ノードとを含むこと、
(b)任意の2つのノードが、多くとも1つのエッジで互いに結合されること、
(c)パラメータが、パラメータ表現グラフではパラメータノードによって表されること、
(d)別のパラメータを設定する条件としてパラメータの値の存在又は不存在が必要とされる場合、パラメータの値は、パラメータ表現グラフでは値ノードによって表されること、
(e)パラメータノードが、他のどのノードからも結合されていないか、又は1つ以上の値ノードから結合されること、及び
(f)1つのエッジが、任意の値ノードに結合し、且つ1つのパラメータノードから結合されること
を含むことができる。
メディア処理機能は、ワークフローの一部であるメディア処理タスクとしてインスタンス化することができる。構成記述子内のパラメータの構成情報に基づいて、メディア処理タスクを構成することができる。
【0010】
本開示の態様は、プロセッサによって実行されると、プロセッサにNBMPの方法を実行させる命令を記憶した、非一時的なコンピュータ可読媒体をさらに提供する。
【0011】
本開示の主題のさらなる特徴、性質、及びさまざまな利点は、以下の詳細な説明、及び添付の図面でより明らかになるであろう。
【図面の簡単な説明】
【0012】
図1】本開示の実施形態による、例示的なデータ処理システムを示す。
図2】本開示の実施形態による、ワークフローの例を示す。
図3】本開示の実施形態による、例示的なパラメータ表現グラフを示す。
図4】本開示の実施形態による、例示的なネットワークに基づいたメディア処理(NBMP)工程を示す。
図5】本開示の実施形態による、コンピュータシステムの概略図を示す。
【発明を実施するための形態】
【0013】
I.ネットワークに基づいたメディア処理
ネットワークに基づいたメディア処理(NBMP)のフレームワークは、ネットワークで(例えば、クラウドプラットフォームで)メディア処理を初期化し制御するために使用することができる。例えば、NBMPソースは、要求されたメディア処理を記述し、メディアデータの性質及び形式についての情報を提供する。これに応答してNBMPワークフローマネージャがメディア処理ワークフローを確立し、ワークフローが実行可能なことをNBMPソースに通知でき、要求されたメディア処理を開始することができる。その後、メディアソースは、処理のために、ネットワークへのメディアの送信を開始することができる。
【0014】
NBMPワークフローは、メディア処理タスクの連結グラフとして理解でき、各タスクは明確なメディア処理動作を実行する。ワークフローマネージャは、各タスク及びワークフローの出力を構成し監視することによって、ワークフローが正しく動作することを保証する。ワークフローマネージャは、メディア処理機能を選択する権限を持ち、NBMPソースから受信したワークフロー記述に基づいて、選択した機能をタスクとしてインスタンス化する。
【0015】
ワークフローマネージャは、基盤となるクラウドコンピューティングプラットフォームとの相互作用をメディアサービスプロバイダから隠しながら、メディア処理タスクを実行するメディア処理エンティティ(MPE)を確立し、ロードし、監視することができる。
【0016】
図1は、本開示の実施形態による、例示的なNBMPシステム(100)を示す。NBMPシステム(100)は、ストリーミング、ファイル配信、プッシュ型プログレッシブダウンロード、ハイブリッド配信、マルチパス、及び異種ネットワーク環境などの、既存のメディア配信方法をサポートすることができる。また、NBMPシステム(100)では、ネットワーク支援によるメディア品質改善(例えば、仮想現実(VR)のスティッチング、動画のアップスケーリング、適応型ストリーミング用のモバイルエッジ符号化、及びコンテンツに応じたクラウドトランスコーディング)、ネットワーク支援によるメディア配信(例えば、ライブメディア取り込み、オンライントランスコーディング、及びメディアに応じたキャッシング)、ネットワーク支援によるメディア構成(例えば、拡張動画ストリーミング、及びカスタマイズされたメディア構成)、没入型メディア処理(例えば、ネットワーク集約型点群メディア)などの、さまざまなクラウドに基づいたメディア処理性能を提供することによって、新興のメディアアプリケーションが使用可能になる。
【0017】
図示されているように、NBMPシステム(100)は、NBMPソース(101)と、NBMPワークフローマネージャ(103)と、機能リポジトリ(105)と、メディアソース(111)と、データ処理エンティティ(MPE)(113)と、メディアシンク(115)とを備えることができる。NBMPシステム(100)は、追加のメディアソース、メディアシンク、及び/又はMPEを備えることができる。
【0018】
NBMPソース(101)は、メディア処理エンティティ(113)によって実行されるメディア処理動作を記述するか、又は示すことができる。機能リポジトリ(105)は、さまざまなメディア処理機能を記憶することができる。NBMPソース(101)及びNBMPワークフローマネージャ(103)は、機能リポジトリ(105)からメディア処理機能を検索することができる。メディア処理機能又は機能は、360度動画ストリーミングサービスにおけるスティッチング工程、動画配信サービスにおける人工知能(AI)に基づいた動画アップスケーリング工程などの、特定のメディア処理工程を実行するために使用することができる。
【0019】
メディア処理タスク又はタスクは、MPE(113)によって実行される、機能の実行時インスタンスであってもよい。NBMPワークフロー又はワークフローは、要求されたメディア処理を達成する、1つ以上の結合タスクのグラフ(例えば、有向非巡回グラフ(DAG))によって表すことができる。NBMPワークフローマネージャ(103)又はワークフローマネージャ(103)は、タスクを提供し、例えばワークフロー記述文書(WDD)に基づいて、ワークフローを作成、制御、管理及び監視するために、タスクを結合することができる。
【0020】
メディアソース(111)は、ワークフローによって処理されるメディアコンテンツ(メディアデータ、補足情報など)を提供することができる。補足情報は、メディアデータに関するメタデータ又は補助情報を含むことができる。メディアソース(111)は、ワークフローに入力を提供することができる。メディアシンク(115)は、ワークフローの出力を消費することができる。MPE(113)は、メディアコンテンツを処理するために、1つ以上のメディア処理タスクを実行することができる。
【0021】
NBMPシステム(100)における異なるエンティティ(例えば、NBMPソース(101)、ワークフローマネージャ(103)、及びMPE(113))は、図1に示すように、メディアサービス要求を呼び出しこれに応答するために、APIを使用することができる。APIは、NBMPワークフローAPI(又はワークフローAPI)、機能ディスカバリAPI、及びタスクAPIを含むことができる。ワークフローAPIは、NBMPソース(101)とワークフローマネージャ(103)との間にインターフェースを提供することができる。タスクAPIは、ワークフローマネージャ(103)とメディア処理タスクとの間にインターフェースを提供することができる。機能ディスカバリAPIは、ワークフローマネージャ(103)/NBMPソース(101)と、機能リポジトリ(105)との間にインターフェースを提供することができる。
【0022】
上述したNBMPインターフェースは、ネットワークにメディア処理ワークフローを作成し制御するために使用することができる。NBMPシステム(100)は、制御プレーンとメディアプレーン(又はメディアデータプレーン)とに分割することができる。制御プレーンは、ワークフローAPI、機能ディスカバリAPI、及びタスクAPIを含むことができる。
【0023】
ワークフローAPIは、メディア処理ワークフローを作成し制御するために、NBMPソース(101)が使用することができる。NBMPソース(101)は、ネットワークにメディア処理を構成し制御するためのワークフローマネージャ(103)と通信するために、ワークフローAPIを使用することができる。NBMPソース(101)が、ワークフローAPIの動作にワークフローリソース(WR)を含めることによってワークフローマネージャ(103)に要求を送信すると、ワークフローマネージャ(103)は、WR、含まれているWDD、及び対応する記述子を解析し、要求された動作に従って適切なアクションをとることができる。次に、ワークフローマネージャ(103)は、応答をもって要求を認めることができる。ワークフローAPI動作は、ワークフローの作成(例えば、CreateWorkflow)、ワークフローの更新(例えば、UpdateWorkflow)、ワークフローの削除(例えば、DeleteWorkflow)、ワークフローの検索(例えば、RetrieveWorkflow)などを含むことができる。
【0024】
機能ディスカバリAPIは、メディア処理ワークフローの一部としてロードできるメディア処理機能を見つけるために、ワークフローマネージャ(103)/NBMPソース(101)に手段を提供することができる。
【0025】
タスクAPIは、実行時に、タスク(例えば、MPE(113)によって実行されるタスク1及びタスク2)を構成し監視するために、ワークフローマネージャ(103)が使用することができる。タスクAPIは、例えば、MPE(113)内でタスク用のリソースが割り振られた後で、ワークフローマネージャ(103)によってメディア処理タスクを構成するためのインターフェースを定義することができる。タスクAPI動作は、タスクの作成(例えば、CreateTask)、タスクの更新(例えば、UpdateTask)、タスクの入手(例えば、GetTask)、タスクの削除(例えば、DeleteTask)などを含むことができる。
【0026】
メディアプレーンでは、NBMPソース(111)とタスクとの間、並びにタスク間における、メディア形式、メタデータ、及び補足情報形式を定義することができる。
【0027】
ワークフロー記述(WD)は、NBMPソース(101)からワークフローマネージャ(103)に渡すことができる。WDは、ワークフローの入力データ及び出力データ、機能その他の要件などの情報を記述することができる。
【0028】
ワークフローマネージャ(103)は、NBMPソース(101)からWDDを受信でき、要求されたメディア処理のワークフローを構築することができる。ワークフロー手順では、例えば、機能リポジトリ(105)からメディア処理機能を選択でき、その後、対応するメディア処理タスクを構成して、1つ以上のMPEの組(例えば、MPE(113)を含む)に分配することができる。
【0029】
機能リポジトリ(105)によって提供される一連の機能は、NBMPソース(101)及びワークフローマネージャ(103)によって読み出すことができる。実施形態では、NBMPソース(101)は、機能リポジトリ(105)内の一連の機能を使用したワークフローの作成を要求する。したがって、NBMPソース(101)は、ワークフローのための機能を選択するように構成される。以下で述べるように、NBMPソース(101)は、ワークフローの作成を要求することができる。NBMPソース(101)は、メディア処理タスクの記述を使用でき、これによってワークフローが作成され、メディア処理タスクの入力と出力との結合を定義するために、結合マップを指定することができる。ワークフローマネージャ(103)が、NBMPソース(101)から上述の情報を受信すると、ワークフローマネージャ(103)は、それぞれの機能名に基づいて、メディア処理タスクをインスタンス化でき、結合マップに従ってメディア処理タスクを結合することができる。
【0030】
或いは、NBMPソース(101)は、ワークフローマネージャ(103)がワークフローを構築できる一組のキーワードを使用して、ワークフローの作成を要求することができる。したがって、NBMPソース(101)は、ワークフローに挿入される一連の機能を知らなくてもよい。以下で述べるように、NBMPソース(101)は、ワークフローの作成を要求することができる。NBMPソース(101)は、ワークフローマネージャ(103)が適切な機能を見出せる一連のキーワードを使用でき、適切なワークフロー記述を使用して、ワークフローの要件を指定することができる。
【0031】
ワークフローマネージャ(103)が、NBMPソース(101)から上述の情報(例えば、一連のキーワード)を受信すると、ワークフローマネージャ(103)は、例えば、処理記述子で指定されたキーワードを使用して、適切な機能を探索することによってワークフローを作成することができる。次に、ワークフローマネージャ(103)は、メディア処理タスクを提供し、メディア処理タスクを結合して最終的なワークフローを作成するために、ワークフロー記述内の他の記述子を使用することができる。
【0032】
ワークフローマネージャ(103)の処理モデルは、以下の通りに説明することができる。
【0033】
ワークフローマネージャ(103)は、以下のように使用可能なメディア処理機能を見つけることができる。NBMP機能リポジトリ(105)は、外部エンティティが、要求された処理を実行できるメディア処理機能を照会できるように、機能ディスカバリインターフェース(又はAPI)を提供することができる。ワークフローマネージャ(103)は、探索可能なメディア処理機能のリストを提供するディレクトリサービスにアクセスすることができる。ワークフローマネージャ(103)は、ワークフローにとって適切な機能を見出すために、ワークフロー記述にメディア処理タスクの記述を使用することができる。
【0034】
ワークフローに対するメディア処理タスクの選択については、以下のように説明することができる。NBMPソース(101)からメディア処理の要求を受信すると、ワークフローマネージャ(103)は、ワークフローを実行できるすべての使用可能な機能のリストを見つけるために、機能リポジトリ(105)を探索することができる。NBMPソース(101)のワークフロー記述を使用して、ワークフローマネージャ(103)は、ワークフローを実施するために機能リポジトリ(105)から機能を見つけることができ、これは、NBMPソース(101)のメディア処理の情報に依存してもよい。メディア処理のための情報は、入力及び出力の記述、要求された処理の記述、並びに機能ディレクトリ(105)内にある機能の、他の記述子内の情報を含むことができる。ソース要求を、ワークフローに含まれる適切なメディア処理タスクにマッピングすることは、ネットワークにおけるNBMPの実施の一部であってもよい。タスク作成時に、入力ソースを入力ポート名及び出力ポート名で参照しこれにリンクさせるために、入力ポート及び出力ポートを使用して、入力ストリームを参照することができる。
【0035】
タスクとしてインスタンス化される適切な機能の探索は、機能ディスカバリAPIを使用して、ワークフローマネージャ(103)によって実行することができる。或いは、ワークフローマネージャ(103)が、機能ディスカバリAPIを使用して、機能リポジトリ(105)内の一部又は全部の適切な機能の詳細情報を検索することができる。次に、ワークフローマネージャ(103)は、NBMPソース(101)のメディア処理のための情報を、各機能の別の記述子と比較することができる。
【0036】
選択されたメディア処理タスクは、ワークフローで構成することができる。ワークフローに含まれるべき機能が識別されると、NBMPワークフローマネージャ(103)は、機能を各タスクとしてインスタンス化してタスクを構成でき、その結果、ワークフローにタスクを追加することができる。NBMPワークフローマネージャ(103)は、NBMPソース(101)から受信したメディア処理情報から構成データを抽出し、対応するタスクを構成することができる。タスクの構成は、タスクAPI(例えば、NBMPタスクAPI)を使用して実行することができる。
【0037】
タスクの割り振り及び分配については、以下の通りに説明することができる。ワークフローマネージャ(103)は、ワークフローを使用して、処理配置を実行しメディア処理エンティティを構成することができる。例では、計算集約的なメディア処理要求に対し、ワークフローマネージャ(103)は、複数の計算インスタンスを設定し、複数の計算インスタンス間で作業負荷を分配することができる。したがって、ワークフローマネージャ(103)は、必要に応じて複数の計算インスタンスを結合し構成することができる。例では、ワークフローマネージャ(103)は、複数のインスタンスに同じタスクを割り振り、選択したスケジューリング機構を使用して複数のインスタンス間で作業負荷を分配するために、負荷分散を提供する。代替的な例では、ワークフローマネージャ(103)は、異なるインスタンスに、同じタスクの別の動作(例えば、並列動作)を割り振る。上述した両方の例において、ワークフローマネージャ(103)は、インスタンス間にワークフローパスを設定でき、したがって適切な作業負荷をうまく実現することができる。ワークフローマネージャ(103)は、処理されたメディアデータ/ストリームを、ワークフローグラフの次のタスクにプッシュする(又はプル機構によって使用可能にする)ように、タスクを構成することができる。
【0038】
ワークフローマネージャ(103)がNBMPソース(101)からWDDを受信すると、ワークフローマネージャ(103)は、ワークフローに挿入されるメディア処理機能の選択を実行することができる。ワークフローに含まれるべきタスクのリストがコンパイルされると、ワークフローマネージャ(103)は、タスクを結合してワークフローを準備することができる。
【0039】
ワークフローマネージャ(103)は、ワークフローを、例えばグラフ(例えば、DAG)によって表されるものとして生成することができる。図2は、本開示の実施形態による、グラフ(例えば、DAG)(200)の例を示す。DAG(200)は、複数のノード(T1)~(T6)と、複数のリンク(又は結合)(202)~(208)とを含むことができる。例では、DAG(200)は、ワークフロー(200)を表す。
【0040】
DAG(200)の各ノードは、ワークフロー(200)のメディア処理タスクを表すことができる。DAG(200A)において、第1のノード(例えば、ノード(T1))を第2のノード(例えば、ノード(T2))に結合しているリンク(例えば、リンク(202))は、第1のノード(例えば、ノード(T1))の出力を、第2のノード(例えば、ノード(T2))に対する入力として移行することを表すことができる。
【0041】
一般に、ワークフローは、任意の適切な数の入力(又はワークフロー入力)と、任意の適切な数の出力(又はワークフロー出力)とを含むことができる。ワークフロー入力は、メディアソース(111)や他のワークフローなどに結合でき、ワークフロー出力は、メディアシンク(115)や他のワークフローなどに結合することができる。ワークフロー(200)は、入力(201)と、出力(209)及び(210)とを有する。いくつかの実施形態では、ワークフロー(200)は、中間ノードからの1つ以上の出力を有することができる。
【0042】
II.NBMP記述、データオブジェクト、及びRESTリソース
NBMPを記述するために、いくつかの例では、パラメータ、記述子、及び記述を定義することができる。例えば、ワークフロー、タスク、及び機能をそれぞれ記述するために、ワークフロー記述、タスク記述、及び機能記述を定義することができる。ワークフロー記述、タスク記述、及び機能記述はそれぞれ、一連の記述子を使用して記述することができる。各記述子は、機能、タスク、又は機能のそれぞれの一連の特徴を記述するために、一連のパラメータを提供することができる。
【0043】
いくつかの例において、論理記述と対応するデータオブジェクトとの間、及びデータ文書とRESTリソースとの間には一対一の関係がある。例えば、ワークフローオブジェクト(WO)、タスクオブジェクト(TO)、及び機能オブジェクト(FO)は、例えば、ジェイソン(javascript object notation、JSON)オブジェクトとしての対応する記述(又は記述子)の実現である。ワークフロー記述文書(WDD)、タスク記述文書(TDD)、及び機能記述文書(FDD)は、それぞれ1つのWO、1つのTO、及び1つのFOを含む文書である。このような文書は、JSONオブジェクトであってもよい。ワークフローリソース(WR)、タスクリソース(TR)、及び機能リソース(FR)は、それぞれ有効なURLを有するWDD、TDD、及びFDDであり、したがってRESTリソースである。
【0044】
II.1 NBMP機能記述及び構成記述子
実施形態では、機能リポジトリ(105)内のメディア処理機能は、機能記述を形成する一連の記述子を使用して記述することができる。例として、下記の表1は、メディア処理機能の一連の記述子を示す。
【0045】
【表1】
【0046】
メディア処理機能の各記述子は、各メディア処理機能の一連の関連する特徴を記述するパラメータ群を提供することができる。例えば、表1における汎用記述子は、各機能についての一般的な詳細を提供することができる。表2は、表1の汎用記述子に対応するパラメータ群を示す。
【0047】
【表2】
【0048】
表1の構成記述子は、各メディア処理機能の構成情報を提供することができる。例として、表3は、表1の構成記述子に対応するパラメータを示す。
【0049】
【表3】
【0050】
例として、表4は、構成記述子のJSONオブジェクトを作成するための、JSONスキーマを示す。
【0051】
【表4A】
【表4B】
【表4C】
【0052】
III.メディア処理機能の構成パラメータのグラフ表現及びデータオブジェクト
III.1 パラメータグラフ
いくつかの例において、メディア処理機能を構成するパラメータセットは、パラメータグラフ(又はパラメータ表現グラフとも呼ばれる)によって表すことができる。パラメータセットは、メディア処理機能における機能記述の記述子内のパラメータを含むことができる。パラメータ間の論理関係(例えば、依存性又は排他性)は、パラメータグラフを使用して記述することができる。
【0053】
本開示の態様は、パラメータグラフを構成するためのルールを記述する。従来技術と比較して、本パラメータグラフは、本明細書で説明する構成ルールを使用して、簡素化した方法で構成することができる。パラメータグラフに基づいて生成された構成記述子のデータオブジェクト(例えば、JSONオブジェクト)もまた、簡素化されてよりコンパクトな形式を有することができる。このようなデータオブジェクトに対する解析動作もまた、簡素化することができる。ルールは、NBMPの機能記述における、構成記述子の構成パラメータに対するパラメータグラフを構成するために使用でき、又はNBMPと関係がない機能の、他の任意の構成パラメータのパラメータグラフを構成するために使用されてもよい。
【0054】
例として、パラメータグラフを構成するための一連のルールは、以下の通りに記述することができる。
【0055】
パラメータグラフは、ノード及びエッジを含むことができる。エッジは2つのノード間のつながりであり、2つのノード間の論理関係を表す。任意の2つのノードは、多くとも1つのエッジで互いに結合されていなければならない。
【0056】
パラメータノード及び値ノードの2種類のノードがあってもよい。パラメータは、パラメータグラフではパラメータノードによって表現しなければならない。別のパラメータを設定するための条件として、(依存関係における)値の存在、パラメータの値のサブセット又は副範囲、又は(排他関係における)パラメータの値の不存在が必要とされる場合は、その値、又はサブセット若しくは副範囲は、パラメータグラフでは値ノードによって表さなければならない。
【0057】
パラメータグラフで定義されるエッジには、以下の3つの型が存在し得る。
- P2V型:パラメータノードから値ノードへの結合であって、パラメータノードのパラメータが、値ノードによって表される、その許容値のサブセット又は副範囲をとり得ることを示す。
- V2P型:値ノードからパラメータノードへの結合であって、パラメータノードによって表されるパラメータが、親パラメータに依存することを示し、親パラメータは値ノードによって表されるこれらの特定の値をとる。
- V0P型:値ノードからパラメータノードへの結合であって、親パラメータが値ノードによって表される値に設定されている場合は、パラメータノードによって表されるパラメータが許容されない(例えば、使用されない)ことを示す。
【0058】
パラメータノードは、他のノードから結合されなくてもよく、又は1つ以上の値ノードから結合されてもよい。確実に1つのエッジが任意の値ノードに結合される必要があり、そのエッジは1つのパラメータノードからきたものでなければならない。パラメータノードに結合されたエッジはいずれも、必ずV2P型又はV0P型のうちの1つになる。
【0059】
上述のルールを用いて構成されたパラメータグラフは、JSONオブジェクトなどのデータオブジェクトによって表すことができる。構成されたパラメータグラフにおけるパラメータ間の論理関係は、このデータオブジェクトで記述することができる。
【0060】
図3は、上述したルールに従ったパラメータグラフ(300)の例を示す。パラメータグラフ(300)において、円形のノードは、パラメータP1~P6に対応するパラメータノードP1~P6を表す。四角形のノードは、値(例えば、値、許容値のサブセット、許容値の副範囲)に対応する値ノードV11、V12、V21、V31、及びV32を表す。図3に示すように、エッジ(301)、(302)、(303)、(311)、(312)、(313)、(321)、(323)、(331)、及び(323)は、パラメータノードと値ノードとを結合する。P2V、V2P、及びV0Pの3つの型のエッジが、それぞれ実線の矢印、点線の矢印、及び破線の矢印で表されている。また、パラメータノードP1は、パラメータノードP3又はP4の親ノードである。パラメータノードP3は、パラメータノードP5又はP6の親ノードである。
【0061】
図示されているように、パラメータグラフ(300)は、5つのレベルを含む階層構造を有することができる。例えば、第1のレベルは、ノードP1及びP2を含むことができる。第2のレベルは、ノードV11、V12、及びV21を含むことができる。第3のレベルは、ノードP3及びP4を含むことができる。第4のレベルは、ノードV31及びV32を含むことができる。最終レベルは、ノードP5及びP6を含むことができる。
【0062】
パラメータノードP1は、P2Vエッジ(301)及び(302)で結合された、2つの値ノードV11及びV12を有する。パラメータP1がV11で示されている値に設定された場合は、V2Pエッジ(311)で示されているようにP3パラメータを設定でき、パラメータP4は許可されない。パラメータP1がV12で示されている値に設定された場合は、V2Pエッジ(312)で示されているようにパラメータP4を設定でき、パラメータP3は使用されない。
【0063】
パラメータP3が、P2Vエッジ(321)によって示されているようにV31で表される値に設定された場合は、V2Pエッジ(331)によって示されているように、パラメータP5を設定することができる。パラメータP3が、V32で表される値に設定されない(例えば、V31で表される値、又はV32以外の他の任意の有効な値に設定できる)場合で、且つP2がV21で表される値に設定される場合は、P6を設定でき、これはV0Pエッジ(333)及びV2Pエッジ(313)で示されている。パラメータP3が、V32で表される値に設定される場合、又はP2がV21で表される値に設定されない場合はP6は許容されず、これについてもV0Pエッジ(333)及びV2Pエッジ(313)で示されている。V21で示される値は、パラメータP2が設定され得る唯一の値とは限らない。
【0064】
いくつかの例において、パラメータグラフ表現は、タスクとしてインスタンス化された各メディア処理機能の構成パラメータのサブセットを選択又は検証するために、ワークフローのタスクが使用することができる。
【0065】
例では、ワークフローマネージャ(103)は、メディア処理機能の機能記述を受信するために、機能リポジトリ(105)を照会することができる。機能記述は、メディア処理機能の一連の構成パラメータを記述する構成記述子を含むことができる。ワークフローマネージャ(103)は、メディア処理機能をタスクとしてインスタンス化することができる。ワークフローマネージャ(103)はさらに、タスクに構成記述子を渡すことによって、タスクを構成することができる。構成記述子(例えば、JSONオブジェクト)を解析することによって、タスクはこれに従ってパラメータグラフを構成することができる。例では、実行状態のときは、タスクはメディアソース(111)によって与えられた初期パラメータ値に基づいて、構成パラメータのサブセットを選択し検証することができる。
【0066】
パラメータグラフに基づいた、構成パラメータのサブセットの選択及び検証の例示的な工程の説明は以下の通りである。工程は、以下のステップを含むことができる。
1)iを、パラメータグラフのレベル1を表す値1に設定する。
2)レベルiのパラメータに対して、これらのパラメータのサブセットSiを、構成に含まれるように選択する。
3)それぞれの選択されたパラメータPi:jに対して、Pi:jに割り当てられ得る一連の値Vi:k(許容値)を決定する。
4)可能な値Vi:kから、Pi:jに適切な値を割り当てる。
5)各パラメータPi:jに割り当てられた値に基づいて、タイプ2のエッジを有するパラメータPi+1:mのサブセットSi+1を決定し(依存関係)、タイプ3のエッジを有するパラメータをグラフから除外する(排他関係)。
6)i=i+1を設定し、新しいサブセットSiが空でない場合はステップ2に進む。
7)Siが空の場合は、グラフにタイプ3(排他)のノードがないことを検証して、作成した構成を返す。
【0067】
III.2 データオブジェクトの形式
JSONオブジェクトなどのデータオブジェクトは、構成記述子によって記述された、構成パラメータのパラメータ表現グラフに基づいて、機能記述内の構成記述子用に作成することができる。例えば、JSONスキームは、III.1項で説明したルールに従ったパラメータグラフを使用して記述された、パラメータ論理関係を反映するように指定することができる。構成記述子のJSONオブジェクトは、構成記述子で記述された構成パラメータのパラメータ論理関係を反映するように、指定されたJSONスキームに従って作成することができる。表4に示すJSONスキームは、III.1項で述べたルールに従って、パラメータグラフに基づいて指定された例である。
【0068】
表5は、III.1項で述べたルールに従ったパラメータグラフに基づいて指定された、別の例示的なJSONスキームを示す。
【0069】
【表5A】
【表5B】
【0070】
表6は、表5のJSONスキームに従って作成された、例示的なJSONオブジェクトを示す。表6のJSONオブジェクトは、図3のパラメータグラフ(300)に対応する。表6におけるJSONオブジェクトの作成は、パラメータグラフ(300)によって示されたパラメータ論理関係に基づく。
【0071】
【表6A】
【表6B】
【0072】
本開示によれば、III.1項で説明したような、パラメータグラフを構成するためのルールの導入によって、構成記述子のパラメータグラフを簡素化した方法で構成することができる。パラメータグラフに基づいたJSONオブジェクトは、よりコンパクトにすることができる。このようなJSONオブジェクトの解析が容易になり、これに応じてパラメータグラフの再構成が容易になる。
【0073】
また、JSONオブジェクトにおけるパラメータノードの各オブジェクトに、データ型を割り当てることができる。このようにして、JSONオブジェクトの受信側は、さまざまなパラメータに対して、正確に正しいデータ型を使用することができる。例えば、表5の21~27行目は、データ型パラメータを指定している。表6の2、4、29、44、及び47行目は、それぞれデータ型を記述している。
【0074】
また、表5及び表6に示すように、V2P及びV02エッジは、各パラメータノードの2つの別のリストを使用してシグナリングされてもよく、これによってJSON表現を大幅に簡素化することができる。例えば、表5のJSONスキームは、67~70行目で条件オブジェクトを指定し、71~74行目で排他オブジェクトを指定している。条件オブジェクトは、パラメータノードが依存するパラメータノード(それぞれV2Pエッジで結合された)のリストを提供することができる。排他オブジェクトは、パラメータノード(それぞれV0Pエッジで結合された)のリストを提供でき、リストの各パラメータノードは排他関係を有する。
【0075】
したがって、表6において、48行目及び49行目はともに、V2Pエッジ(333)を示すために条件オブジェクトの第1のリスト(値ノードID32を含む)が提供される一方で、V0Pエッジ(313)を示すために排他オブジェクトの第2のリスト(値ノードID21を含む)が提供される例を提示している。値ノードを表すために、(従来技術におけるような)複雑なオブジェクトの配列の代わりにノードIDを使用することによって、JSON表現を大幅に簡素化することができる。
【0076】
さらに、パラメータノード及び値ノードの両方に同じエッジシグナリングが使用され、これによってJSONオブジェクトが簡素化される。表6に示すように、現在のノードが関係するパラメータ又は値ノードのリストを示すために、パラメータノード及び値ノードの両方が条件オブジェクトを使用する。
【0077】
最後に、値ノードの値を表すために、3つの値のコンパクトな形(スタート値、エンド値、及びインクリメント)が使用される。3つの値は、整数値又は浮動小数点値のいずれかであってもよい。表5の37~64行目に示すように、整数範囲オブジェクト又は浮動小数点範囲オブジェクトを表すために、最小値、最大値、及びインクリメントのオブジェクトが指定される。
【0078】
IV.例示的なメディア処理工程
図4は、本開示の実施形態による、例示的なNBMP工程(400)の例を示す。本工程では、機能記述の構成記述子は、本明細書で述べる構成パラメータグラフ表現の技法を使用している。一例では、工程400は、図1の例のNBMPワークフローマネージャ(103)によって実行することができる。工程(400)は、(S401)から開始して(S410)に進むことができる。
【0079】
(S410)において、メディア処理機能の機能記述は、NBMPシステムのワークフローマネージャにおいて、機能リポジトリから受信することができる。例えば、ワークフローマネージャは、NBMPソースからワークフロー記述を受信してもよい。ワークフロー記述は、メディア処理ワークフローに使用されるメディア処理機能を示し得る。このような状況において、ワークフローマネージャは、示されたメディア処理機能に対応する機能記述を機能リポジトリから取得し得る。
【0080】
或いは、ワークフロー記述は、メディア処理機能を指定せずに、1つ以上のキーワードを提供してもよい。この状況では、ワークフローマネージャは、一連の機能の機能記述を取得するために、キーワードを使用して機能リポジトリを照会することができる。ワークフローマネージャは、ワークフローを設計するために、一連の機能から1つ以上のメディア処理機能を選択してもよい。このような方法で選択されたメディア処理機能は、(S410)で受信した機能記述を含むことができる。
【0081】
(S410)で受信した機能記述は、各メディア処理機能の構成パラメータの構成情報を提供する構成記述子を含むことができる。構成記述子は、パラメータ表現グラフに従って作成されたJSONオブジェクトであってもよい。JSONオブジェクトにおける構成記述子のパラメータは、パラメータ表現グラフによって表される論理関係を有することができる。
【0082】
具体的には、パラメータ表現グラフは、III.1項で述べた一連のルールに従って構成することができる。例えば、パラメータ表現グラフを構成するためのルールは、
(a)パラメータ表現グラフが、ノードと、それぞれが2つのノードを結合し、2つの各ノード間の論理関係を表すエッジとを含み、ノードは、パラメータノードと、値ノードとを含むこと、
(b)任意の2つのノードが、多くとも1つのエッジで互いに結合されること、
(c)パラメータが、パラメータ表現グラフではパラメータノードによって表されること、
(d)別のパラメータを設定する条件としてパラメータの値の存在又は不存在が必要とされる場合、パラメータの値は、パラメータ表現グラフでは値ノードによって表されること、
(e)パラメータノードが、他のどのノードからも結合されていないか、又は1つ以上の値ノードから結合されること、及び
(f)1つのエッジが、任意の値ノードに結合し、且つ1つのパラメータノードから結合されること
を含むことができる。
【0083】
一例において、ルールは、
(g)パラメータ表現グラフのエッジが3つの型に分類されることであって、3つの型が、
(i)P2V型:パラメータノードから値ノードへの第1の結合であって、第1の結合に結合されたパラメータノードのパラメータが、第1の結合に結合された値ノードによって表されるサブセット又はある範囲の許容値をとることを示すもの、
(ii)V2P型:値ノードからパラメータノードまでの第2の結合であって、第2の結合に結合されたパラメータノードによって表されるパラメータが、第2の結合に結合された値ノードによって表される値をとる親パラメータに依存することを示すもの、及び
(iii)V0P型:値ノードからパラメータノードへの第3の結合であって、親パラメータが第3の結合に結合された値ノードによって表される値に設定されている場合、第3の結合に結合されたパラメータノードによって表されるパラメータが、許容されないことを示すもの
を含む、こと、及び
(h)パラメータノードに結合されたエッジの型はV2P型又はV0P型であること
をさらに含むことができる。
【0084】
(S420)において、メディア処理機能は、ワークフローの一部であってメディア処理エンティティ内で実行する、メディア処理タスクとしてインスタンス化することができる。例えば、ワークフローは、NBMPソースから受信したワークフロー記述で記述でき、又はワークフローマネージャで設計することができる。ワークフロー管理は、1つ以上のメディア処理エンティティを提供するために、クラウドコンピューティングプラットフォームのリソースマネージャと通信し、ワークフローの一連の機能をメディア処理エンティティにロードすることができる。この工程中に、メディア処理機能は、ワークフローの一部として、メディア処理タスクとしてインスタンス化することができる。
【0085】
(S430)において、構成記述子内のパラメータの構成情報に基づいて、メディア処理タスクを構成することができる。例えば、メディア処理エンティティでタスクが実行を開始した後に、ワークフローマネージャは、タスクがそれぞれのワークフロー記述の結合マップに従って互いに結合できるように、タスクを構成してもよい。例えば、ワークフローマネージャによる構成は、それぞれのワークフロー記述に記述された、各タスクの入力ポート及び出力ポートの情報を、各タスクに提供することを含むことができ、その結果、メディアデータをこれらのタスクを介して適切に渡すことができる。ワークフローマネージャによる構成は、(S410)で受信した構成記述子(例えば、JSONオブジェクト)を各タスクに渡すことをさらに含むことができ、その結果、タスクは、JSONオブジェクトに基づいて、パラメータのサブセットを決定し検証することができる。
【0086】
例えば、タスクは最初に、渡されたJSONオブジェクトに基づいてパラメータグラフを再構成することができる。次に、パラメータグラフに基づいて、タスクは、(S410)で受信した構成記述子のパラメータのサブセットを決定するために、III.1項で述べた選択及び検証の工程を実行することができる。
【0087】
タスクが構成されワークフローがインスタンス化されると、ワークフローを使用して、メディアソースからのメディアデータの受信が開始され処理されてもよい。工程(400)は(S499)に進み、(S499)で終了させることができる。
【0088】
V.コンピュータシステム
本明細書で開示される方法、実施形態、エンティティ、又は機能は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施されてもよい。一例では、1つ以上のプロセッサは、本明細書で開示されている方法、実施形態、又は機能を実行するために、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。プログラムは、任意の適切な機械コード又はコンピュータ言語を使用して符号化でき、これは、1つ以上のCPU、GPUなどによって、直接、又は解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構に従ってもよい。命令は、パソコン、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、IoT(internet of things)装置など、さまざまな種類のコンピュータ又はその構成要素で実行することができる。
【0089】
図5は、開示される主題のいくつかの実施形態の実施に適したコンピュータシステム(500)を示す。図5に示すコンピュータシステム(500)の構成要素は本来例示的であって、本開示の実施形態を実施するコンピュータソフトウェアの使用又は機能の範囲に対して、限定を示唆することは意図されていない。構成要素の構成は、コンピュータシステム(500)の例示的な実施形態に示されている構成要素のいずれか1つ、又は構成要素の組合せに関して、依存性を有するものとも要件を有するものとも解釈されてはならない。
【0090】
コンピュータシステム(500)は、いくつかの人的インターフェース入力装置を備えてもよい。このような人的インターフェース入力装置は、例えば、触覚入力(キーを押す、スワイプする、データグローブを動かすなど)、音声入力(声、手をたたくなど)、視覚入力(身振りなど)、嗅覚入力(図示せず)による、1人以上のユーザによる入力に応答し得る。人的インターフェース装置は、音声(発話、音楽、周囲音など)、画像(走査画像、静止画像カメラで取得される写真画像など)、映像(二次元映像、立体映像を含む三次元映像など)などの人による意識的な入力に必ずしも直接関与しない、いくつかのメディアの捕捉にさらに使用することができる。
【0091】
入力人的インターフェース装置は、キーボード(501)、マウス(502)、トラックパッド(503)、タッチスクリーン(510)、データグローブ(図示せず)、ジョイスティック(505)、マイク(506)、スキャナ(507)、カメラ(508)のうちの1つ以上を含んでもよい(それぞれ1つのみが図示されている)。
【0092】
コンピュータシステム(500)は、いくつかの人的インターフェース出力装置を備えてもよい。このような人的インターフェース出力装置は、触覚出力、音声、光、及び臭い/味など、1人以上のユーザの感覚を刺激し得る。このような人的インターフェース出力装置は、触覚出力装置(例えば、タッチスクリーン(510)、データグローブ(図示せず)、又はジョイスティック(505)による触覚フィードバック、ただし入力装置として機能しない触覚フィードバック装置もあり得る)、音声出力装置(スピーカ(509)、ヘッドホン(図示せず))、視覚出力装置(それぞれがタッチスクリーン入力能力を有するか又は有せず、それぞれが触覚フィードバック能力を有するか又は有せず、そのうちのいくつかは二次元映像出力、又は立体出力などの手段によって三次元を上回る出力を出力可能であってもよい、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(510)など、仮想現実めがね(図示せず)、ホログラフィック表示装置、煙発生装置(smoke tank(図示せず))、並びにプリンタ(図示せず))を含んでもよい。
【0093】
コンピュータシステム(500)は、人的にアクセス可能な記憶装置、及びCD/DVDなどのメディア(521)を含むCD/DVD ROM/RW(520)、USBメモリ(thumb-drive)(522)、取り外し可能なハードドライブ又はソリッドステートドライブ(523)、テープ及びフロッピー(登録商標)ディスクなどのレガシー磁気メディア(図示せず)、セキュリティドングルなどの専門化されたROM/ASIC/PLDに基づく装置(図示せず)を含む光学メディアなどの、その関連メディアをさらに含むことができる。
【0094】
ここで開示されている主題に関して使用される「コンピュータ可読メディア」という用語は、伝送メディア、搬送波その他の一時的な信号は含まないことを当業者にはさらに理解されたい。
【0095】
コンピュータシステム(500)は、1つ以上の通信ネットワーク(555)に対するインターフェース(554)をさらに備えることができる。ネットワークは、例えば、無線、有線、光であってもよい。ネットワークはさらに、ローカル、広域、メトロポリタン、車載及び産業用、リアルタイム、遅延耐性などであってもよい。ネットワークの例は、イーサネット(登録商標)などのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含む移動体通信ネットワーク、ケーブルテレビ、衛星テレビ、及び地上波テレビを含む有線テレビ又は無線の広域デジタルネットワーク、車載及びCANBusを含む産業用ネットワークなどを含む。いくつかのネットワークは一般に、いくつかの汎用データポート又は周辺バス(549)(例えば、コンピュータシステム(500)のUSBポート)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他のネットワークは一般に、後述するようにシステムバスに取り付けることによって(例えば、イーサネット(登録商標)インターフェースをPCコンピュータシステムに、又は移動体通信ネットワークインターフェースをスマートフォンのコンピュータシステムに)、コンピュータシステム(500)のコアに統合される。このような任意のネットワークを使用して、コンピュータシステム(500)は他のエンティティと通信することができる。このような通信は、一方向通信、受信専用通信(例えば、テレビ放送)、一方向送信専用通信(例えば、CANbusからCANbusに送信する装置)、又は、例えば、ローカル又は広域デジタルネットワークを使用する、他のコンピュータシステムに対する双方向通信であってもよい。本明細書で述べるように、いくつかのプロトコル及びプロトコルスタックをこのような各ネットワーク及び各ネットワークインターフェースに使用することができる。
【0096】
前述した人的インターフェース装置、人的にアクセス可能な記憶装置、及びネットワークインターフェースは、コンピュータシステム(500)のコア(540)に取り付けることができる。
【0097】
コア(540)は、1つ以上の中央処理ユニット(CPU)(541)、グラフィック処理ユニット(GPU)(542)、FPGA(Field Programmable Gate Areas)の形態の専門化されたプログラム可能処理ユニット(543)、いくつかのタスク用のハードウェアアクセラレータ(544)、グラフィックアダプタ(550)などを含むことができる。このような装置は、読出し専用メモリ(ROM)(545)、ランダムアクセスメモリ(546)、内部のユーザがアクセスできないハードドライブ、SSDなど(547)の内部大容量記憶装置とともに、システムバス(548)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(548)は、追加のCPU、GPUなどによる拡張が可能なように、1つ以上の物理プラグの形態でアクセスすることができる。周辺装置は、コアのシステムバス(548)に直接取り付ける、又は周辺バス(549)を介して取り付けることができる。例では、スクリーン(510)は、グラフィックアダプタ(550)に結合することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0098】
CPU(541)、GPU(542)、FPGA(543)、及びアクセラレータ(544)は、前述したコンピュータコードを作成できるいくつかの命令を、組み合わせて実行することができる。コンピュータコードは、ROM(545)又はRAM(546)に記憶させることができる。過渡的なデータもRAM(546)に記憶でき、これに反し永続的なデータは、例えば、内部大容量記憶装置(547)に記憶することができる。キャッシュメモリを使用することによって、任意のメモリ装置に素早く記憶し検索することが可能になり、1つ以上のCPU(541)、GPU(542)、大容量記憶装置(547)、ROM(545)、RAM(546)などに密接に関連付けることができる。
【0099】
コンピュータ可読媒体は、さまざまなコンピュータ実施動作を実行するためのコンピュータコードを有することができる。メディア及びコンピュータコードは、本開示の目的のために特別に設計され構築されたものにすることができ、又はコンピュータソフトウェアの分野の当業者によく知られ、当業者が使用可能な種類のものであってもよい。
【0100】
例として、且つ制限する目的ではなく、アーキテクチャ、具体的にはコア(540)を有するコンピュータシステム(500)は、1つ以上の有形のコンピュータ可読媒体に具体化されたソフトウェアを実行する、(複数の)プロセッサ(CPU、GPU、FPGA、アクセラレータなど)の結果としての機能性を提供することができる。このようなコンピュータ可読媒体は、先に紹介したようなユーザがアクセス可能な大容量記憶装置、及びコア内部大容量記憶装置(547)又はROM(545)などの、非一時的な性質をもつ、コア(540)のいくつかの記憶装置に関連する媒体であってもよい。本開示のさまざまな実施形態を実施するソフトウェアは、このような装置に記憶させて、コア(540)によって実行することができる。コンピュータ可読メディアは、特定の需要に従って、1つ以上のメモリ装置又はチップを含むことができる。ソフトウェアは、コア(540)及び具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(546)に記憶されているデータ構造の定義、及びソフトウェアによって定義された工程に従ったこのようなデータ構造の変更を含む、上述した特定の工程、又は特定の工程の特定の部分を実行させることができる。これに加えて、又はこれに代えて、コンピュータシステムは、回路(例えば、アクセラレータ(544))に配線された、又は他の方法で具体化された論理の結果としての機能性を提供でき、本明細書で説明する特定の工程、又は特定の工程の特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアとともに動作させることができる。ソフトウェアに対する言及は、必要に応じて論理を包含することができ、その逆もまた可能である。コンピュータ可読メディアに対する言及は、必要に応じて実行するソフトウェアを記憶する(集積回路(IC)などの)回路、実行する論理を具体化する回路、又はその両方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
【0101】
本開示は、いくつかの例示的な実施形態について説明してきたが、変更、置換、及びさまざまな代替的な等価物があり、これらは本開示の範囲内に含まれる。したがって当業者であれば、本明細書に明確に図示又は説明されていなくても、本開示の原理を具体化し、したがってその原理と範囲内に含まれる多くのシステム及び方法を考案できることは理解されよう。
【符号の説明】
【0102】
100 ネットワークに基づいたメディア処理(NBMP)システム
101 NBMPソース
103 NBMPワークフローマネージャ
105 機能リポジトリ
111 メディアソース
113 メディア処理エンティティ
115 メディアシンク
200 ワークフロー
201 入力
202,203,204,205,206,207,208 リンク(結合)
209,210 出力
T1,T2,T3,T4,T5,T6 ノード
300 パラメータグラフ
301,302,303 P2Vエッジ
311,312,313 V2Pエッジ
321,323 P2Vエッジ
331 V2Pエッジ
333 V0Pエッジ
P1,P2,P3,P4,P5,P6 パラメータノード
V11,V12,V21,V31,V32 値ノード
400 NBMP工程
500 コンピュータシステム
501 キーボード
502 マウス
503 トラックパッド
505 ジョイスティック
506 マイク
507 スキャナ
508 カメラ
509 音声出力装置(スピーカ)
510 タッチスクリーン
520 光学メディア
521 メディア
522 USBメモリ
523 ソリッドステートドライブ
540 コア
541 中央処理ユニット(CPU)
542 グラフィック処理ユニット(GPU)
543 FPGA
544 アクセラレータ
545 読出し専用メモリ(ROM)
546 ランダムアクセスメモリ(RAM)
547 内部大容量記憶装置
548 システムバス
549 周辺バス
550 グラフィックアダプタ
554 ネットワークインターフェース
555 通信ネットワーク
図1
図2
図3
図4
図5