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

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

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特開2022-111205オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム
<>
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図1
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図2
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図3
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図4
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図5
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図6
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図7
  • 特開-オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022111205
(43)【公開日】2022-07-29
(54)【発明の名称】オーディオ/ビデオの処理方法、処理装置、電子機器、記憶媒体およびコンピュータプログラム
(51)【国際特許分類】
   H04N 21/438 20110101AFI20220722BHJP
   H04N 21/443 20110101ALI20220722BHJP
【FI】
H04N21/438
H04N21/443
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
【公開請求】
(21)【出願番号】P 2022091970
(22)【出願日】2022-06-07
(31)【優先権主張番号】202111044166.X
(32)【優先日】2021-09-07
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110000796
【氏名又は名称】特許業務法人三枝国際特許事務所
(72)【発明者】
【氏名】李明路
(57)【要約】
【課題】本開示は、オーディオ/ビデオストリームの処理効率を向上させるとともに、稼働とメンテナンスの複雑さも低減させたオーディオ/ビデオの処理方法を提供する。
【解決手段】前記処理方法は、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得することと、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定し、オーディオ/ビデオパイプラインはチェーン構造になるように配列された複数の機能的コンポーネントから構成され、各機能的コンポーネントは、入力データの配分、出力データの回収が予め設定されたデータストリーム配信モジュールによって一括して行われることと、目標オーディオ/ビデオパイプラインを呼び出して目標オーディオ/ビデオデータストリームを連続的に処理し、且つ処理後に得られた処理済みオーディオ/ビデオデータストリームを連続的に出力することとを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
目標オーディオ/ビデオデータストリームを含む目標処理要求を取得することと、
前記目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定することであって、オーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントによって構成され、各前記機能的コンポーネントは、入力データの配分、出力データの回収が予め設定されたデータストリーム配信モジュールによって一括して行われることと、
前記目標オーディオ/ビデオパイプラインを呼び出して前記目標オーディオ/ビデオデータストリームを連続的に処理し、処理後に得られた処理済みオーディオ/ビデオデータストリームを連続的に出力することと、
を含むオーディオ/ビデオの処理方法。
【請求項2】
受信したオーディオ/ビデオデータのタイムスタンプを検出するように前記データストリーム配信モジュールを制御することと、
前記タイムスタンプに基づいて新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されたと判断されたことに応答して、未処理の旧オーディオ/ビデオデータを破棄することと、をさらに含み、
前記新オーディオ/ビデオデータと前記旧オーディオ/ビデオデータとが同じ生成源に対応し、かつ、前記新オーディオ/ビデオデータの生成済み時間長さが、前記旧オーディオ/ビデオデータの生成済み時間長さよりも短い請求項1に記載のオーディオ/ビデオの処理方法。
【請求項3】
画面提示用の連続フレームのオーディオ/ビデオデータのタイムスタンプの差が予め設定された時間長さを超えたことに応答して、前記連続フレームのオーディオ/ビデオデータに対して画面コンテンツの連続性処理を行うことをさらに含む請求項2に記載のオーディオ/ビデオの処理方法。
【請求項4】
各前記機能的コンポーネントの実稼働状態を確定するように前記データストリーム配信モジュールを制御することと、
前記実稼働状態に基づいて、対応する機能的コンポーネントに関連付けられた他の機能的コンポーネントの機能的パラメータを調整するように前記データストリーム配信モジュールを制御することと、をさらに含む請求項1に記載のオーディオ/ビデオの処理方法。
【請求項5】
各前記機能的コンポーネントの実稼働状態を確定するように前記データストリーム配信モジュールを制御することは、
各前記機能的コンポーネントへの入力データの配分と、各前記機能的コンポーネントからの出力データの回収との時間差を計算するように前記データストリーム配信モジュールを制御することと、
前記時間差に基づいて、対応する機能的コンポーネントの実際処理所要時間をそれぞれ確定するように前記データストリーム配信モジュールを制御することと、
前記実際処理所要時間に基づいて、対応する機能的コンポーネントの実稼働状態を確定するように前記データストリーム配信モジュールを制御することと、
を含む請求項4に記載のオーディオ/ビデオの処理方法。
【請求項6】
前記実際処理所要時間に基づいて、対応する機能的コンポーネントの実稼働状態を確定するように前記データストリーム配信モジュールを制御することは、
前記実際処理所要時間が同じ機能的コンポーネントに対応する正常な処理所要時間の区間内にあることに応答して、前記実際処理所要時間に対応する機能的コンポーネントが正常な稼働状態にあると判定するように前記データストリーム配信モジュールを制御することであって、前記正常な処理所要時間の区間は、正常な稼働状態にあると判定された同じ機能的コンポーネントの履歴処理にかかった時間の状況に基づいて確定することと、
前記実際処理所要時間が、同じ機能的コンポーネントに対応する正常な処理所要時間の区間に位置していないことに応答して、前記実際処理所要時間に対応する機能的コンポーネントが異常稼働状態であると判定するように前記データストリーム配信モジュールを制御することと、
を含む請求項5に記載のオーディオ/ビデオの処理方法。
【請求項7】
前記実稼働状態が前記機能的パラメータの調整上限値を超えたことに応答して、機能的コンポーネントの異常通知を報告するように前記データストリーム配信モジュールを制御することをさらに含む請求項4に記載のオーディオ/ビデオの処理方法。
【請求項8】
前記目標オーディオ/ビデオパイプラインは、単一のオーディオ/ビデオパイプラインと、複数の前記単一のオーディオ/ビデオパイプラインをパッケージ化した複合オーディオ/ビデオパイプラインとを含む、
請求項1に記載のオーディオ/ビデオの処理方法。
【請求項9】
目標オーディオ/ビデオデータストリームを含む目標処理要求を取得するように構成される要求取得ユニットと、
前記目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定するように構成される目標パイプライン確定ユニットであって、オーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントによって構成され、各前記機能的コンポーネントは、入力データの配分、出力データの回収が予め設定されたデータストリーム配信モジュールによって一括して実行される、目標パイプライン確定ユニットと、
前記目標オーディオ/ビデオパイプラインを呼び出して前記目標オーディオ/ビデオデータストリームを連続的に処理し、処理後に得られた処理済みオーディオ/ビデオデータストリームを連続的に出力するように構成される目標パイプライン呼び出し・出力返送ユニットとを備えるオーディオ/ビデオの処理装置。
【請求項10】
受信したオーディオ/ビデオデータのタイムスタンプを検出するように前記データストリーム配信モジュールを制御するように構成されるタイムスタンプ検出ユニットと、
前記タイムスタンプに基づいて、新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されたと判断されたことに応答して、未処理の旧オーディオ/ビデオデータを破棄するように構成される非同期処理ユニットと、をさらに備え、
前記新オーディオ/ビデオデータと前記旧オーディオ/ビデオデータとが同じ生成源に対応し、かつ、前記新オーディオ/ビデオデータの生成済み時間長さが、前記旧オーディオ/ビデオデータの生成済み時間長さよりも短い請求項9に記載のオーディオ/ビデオの処理装置。
【請求項11】
画面提示用の連続フレームのオーディオ/ビデオデータのタイムスタンプの差が予め設定された時間長さを超えたことに応答して、前記連続フレームのオーディオ/ビデオデータに対して画面コンテンツの連続性処理を行うように構成される連続性処理ユニットをさらに備える請求項10に記載のオーディオ/ビデオの処理装置。
【請求項12】
各前記機能的コンポーネントの実稼働状態を確定するように前記データストリーム配信モジュールを制御するように構成されるコンポーネント稼働状態確定ユニットと、
前記実稼働状態に基づいて、対応する機能的コンポーネントに関連付けられた他の機能的コンポーネントの機能的パラメータを調整するように前記データストリーム配信モジュールを制御するように構成される機能的パラメータ調整ユニットと、
をさらに備える請求項9に記載のオーディオ/ビデオの処理装置。
【請求項13】
前記機能的パラメータ調整ユニットは、
各前記機能的コンポーネントへの入力データの配分と、各前記機能的コンポーネントからの出力データの回収との時間差を計算するように前記データストリーム配信モジュールを制御するように構成される時間差計算サブユニットと、
前記時間差に基づいて、対応する機能的コンポーネントの実際処理所要時間をそれぞれ確定するように前記データストリーム配信モジュールを制御するように構成される実際処理所要時間確定サブユニットと、
前記実際処理所要時間に基づいて、対応する機能的コンポーネントの実稼働状態を確定するように構成される実稼働状態確定サブユニットと、
を備える請求項12に記載のオーディオ/ビデオの処理装置。
【請求項14】
前記実稼働状態確定サブユニットは、さらに
前記実際処理所要時間が同じ機能的コンポーネントに対応する正常な処理所要時間の区間内にあることに応答して、前記実際処理所要時間に対応する機能的コンポーネントが正常な稼働状態にあると判定するように前記データストリーム配信モジュールを制御することであって、前記正常な処理所要時間の区間は、正常な稼働状態にあると判定された同じ機能的コンポーネントの履歴処理にかかった時間の状況に基づいて確定されることと、
前記実際処理所要時間が、同じ機能的コンポーネントに対応する正常な処理所要時間の区間に位置していないことに応答して、前記実際処理所要時間に対応する機能的コンポーネントが異常稼働状態であると判定するように前記データストリーム配信モジュールを制御することと、
を行うように構成される請求項13に記載のオーディオ/ビデオの処理装置。
【請求項15】
前記実稼働状態が前記機能的パラメータの調整上限値を超えたことに応答して、機能的コンポーネント異常通知を報告するように前記データストリーム配信モジュールを制御するように構成される異常通知報告ユニットをさらに備える請求項12に記載のオーディオ/ビデオの処理装置。
【請求項16】
前記目標オーディオ/ビデオパイプラインは、単一のオーディオ/ビデオパイプラインと、複数の前記単一のオーディオ/ビデオパイプラインをパッケージ化した複合オーディオ/ビデオパイプラインとを含む、
請求項9~15のいずれか1項に記載のオーディオ/ビデオの処理装置。
【請求項17】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されたメモリとを備える電子機器であって、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な指令が格納され、前記指令が前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~8のいずれか1項に記載のオーディオ/ビデオの処理方法を実行させる、電子機器。
【請求項18】
コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、
前記コンピュータ指令はコンピュータに請求項1~8のいずれか1項に記載のオーディオ/ビデオの処理方法を実行させるために用いられる非一時的コンピュータ可読記憶媒体。
【請求項19】
プロセッサによって実行されると、請求項1~8のいずれか1項に記載のオーディオ/ビデオの処理方法が実行されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理技術分野に関し、具体的には、メディア・クラウド技術分野、特にオーディオ/ビデオの処理方法、処理装置、電子機器、コンピュータ可読記憶媒体およびコンピュータプログラムに関する。
【背景技術】
【0002】
モバイル端末のオーディオ/ビデオのデータ処理フレームワークは、他のタイプのデータを処理するためのデータ処理フレームワークとは大きく異なる。オーディオ/ビデオのデータ処理フレームワークは、まずシステムレベルで定義されたソフトウェアフレームワークとハードウェア能力とを含むモバイル端末が提供したシステムの能力に基づく必要がある。
【0003】
オーディオ/ビデオSDK(Software Development Kit)の製品は他の製品とは異なり、まずリアルタイム処理が必要であり、データストリームは個々の機能的コンポーネント/モジュール間で連続的に伝送されるので、オーディオ/ビデオのデータ処理フレームワークは他のモバイル・アプリケーション・フレームワークに比べて最も特徴的なところはパイプラインの部分である。
【0004】
したがって、オーディオ/ビデオデータストリームを各機能的コンポーネント間で如何に効率的に伝送できるようにすることの確保は、オーディオ/ビデオデータの処理の鍵となる。
【発明の概要】
【0005】
本開示の実施形態は、オーディオ/ビデオの処理方法、処理装置、電子機器、コンピュータ可読記憶媒体、およびコンピュータプログラムを提供する。
【0006】
第1の態様によれば、本開示の実施形態は、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得することと、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定することであって、オーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントによって構成され、各機能的コンポーネントは、予め設定されたデータストリーム配信モジュールによって入力データを配分し、出力データを回収する、ことと、目標オーディオ/ビデオパイプラインを呼び出して目標オーディオ/ビデオデータストリームを連続的に処理し、処理後に得られた処理済みオーディオ/ビデオデータストリームを連続的に出力することと、を含むオーディオ/ビデオの処理方法を提供する。
【0007】
第2の態様によれば、本開示の実施形態は、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得するように構成される要求取得ユニットと、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定するように構成される目標パイプライン確定ユニットであって、オーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントから構成され、各機能的コンポーネントは、入力データの配分、出力データの回収が、予め設定されたデータストリーム配信モジュールによって一括して実行される、目標パイプライン確定ユニットと、目標オーディオ/ビデオパイプラインを呼び出して、目標オーディオ/ビデオデータストリームを連続的に処理し、処理後に得られた処理済みオーディオ/ビデオデータストリームを連続的に出力するように構成される目標パイプライン呼び出し・出力返送ユニットとを備えるオーディオ/ビデオの処理装置を提供する。
【0008】
第3の態様によれば、本開示の実施形態は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信可能に接続されたメモリとを備える電子機器であって、メモリには、少なくとも1つのプロセッサによって実行可能な指令が格納され、当該指令が少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに第1の態様のいずれかの実施形態に記載のオーディオ/ビデオの処理方法を実現する電子機器を提供する。
【0009】
第4の態様によれば、本開示の実施形態は、コンピュータ指令が格納されている非一時的コンピュータ可読記憶媒体であって、当該コンピュータ指令は第1態様のいずれかの実施形態に記載のオーディオ/ビデオの処理方法をコンピュータに実行させるために用いられる非一時的コンピュータ可読記憶媒体を提供する。
【0010】
第5の態様によれば、本開示の実施形態は、プロセッサによって実行されると、第1の態様のいずれかの実施形態に記載のオーディオ/ビデオの処理方法が実現されるコンピュータプログラムを提供する。
【0011】
モバイル端末上でオーディオおよびビデオデータをよりうまく処理するために、本開示は、オーディオ/ビデオデータストリームを処理するための複数の機能的コンポーネントをチェーン構造になるように配列し、予め設定されたデータストリーム配信モジュールによってチェーン上の各機能的コンポーネントに一括して入力データを配分したり、出力データを回収したりする新規なオーディオ/ビデオパイプライン構築スキームを提供する。当該データストリーム配信モジュールによって提供される一括配信メカニズムを制御することにより、実行時系列上の各機能的コンポーネントをデカップリングすることができ、実行シーケンスが先の機能的コンポーネントによって実行シーケンスが後の機能的コンポーネントを呼び出す必要がなく、機能的コンポーネントは自身のデータ処理に専念すれば足り、オーディオおよびビデオストリームの処理効率を向上させることができるだけでなく、稼働とメンテナンスの複雑さも軽減され、データストリーム配信モジュールを介して、機能的コンポーネント間のオーディオおよびビデオストリームの流れをより適切に監視することもできる。
【0012】
なお、発明の概要に記載された内容は、本開示の実施形態のかなめとなる特徴または重要な特徴を限定することを意図するものではなく、本開示の範囲を限定するものでもない。本開示の他の特徴は、以下の説明によって理解が容易になる。
【図面の簡単な説明】
【0013】
本開示の他の特徴、目的および利点は、以下の図面を参照してなされる非限定的な実施形態に係る詳細な説明を読むことにより、より明らかになる。
図1】本開示の実施形態に係るオーディオ/ビデオの処理方法のフローチャートである。
図2】本開示の実施形態に係るオーディオ/ビデオデータの非同期処理方法のフローチャートである。
図3】本開示の実施形態に係る機能的コンポーネントの稼働状態を確定するための方法のフローチャートである。
図4】本開示の実施形態に係る処理時間に基づいて機能的コンポーネントの稼働状態を確定するための方法のフローチャートである。
図5】本開示の実施形態に係るオーディオ/ビデオ処理フレームワークの構造概略図である。
図6】本開示の実施形態に係るパッケージ化された特殊効果ミドルウェアの概略構造図である。
図7】本開示の実施形態に係るオーディオ/ビデオの処理装置の構造概略図である。
図8】本開示の実施形態に係るオーディオ/ビデオの処理方法を実行するために適する電子機器の構造概略図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本開示の例示的な実施形態を説明し、ここで、本開示の実施形態の様々な詳細な記載は理解を助けるためのものであり、単なる例示的なものに過ぎない。従って、本開示の範囲および要旨を逸脱しない限り、当業者は本明細書の実施形態に対して様々な変更および修正を行うことができることを理解すべきである。なお、以下の説明では、明確化および簡略化のため、公知の機能および構成については説明を省略する。なお、本開示の実施形態および実施形態における特徴は、矛盾を生じない限り、相互に組み合わせることができる。
【0015】
本開示の技術方案では、関連するユーザ個人情報の収集、記憶、使用、加工、伝送、提供および公開などの処理は、いずれも関連法律法規の規定に準拠し、且つ公序良俗に反しない。
【0016】
理解を助けるために、本開示は、まず、本開示のオーディオ/ビデオの処理方法、オーディオ/ビデオの処理装置、電子機器、およびコンピュータ可読記憶媒体の実施形態を適用することができる例示的なシステムアーキテクチャを説明する。本開示が提供する技術的解決手段の適用対象はモバイル端末で、例えば、スマートフォン、タブレット、スマート・メガネなどのような処理能力が限られ移動可能な端末であり、モバイル端末上で提示が必要なオーディオ/ビデオストリームに対してより良い解決策を提供することを目的とする。
【0017】
このモバイル端末には、オーディオ/ビデオデータ生成モジュールと、オーディオ/ビデオデータ処理モジュールと、処理済みデータ提示モジュールとが含まれてもよい。オーディオ/ビデオデータ生成モジュールは、カメラモジュールまたは採集モジュールを介して、最も原始のオーディオ/ビデオデータを取得するように構成され、例えば、スマートフォンに設置されたカメラ、サウンドピックアップ、マイクロフォンなどが挙げられる。オーディオ/ビデオデータ処理モジュールは、オーディオ/ビデオデータ生成モジュールから連続的に入力されたデータストリームを処理し、モバイル端末のユーザに最終的に提示するために処理後のデータを処理済みデータ提示モジュールに送信するように構成され、例えば、ハードウェアとして存在するコントローラ、演算器、メモリ、並びにソフトウェア、仮想の形式で存在可能なオーディオ/ビデオパイプラインなどが挙げられる。処理済みデータ提示モジュールは、通常、モバイル端末上のディスプレイ、スピーカ、プロジェクトモジュールなどが挙げられる。
【0018】
上記各機能モジュール間では、有線または無線によるデータ処理伝送が可能であるが、ここでは一々列挙しない。
【0019】
ユーザは、録音・録画されたオーディオ/ビデオデータストリームを、モバイル端末を介してリアルタイムに処理し、処理後の画面およびオーディオをリアルタイムに視聴することができる。上述した各種の動作およびプロセスはいずれもモバイル端末にインストールされたアプリケーションによって実装することができ、例えば、撮影系アプリケーション、オーディオ/ビデオ処理系アプリケーションなどのようなアプリケーションを介して、上述した各機能モジュールを呼び出して使うことができる。
【0020】
オーディオ/ビデオデータ処理モジュールは、オーディオ/ビデオ処理系アプリケーションによって配信された制御指令に応答して、オーディオ/ビデオデータの処理を実現することができ、例えば、まず、オーディオ/ビデオデータ生成モジュールから入力された、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得し、次に、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定し、オーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントによって構成され、各機能的コンポーネントは、予め設定されたデータストリーム配信モジュールによって、入力データストリームの配分、出力データストリームの回収を一括して行い、最後に、目標オーディオ/ビデオパイプラインを呼び出して、目標オーディオ/ビデオデータストリームを連続的に処理し、処理後に得られた処理済みオーディオ/ビデオデータストリームを処理済みデータ提示モジュールに連続的に出力する。
【0021】
なお、目標オーディオ/ビデオデータストリームを含む目標処理要求は、同一モバイル端末のオーディオ/ビデオデータ生成モジュールから直接取得できるだけでなく、ネットワークを介して取得することも可能であり、この場合、オーディオ/ビデオデータ生成モジュールをモバイル端末に備えていなくてもよい。
【0022】
なお、上述した内容で言及されたオーディオ/ビデオデータ生成モジュール、オーディオ/ビデオデータ処理モジュール、処理済みデータ提示モジュールは、あくまでも例示的な機能的モジュールの分け方を示したものにすぎず、必要に応じて分け方を調整することができる。
【0023】
本開示の実施形態に係るオーディオ/ビデオの処理方法のフローチャートである図1を参照する。フロー100は以下のステップを含む。
【0024】
ステップ101では、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得する。
【0025】
本ステップは、オーディオ/ビデオの処理方法の実行主体(例えば、上述したシステムアーキテクチャで言及した、モバイル端末に設けられたオーディオ/ビデオデータ処理モジュール)が、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得することを目的とする。
【0026】
なお、目標オーディオ/ビデオデータストリームを要求に直接含ませるとの形式に加えて、目標オーディオ/ビデオデータストリームが要求に直接含んでいない場合もあり、この場合、目標処理要求は、連続的な目標オーディオ/ビデオデータストリームをどのように入力するかを示し、又は目標オーディオ/ビデオデータストリームをどこから取得するかを上記実行主体に通知する。
【0027】
目標処理要求は、通常、オーディオ/ビデオデータの処理ニーズを有するユーザによって開始されるが、開始方法は、タッチスクリーン上で直接クリックすること、オーディオ指示を出すこと、他の装置を介して上記実行主体へ制御コマンドを転送すること等に限定されることはない。
【0028】
ステップ102では、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定する。
【0029】
ステップ101に基づいて、本ステップは、上記実行主体によって目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定することを目的とする。
【0030】
ここで、本開示に係るオーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントによって構成され、各機能的コンポーネントは、入力データの配分、出力データの回収が予め設定されたデータストリーム配信モジュールによって一括して行われる新規なオーディオ/ビデオパイプラインであって、時系列チェーン上の先に実行される機能的コンポーネントが後に実行される機能的コンポーネントを直接的に呼び出して使う従来のようなオーディオ/ビデオパイプラインとは異なる。
【0031】
ここで、当該データストリーム配信モジュールは具体的にディスパッチャー(Dispatcher)メカニズムに基づいて実現されてもよく、ディスパッチャーメカニズムはイベント配信メカニズムとして理解されてもよく、このメカニズムを具現化する機能モジュールはイベントディスパッチャーと命名してもよく、例えば、Symfony EventDispatcherは、プラグインシステムに適用されシステムとプラグインとが結合されないようにするためのイベントディスパッチャーである。
【0032】
本開示もこのメカニズムを利用して従来のオーディオ/ビデオパイプラインにおける各機能的コンポーネント間の結合を解除するものであり、すなわち、各機能的コンポーネントが自身により処理したオーディオ/ビデオデータをそのデータストリーム配信モジュールに送信し、当該データストリーム配信モジュールが受信したオーディオ/ビデオデータをチェーン上における順番に従って次の機能モジュールに配分するように制御するものであるから、本開示に係るチェーン型パイプラインでは、各機能的コンポーネントが自身の実行すべき動作を確実に実行すればよく、簡単に言えば、各機能的コンポーネントについていうと、了解を必要とせず、データを受信すると処理をして、統合されたデータストリーム配信モジュールに出力すればよく、他の機能的コンポーネントを気にする必要がなく、機能的コンポーネント間のデカップリングが充分に実現された。
【0033】
また、異なるオーディオ/ビデオパイプラインは、往々にして異なる処理目的に対応することが多く、例えば、ビデオ画面のグレースケールへの変換、美顔、ある領域の拡大の目的を実現するために、3つの異なるオーディオ/ビデオパイプラインにそれぞれ対応することができ、異なるオーディオ/ビデオパイプラインごとに異なる処理目的のために、異なる機能的コンポーネントによって構成されることが多い。なお、本ステップでは、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定するために、処理要求にその処理目的を認識しやすいフォーマットで所定のフィールドに記録するようにしてもよい。もちろん、処理要求には、状況に応じて他の情報を記録してもよい。
【0034】
ステップ103では、目標オーディオ/ビデオパイプラインを呼び出して、目標オーディオ/ビデオデータストリームを連続的に処理し、処理後の処理済みオーディオ/ビデオデータストリームを連続的に出力する。
【0035】
ステップ102に基づいて、本ステップは、上記実行主体によって目標オーディオ/ビデオパイプラインを呼び出し、目標オーディオ/ビデオデータストリームを連続的に処理し、目標オーディオ/ビデオパイプラインを介して処理後に連続的に出力された処理済みオーディオ/ビデオデータストリームを、モバイル端末の表示画面、スピーカ等の表示ユニットに伝送することを目的とする。
【0036】
モバイル端末上でオーディオおよびビデオデータをよりうまく処理するために、本開示の実施形態に係るオーディオ/ビデオの処理方法は、オーディオ/ビデオデータストリームを処理するための複数の機能的コンポーネントをチェーン構造になるように配列し、予め設定されたデータストリーム配信モジュールによってチェーン上の各機能的コンポーネントに一括して入力データを配分し、出力データを回収する新規なオーディオ/ビデオパイプライン構築スキームを提供する。当該データストリーム配信モジュールによって提供される一括配信メカニズムを制御することにより、実行時系列上の各機能的コンポーネントをデカップリングすることができ、実行シーケンスが先の機能的コンポーネントによって実行シーケンスが後の機能的コンポーネントを呼び出す必要がなく、機能的コンポーネントは自身のデータ処理に専念すれば足り、オーディオおよびビデオストリームの処理効率を向上させることができるだけでなく、稼働とメンテナンスの複雑さも軽減でき、データストリーム配信モジュールを介して、機能的コンポーネント間のオーディオおよびビデオストリームの流れをより適切に監視することもできる。
【0037】
本開示の上述した実施形態に係る新規なオーディオ/ビデオパイプラインにおける各機能的コンポーネントが、予め設定されたデータストリーム配信モジュールによって入力データの配分、出力データの回収を一括して行うという利点を実現するために、本実施形態では、図2を参照して、データストリーム配信モジュールを借りて実現される非同期処理方案を提供し、当該非同期処理方案により無効なオーディオ/ビデオフレームに対する無駄な処理を回避することができ、画面コンテンツが大きくジャンプする問題を低減することができる。ここで、フロー200は次のステップを含む。
【0038】
ステップ201では、受信したオーディオ/ビデオデータのタイムスタンプを検出するようにデータストリーム配信モジュールを制御する。
【0039】
通常、データストリーム配信モジュールの配信単位はフレームであり、すなわち、毎回に配分したのは1つのオーディオ/ビデオデータフレームであり、各オーディオ/ビデオデータフレームに付加されたタイムスタンプは、当該フレームのオーディオ/ビデオデータの生成時間を表すことができ、これによってオーディオ/ビデオデータの生成済み時間長さが算出される。
【0040】
もちろん、他の配信単位が行うことができる可能性を排除するものではなく、例えば、1秒毎にオーディオ/ビデオフラグメントを配分するようにしてもよい。
【0041】
ステップ202では、タイムスタンプに基づいて、新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されたか否かを判断するようにデータストリーム配信モジュールを制御する。
【0042】
ここで、新オーディオ/ビデオデータと旧オーディオ/ビデオデータとが同じ生成源に対応し、かつ、新オーディオ/ビデオデータの生成済み時間長さが、旧オーディオ/ビデオデータの生成済み時間長さよりも短い。
【0043】
ステップ201に基づいて、本ステップは、上記実行主体は、検出されたタイムスタンプに基づいて、新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されしまった現象が生じたか否かを判断するようにデータストリーム配信モジュールを制御することで、判断結果に応じた処理の分岐を選択することを目的とする。
【0044】
なお、ほとんどの場合、オーディオ/ビデオ処理フレームワークは、ストリーム式のオーディオ/ビデオデータの処理は同期しているもので、すなわち、時間の順序に厳密に従って、処理指示が先に送信されて来たものは必ず先に行われ、後に送信されて来たものは後に行われるようになっているはずであるが、中央処理装置の「ジッタ」またはその他の問題が原因にあるスレッドの実行中におけるバッファリングによる異常の状況が無視されている。このような異常の場合には、遅い方のオーディオ/ビデオフレームが、早い方のオーディオ/ビデオよりも先に同じ機能的コンポーネントによって処理されてしまう可能性があり、例えば、カメラによって10分01秒で撮影されたある第2の画像フレームが、09分58秒で撮影された第1の画像フレームよりも先に階調変換モジュールによって処理された場合である。
【0045】
このような場合、階調変換モジュールにとっては、第2の画像フレームが先に来たものであり、逆に第1の画像フレームが後に来たものであるため、最終的に、ユーザの表示画面に表示された画像コンテンツが、フレームがスキップされおよび巻き戻されるようなことをユーザに感じさせてしまう。
【0046】
このような問題を解決するために、本実施形態では、当該データストリーム配信モジュールを充分に利用してタイムスタンプに基づいて上記のような問題があるか否かを判断し、このような問題があると判定した場合には、より合理的な処理方法を提供する。
【0047】
ステップ203では、未処理の旧オーディオ/ビデオデータを破棄するようにデータストリーム配信モジュールを制御する。
【0048】
本ステップは、ステップ202における新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されたという判断結果に基づいて行われ、「フレームスキップ・巻き戻し」を回避するために、上記実行主体は、旧オーディオ/ビデオデータを配分せずに廃棄するようにデータストリーム配信モジュールを制御する。
【0049】
さらに、画面提示用の連続フレームオーディオ/ビデオデータのタイムスタンプの差が予め設定された時間長さを超えた時、フレームスキップ感をできる限り解消するために、連続フレームオーディオ/ビデオデータに対して画面コンテンツの連続性処理を行うようにしてもよい。
【0050】
ステップ204では、現在のオーディオ/ビデオデータを時系列の順で正常に処理するようにデータストリーム配信モジュールを制御する。
【0051】
本ステップは、ステップ202における新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されたという判断結果が出る度に行われることを基にしているため、上記実行主体は、現在のオーディオ/ビデオデータを時系列の順で正常に処理するようにデータストリーム配信モジュールを制御する。
【0052】
本開示の上記実施形態に係る新規なオーディオ/ビデオパイプラインにおける各機能的コンポーネントの入力データの配分および出力データの回収が予め設定されたデータストリーム配信モジュールによって一括して行われるという利点を具現化するために、本実施形態は、図3に示すように、オーディオ/ビデオストリーム配信モジュールが、各機能的コンポーネント間のオーディオ/ビデオストリームの流れの状況をより明確化することで、各機能的コンポーネントの実稼働状態を確定し、それによって、実稼働状態に基づいて、パイプライン内の精細な調整がよりうまく行われるという効果を実現するための具体的な実現方法を提供する。
【0053】
ステップ301では、各機能的コンポーネントの実稼働状態を確定するようにデータストリーム配信モジュールを制御する。
【0054】
具体的には、データストリーム配信モジュールは、機能的コンポーネントの実稼働状態を複数の方法により判定することが可能であり、例えば、機能的コンポーネントへの入力データの配分と機能的コンポーネントからの出力データの回収の時間差によって実稼働状態を判定したり、機能的コンポーネントでの配分された入力データの蓄積、一時停止によってその実稼働状態を判定したり、出力データの正確性、有効性に対する検証によって実稼働状態を判定したりすることが可能である。
【0055】
実際の状況に応じて、実際の状況に最適な確定方法を選択することができる。
【0056】
ステップ302では、実稼働状態に基づいて、対応する機能的コンポーネントに関連付けられる他の機能的コンポーネントの機能的パラメータを調整するようにデータストリーム配信モジュールを制御する。
【0057】
ステップ301に基づいて、本ステップは、上記実行主体によって、実稼働状態に基づいて、対応する機能的コンポーネントに関連付けられた他の機能的コンポーネントの機能的パラメータを調整するようにデータストリーム配信モジュールを制御することを目的とする。
【0058】
各パイプラインは、そのうちの異なる機能的コンポーネントをチェーン構造になるように配列したものであるため、機能的コンポーネントとの関連付け関係は主にその上流または下流に体現され、関連する調整可能な機能的パラメータは、サンプリングレート、符号化レート、処理効率、解像度、数量などのような処理効率に影響を与える可能性のある様々なパラメータを含んでもよい。
【0059】
さらに、実稼働状態が機能的パラメータの調整上限値を超えた場合(すなわち、ある機能的コンポーネントの実稼働状態が機能的コンポーネントを調整することによっても解決し難いほど悪い場合)には、機能的コンポーネントの異常通知を報告するようにデータストリーム配信モジュールを制御してもよい。それによって、機能的コンポーネントのためのより適格でかつ直接的な修復ポリシーを探し求めることもできる。
【0060】
図4は、図3に示す実施形態に係る処理所要時間に基づいて機能的コンポーネントの稼働状態を確定するための方法のフローチャートであり、そのフロー400は以下のステップを含む。
【0061】
ステップ401では、各機能的コンポーネントへの入力データの配分と、各機能的コンポーネントからの出力データの回収との時間差を計算するようにデータストリーム配信モジュールを制御する。
【0062】
ステップ402では、時間差に基づいて、対応する機能的コンポーネントの実際処理所要時間をそれぞれ確定するようにデータストリーム配信モジュールを制御する。
【0063】
ステップ403では、実際処理所要時間に基づいて、対応する機能的コンポーネントの実稼働状態を確定するようにデータストリーム配信モジュールを制御する。
【0064】
一の実施形態として次のものを含むが、これに限定されるものではない。
【0065】
実際処理所要時間が、同じ機能的コンポーネントに対応する正常な処理所要時間の区間にあるか否かを判断することと、
実際処理所要時間が、同じ機能的コンポーネントに対応する正常な処理所要時間の区間にある場合は、実際処理所要時間に対応する機能的コンポーネントが正常な稼働状態にあると判定するようにデータストリーム配信モジュールを制御することと、
実際処理所要時間が、同じ機能的コンポーネントに対応する正常な処理所要時間の区間に位置していない場合、実際処理所要時間に対応する機能的コンポーネントが異常な稼働状態にあると判定するようにデータストリーム配信モジュールを制御することとを含む。
【0066】
ここで、正常な処理所要時間の区間は、正常な稼働状態にある同じ機能的コンポーネントの履歴処理所要時間の状況に基づいて判定される。
【0067】
なお、上述した実際処理所要時間がある区間に位置しているか否かを判断する方法に加え、判断ステップを簡略化するために、閾値を直接設けてもよい。当該閾値は当該正常な処理所要時間の区間の上限値であってもよいし、他の方法で確定してもよく、ここでは具体的な限定をしない。
【0068】
また、上述した任意の実施形態に加えて、オーディオ/ビデオパイプラインを、実際のニーズに応じて、単一のオーディオ/ビデオパイプラインと複合オーディオ/ビデオパイプラインの2種類または複数の種類に分けてもよい。ここで、複合オーディオ/ビデオパイプラインは、複数の単一のオーディオ/ビデオパイプラインをパッケージ化してなり、このパッケージ化により、呼び出し側により便利な呼び出し動作(すなわち、使いやすさの向上)を提供することが可能であり、例えば、高級美顔機能は、実際に画像の明るさの向上、目の部分の拡大、画像のノイズの除去、画像内容の一部の形状の変更などの人の顔部分の画像に対する複数の異なる画像処理を行うことに関わる。2次パッケージ化を行わない場合、上述した処理項目のそれぞれは、いずれも単一のオーディオ/ビデオパイプラインに対応しており、前後に複数回の呼び出しを必要とし、パッケージ化した後は、対外的に1つの呼び出しインタフェースを提示すればよい。
【0069】
理解を深めるために、本開示はさらに具体的な応用シーンと組み合わせて具体的な実施形態を提供し、図5に示すオーディオ/ビデオ処理フレームワークの構造概略図を参照されたい。
【0070】
本実施形態では、従来のGPUImage(オープンソースの画像処理ライブラリまたは画像処理フレームワーク)の構造を考えることにより、まず、新規なオーディオ/ビデオ処理フレームワークのために、次の目標、すなわち、プロトコルが簡単で、使う際に取っ付きやすく、開発者に優しく、オーディオ/ビデオデータの非同期処理にはサポートし、スケジューリングが安全で、リンク構成が簡単で信頼性があるとの目標を設計した。
【0071】
このような設計目的を達成するために、本実施形態では、チェーン構造を新規なオーディオ/ビデオ処理フレームワークの核心思想とし、その核心思想に基づいて新規なオーディオ/ビデオパイプラインを構築する。
まず、データプロトコルを作成し、基本的な機能的コンポーネント間のデータの効率的かつ安定した伝送を可能にする。図6に示すように、AVOutput(オーディオ/ビデオ出力)モジュールとAVInput(オーディオ/ビデオ入力)モジュールを提供してデータの送受信プロトコルを構築し、このチェーン上の各機能的コンポーネントを記録・管理し、Targetと名付ける。そして、ディスパッチャー(Dispatcher)メカニズムにより、生成側(図6のCamera/media、カメラ/マルチメディア)から報告されたビデオフレームを配信し、各リンクのTargetに連続的に伝送し、各TargetはAVInputにおけるプロトコルを実現する。例えば、frame(フレーム)とtype(タイプ)の2つの関数があり、type関数はいくつかのオーディオ/ビデオにおけるオーディオとビデオを区別するために使用される。
【0072】
そして、いくつかのバイナリシーンの配信をサポートするように設計され、生放送のようなデータ配信要求のあるシーンに合わせていくつかのプロトコルのアップグレードを行った。チェーンの最終端部には、AVControl(オーディオ/ビデオ制御)モジュールが実装され、当該AVControlモジュールには、主にデータの流入と流出をより精細に制御するための制御プロトコルが内蔵されている。連続的に伝送されるオーディオ/ビデオストリームの過程で、あるモジュールに異常が発生した時に、それを保護するメカニズムがないために、SDK全体の動作が不安定になる問題を避けることができる。例えば、ライブシーンの配信時にネットワークのジッタが発見された場合には、当該AVControlモジュールにより送信のレート、速度等を調整することができる。
【0073】
また、実際のニーズに合わせて二次パッケージ化によるミドルウェアを設計した:
これは、単一のオーディオ/ビデオパイプラインを簡単に設計しただけでは、業務シーンの開発の助けにならないことが分かったためである。個々のモジュールデータ間の伝送の問題を解決しただけで、最終製品のシーン開発、着地に対してすべての問題を解決できるわけではない。シーンはモジュールとは大きく異なっており、一般に知られているオンデマンド、生放送、さらには特殊効果など、これらのものは実はすべて汎用性のある能力である。しかし、実際のシーンは各モジュール間の組合せにまで関わっているため、1つのデータを伝送したからといって1つのシーンを連結することができるということはできない。
【0074】
例えば、オンデマンドの画質最適化では、タイプの切り替えはそれほどスムーズでなく簡単ではないことが分かる。ボイスチャットのシーンでは、如何にして製品が簡単に使えるようにすることは非常に重要になる。顔の特殊効果の場合、例えば、機能の多様化に関して、互換性を如何に実現するなど、これらのことはデータリンクまたはモジュールの搭載だけでは解決できるものではない。そこで、本実施形態では、オーディオ/ビデオデータをブリッジすることによりリソースを共有するミドルウェア(上記実施形態で説明した複合オーディオ/ビデオパイプラインに相当)の概念を言及し、すなわち、各モジュールまたは業務の出力もしくは使用に際して、データの全体的な採集または処理の適用性を高めることができる。この部分は主に実際の応用レベルの組み合わせに用いられる。
【0075】
具体的な動作を、図7に示す高級美顔機能を実現するための特殊効果ミドルウェアを例に挙げて説明する。
【0076】
特殊効果モジュールは、典型的なPaaS(Platform as a Serviceの略語、プラットフォーム、すなわちサービス)構造であり、その上には複数のモデルが存在し、モデル間の挿抜が可能になっている。特殊効果モジュールのもう一つの特徴として、リソースを消費することである。
【0077】
本実施形態は、オーディオ/ビデオSDKにおいてこのモジュールをよりうまく運用し、外部へ対応する機能を提供する方法は次の通りである。
【0078】
人間の顔の特殊効果としての高級美顔インタフェースを例にとると、高級美顔には、目を大きくしたり、顔、あごなどを痩せるようにみせたりするなどのように特徴点が非常に多く含まれ、しかもこれらの特徴点は1回の反復または1つのモデルで解決できるものではなく、複数回の反復または複数のモデルの組み合わせに係る可能性がある。このようにすると、特殊効果モジュールを統合する際に、これらの機能がいずれも絶えず変化するものであると、モジュールの使用に対して安全性が低く不安定な要素が存在するという問題がある。
【0079】
まず、機能を呼び出す際に、直接的に呼び出しを行うのではなく、これらの機能を抽象化してパッケージ化し、これらのパッケージ化のモデルは、後続のいくつかの異なるアルゴリズムの関連付けに用いられる。実際にユーザがSDKを使用する際、必ずしもすべてのものを統合するとは限らないので、そのうちの一部の機能のみを使用する可能性があり、そのため、いくつかの特殊効果のSDKのバージョンが一致しない可能性がある。このプロキシ層がなければ、バージョンの不一致が発生した場合、上位層にとっては大量のインタフェースの調整および修正が現れる可能性があり、時間と労力を費やすことになる。
【0080】
データパイプラインから見ることができるように、記録モジュールからEffectインタフェースにデータを伝送し、さらにAR SDK(拡張現実のためのソフトウェア開発キット)にデータを伝送する場合、AR SDKごとに1つの処理検出機能を有し、メインスクリーンの指標などを定期的に検出し、この処理検出機能によってフレームごとの処理とリンク全体の安定性が確保される。ここで、UpDateモジュールは、新たに伝送されて来た画像データを連続的に受信するためのモジュールであり、Callbackモジュールは、上記の実施形態で記述した、新画像フレームが旧画像フレームよりも先に処理されているか否かの判断と廃棄動作を実現し、非同期制御を実現するためのモジュールである。
【0081】
すなわち、いくつかの性能指標の監視を連続的に行い、これらの指標の監視の結果は連続的に上位層の呼び出しにフィードバックする必要がある。例えば、現在のデータ伝送の速度が速いかまたは伝送フレーム数が多すぎて処理し切れない場合などには、データパイプラインを介して回送し、制御を行うことができる。さらに、記録モジュールが採集するフレームレートなどを調整して、データを記録モジュールに戻し、記録モジュールはデータを他のモジュールに転送して、プレビューのようにレンダリングすることができる。データパイプラインとプロキシの組み合わせによって、異なるARバージョンと機能をうまく整合でき、外部に対してインタフェースの統一性を保つことができる。
【0082】
本実施形態は、自身のデータパイプラインの機能を開放することにより、ユーザはより安定的(同期処理方案に非同期処理方案を追加して実現する)、効率的な方法でデータパイプラインに統合して機能を実現することができる。また、オープンソース製品と比較して、より簡潔で分かりやすいアクセス方案を提供でき、ユーザの実装とメンテナンスのコストも相対的に減少させることができる。次に、オープンソースのデータパイプラインにとって、本実施形態は制御インタフェースを導入したことで、パイプラインにおけるデータの流れの制御がより便利にすることができ、下位層のインタフェースからモジュール間のデータの流れを制御して、より多くの可能な業務設計をユーザに提供することができる。最後に、データパイプラインは一部のパッケージ化ミドルウェアのベストプラクティスを提供して、モジュール間のデータがスムーズに流れるようにすることのユーザへの助けになり、これらのミドルウェアは繰り返し検証されており、品質と性能がいずれも制御可能で、ユーザの二次開発のコストを低減させることができる。
【0083】
更に図7を参照すると、上記の各図に示された方法の実施態様として、本開示は、オーディオ/ビデオの処理装置の一実施形態を提供し、当該装置の実施形態は、図1に示された方法の実施形態に対応しており、当該装置は、具体的に様々な電子機器に適用することができる。
【0084】
図7に示すように、本実施形態のオーディオ/ビデオの処理装置700は、要求取得ユニット701と、目標パイプライン確定ユニット702と、目標パイプライン呼び出し・出力返送ユニット703とを備えてもよい。要求取得ユニット701は、目標オーディオ/ビデオデータストリームを含む目標処理要求を取得するように構成される。目標パイプライン確定ユニット702は、目標処理要求に対応する目標オーディオ/ビデオパイプラインを確定するように構成される。オーディオ/ビデオパイプラインは、チェーン構造になるように配列された複数の機能的コンポーネントによって構成され、各機能的コンポーネントは、入力データの配分、出力データの回収が、予め設定されたデータストリーム配信モジュールによって一括して実行される。目標パイプライン呼び出し・出力返送ユニット703は、目標オーディオ/ビデオパイプラインを呼び出して、目標オーディオ/ビデオデータストリームを連続的に処理し、処理後に得られた処理済みオーディオ/ビデオデータストリームを連続的に出力するように構成される。
【0085】
本実施形態において、オーディオ/ビデオの処理装置700において、要求取得ユニット701、目標パイプライン確定ユニット702、目標パイプライン呼び出し・出力返送ユニット703の具体的な処理及びそれらによって奏される技術的効果は、それぞれ図1の対応する実施形態におけるステップ201~ステップ203の関連する説明を参照することができ、ここではその説明を省略する。
【0086】
本実施形態のいくつかのオプション的な実施形態において、オーディオ/ビデオの処理装置700は、さらに
受信したオーディオ/ビデオデータのタイムスタンプを検出するようにデータストリーム配信モジュールを制御するように構成されるタイムスタンプ検出ユニットと、
タイムスタンプに基づいて、新オーディオ/ビデオデータが旧オーディオ/ビデオデータよりも先に処理されたと判断したことに応答して、未処理の旧オーディオ/ビデオデータを破棄するように構成される非同期処理ユニットであって、新オーディオ/ビデオデータと旧オーディオ/ビデオデータとが同じ生成源に対応し、かつ、新オーディオ/ビデオデータの生成済み時間長さが、旧オーディオ/ビデオデータの生成済み時間長さよりも短い、非同期処理ユニットと、を備えてもよい。
【0087】
本実施形態のいくつかのオプション的な実施形態において、オーディオ/ビデオの処理装置700は、さらに
画面提示用の連続フレームオーディオ/ビデオデータのタイムスタンプ差が予め設定された時間長さを超えたことに応答して、連続フレームのオーディオ/ビデオデータに対して画面コンテンツの連続性処理を行うように構成される連続性処理ユニットをさらに備えてもよい。
【0088】
本実施形態のいくつかのオプション的な実施形態において、オーディオ/ビデオの処理装置700は、さらに
各機能的コンポーネントの実稼働状態を確定するようにデータストリーム配信モジュールを制御するように構成されるコンポーネント稼働状態確定ユニットと、
実稼働状態に基づいて、対応する機能的コンポーネントに関連付けられた他の機能的コンポーネントの機能的パラメータを調整するようにデータストリーム配信モジュールを制御するように構成される機能的パラメータ調整ユニットと、を備えてもよい。
【0089】
本実施形態のいくつかのオプション的な実施形態において、機能的パラメータ調整ユニットは、
各機能的コンポーネントへの入力データの配分と、各機能的コンポーネントからの出力データの回収との時間差を計算するようにデータストリーム配信モジュールを制御ように構成される時間差計算サブユニットと、
時間差に基づいて対応する機能的コンポーネントの実際処理所要時間をそれぞれ確定するようにデータストリーム配信モジュールを制御するように構成される実際処理所要時間確定サブユニットと、
実際処理所要時間に基づいて、対応する機能的コンポーネントの実稼働状態を確定するように構成される実稼働状態確定サブユニットとを備える。
【0090】
本実施形態のいくつかのオプション的な実施形態において、実稼働状態確定サブユニットは、さらに
実際処理所要時間が同じ機能的コンポーネントに対応する正常な処理所要時間の区間にあることに応答して、実際処理所要時間に対応する機能的コンポーネントが正常な稼働状態にあることを確定するようにデータストリーム配信モジュールを制御することであって、正常な処理所要時間の区間は、正常な稼働状態にあると判定された同じ機能的コンポーネントの履歴処理時間の状況に基づいて確定されることと、
実際処理所要時間が、同じ機能的コンポーネントに対応する正常な処理所要時間の区間に位置していない場合、実際処理所要時間に対応する機能的コンポーネントが異常な稼働状態にあると判定するようにデータストリーム配信モジュールを制御することとを行うように構成される。
【0091】
本実施形態のいくつかのオプション的な実施形態において、オーディオ/ビデオの処理装置700は、
実稼働状態が機能的パラメータの調整上限値を超えたことに応答して、機能的コンポーネントの異常通知を報告するようにデータストリーム配信モジュールを制御するように構成される異常通知報告ユニットをさらに備えてもよい。
【0092】
本実施形態のいくつかのオプション的な実施形態において、目標オーディオ/ビデオパイプラインは、単一のオーディオ/ビデオパイプラインと、複数の単一のオーディオ/ビデオパイプラインをパッケージ化した複合オーディオ/ビデオパイプラインとを含む。
【0093】
本実施形態は、上述した方法の実施形態に対応する装置の実施形態として存在する。
【0094】
モバイル端末上でオーディオおよびビデオデータをよりうまく処理するために、本開示の実施形態に係るオーディオ/ビデオの処理方法は、上記の各機能的コンポーネントにより、オーディオ/ビデオデータストリームを処理するための複数の機能的コンポーネントをチェーン構造になるように配列し、予め設定されたデータストリーム配信モジュールによってチェーン上の各機能的コンポーネントに一括して入力データを配分し、出力データを回収する新規なオーディオ/ビデオパイプライン構築スキームを提供する。当該データストリーム配信モジュールによって提供された一括配信メカニズムを制御することにより、実行時系列上の各機能的コンポーネントをデカップリングすることができ、実行シーケンスが先の機能的コンポーネントによって実行シーケンスが後の機能的コンポーネントを呼び出す必要がなく、機能的コンポーネントは自身のデータ処理に専念すれば足り、オーディオおよびビデオストリームの処理効率を向上させることができるだけでなく、稼働とメンテナンスの複雑さも軽減され、データストリーム配信モジュールを介して、各機能的コンポーネント間のオーディオおよびビデオストリームの流れをより適切に監視することもできる。
【0095】
本開示の実施形態によれば、本開示はさらに、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと通信可能に接続されたメモリとを備える電子機器であって、メモリには、少なくとも1つのプロセッサによって実行可能な指令が格納され、当該指令が少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに上記のいずれかの実施形態に記載のオーディオ/ビデオの処理方法を実現する電子機器を提供する。
【0096】
本開示の実施形態によれば、本開示はさらに、上記のいずれかの実施形態に記載のオーディオ/ビデオの処理方法をコンピュータに実行させるためのコンピュータ指令を格納した読み取り可能な記憶媒体を提供する。
【0097】
本開示の実施形態は、プロセッサによって実行されると、上記のいずれかの実施形態に記載のオーディオ/ビデオの処理方法を実現可能なコンピュータプログラムを提供する。
【0098】
図8は、本開示の実施形態を実施するために使用できる例示的な電子機器800の概略ブロック図を示している。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレード型サーバ、メインフレームコンピュータおよびその他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表す。また、電子機器は、個人デジタル処理、携帯電話、スマートフォン、ウェアラブル機器およびその他の類似する計算装置等の様々な形態のモバイルデバイスを表すことができる。なお、ここで示したコンポーネント、それらの接続関係、およびそれらの機能はあくまでも例示であり、ここで記述および/または要求した本開示の実施形態を限定することを意図するものではない。
【0099】
図8に示すように、電子機器800は、読み出し専用メモリ(ROM)802に記憶されているコンピュータプログラム又は記憶ユニット808からランダムアクセスメモリ(RAM)803にロードされたコンピュータプログラムによって様々な適当な動作および処理を実行することができる計算ユニット801を備える。RAM803には、機器800の動作に必要な様々なプログラムおよびデータがさらに格納されることが可能である。計算ユニット801、ROM802およびRAM803は、バス804を介して互いに接続されている。入/出力(I/O)インタフェース805もバス804に接続されている。
【0100】
電子機器800において、キーボード、マウスなどのような入力ユニット806と、様々なタイプのディスプレイ、スピーカなどのような出力ユニット807と、磁気ディスク、光ディスクなどのような記憶ユニット808と、ネットワークカード、モデム、無線通信送受信機などのような通信ユニット809とを備える複数のコンポーネントは、I/Oインタフェース805に接続されている。通信ユニット809は、機器800がインターネットなどのコンピュータネットワークおよび/または様々な電気通信ネットワークを介して他の装置と情報またはデータのやりとりを可能にする。
【0101】
計算ユニット801は、処理および計算機能を有する様々な汎用および/または専用処理コンポーネントであってもよい。計算ユニット801のいくつかの例示としては、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、様々な専用人工知能(AI)計算チップ、機械学習モデルアルゴリズムを実行する様々な計算ユニット、デジタル信号プロセッサ(DSP)、および任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット801は、上述したオーディオ/ビデオの処理方法のような様々な方法および処理を実行する。例えば、いくつかの実施形態では、オーディオ/ビデオの処理方法は、記憶ユニット808などの機械可読媒体に有形に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施形態では、コンピュータプログラムの一部または全部は、ROM802および/または通信ユニット809を介して機器800にロードおよび/またはインストールされてもよい。コンピュータプログラムがRAM803にロードされ、計算ユニット801によって実行されると、上述のオーディオ/ビデオの処理方法の1つまたは複数のステップを実行可能である。あるいは、他の実施形態では、計算ユニット801は、他の任意の適切な方式によって(例えば、ファームウェアを介して)オーディオ/ビデオの処理方法を実行するように構成されていてもよい。
【0102】
ここで説明したシステムおよび技術の様々な実施形態はデジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/又はそれらの組み合わせにおいて実現することができる。これらの各実施形態は、1つまたは複数のコンピュータプログラムに実装され、当該1つまたは複数のコンピュータプログラムは少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムにおいて実行および/または解釈することができ、当該プログラマブルプロセッサは専用または汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも1つの入力装置および少なくとも1つの出力装置からデータおよび指令を受信することができ、且つデータおよび指令を当該記憶システム、当該少なくとも1つの入力装置および当該少なくとも1つの出力装置に伝送することを含み得る。
【0103】
本開示の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語のあらゆる組み合わせで作成することができる。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、または他のプログラミング可能なデータ処理装置のプロセッサまたはコントローラに提供されることができ、これらのプログラムコードがプロセッサまたはコントローラによって実行されると、フローチャートおよび/またはブロック図に規定された機能または動作が実施される。プログラムコードは、完全にデバイス上で実行されることも、部分的にデバイス上で実行されることも、スタンドアロンソフトウェアパッケージとして部分的にデバイス上で実行されながら部分的にリモートデバイス上で実行されることも、または完全にリモートデバイスもしくはサーバ上で実行されることも可能である。
【0104】
本開示のコンテキストでは、機械可読媒体は、有形の媒体であってもよく、指令実行システム、装置またはデバイスが使用するため、または指令実行システム、装置またはデバイスと組み合わせて使用するためのプログラムを含むか、または格納することができる。機械可読媒体は、機械可読信号媒体または機械可読記憶媒体であり得る。機械可読媒体は、電子的、磁気的、光学的、電磁的、赤外線の、または半導体のシステム、装置または機器、またはこれらのあらゆる適切な組み合わせを含むことができるが、これらに限定されない。機械可読記憶媒体のより具体的な例には、1本または複数本のケーブルに基づく電気的接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、またはこれらのあらゆる適切な組み合わせが含まれ得る。
【0105】
ユーザとのインタラクションを提供するために、ここで説明するシステムと技術は、ユーザに情報を表示するための表示装置(例えば、陰極線管(CathodeRayTube,CRT)またはLCD(液晶ディスプレイ)モニタ)と、キーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを備えるコンピュータ上で実装することができ、ユーザが該キーボードおよび該ポインティングデバイスを介してコンピュータに入力を提供できる。他の種類の装置は、さらにユーザとのインタラクションを提供することに用いることができる。例えば、ユーザに提供されるフィードバックは(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであるいかなる形態のセンシングフィードバックであってもよく)、且つ音入力、オーディオ入力又は、触覚入力を含むいかなる形態でユーザからの入力を受信してもよい。
【0106】
ここで説明したシステムおよび技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバ)に実施されてもよく、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)に実施されてもよく、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ)に実施されてもよく、ユーザは該グラフィカルユーザインタフェース又はウェブブラウザを介してここで説明したシステムおよび技術の実施形態とインタラクションしてもよく、又はこのようなバックエンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントのいずれかの組み合わせを含むコンピューティングシステムに実施されてもよい。また、システムの各コンポーネントの間は、通信ネットワーク等、任意の形態または媒体のデジタルデータ通信により接続されていてもよい。通信ネットワークの例示としては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)およびインターネットを含む。
【0107】
コンピュータシステムは、クライアントとサーバとを含んでもよい。クライアントとサーバは、通常、互いに離れており、通信ネットワークを介してやりとりを行う。クライアントとサーバとの関係は、互いにクライアント-サーバの関係を有するコンピュータプログラムをそれぞれのコンピュータ上で動作することによって生成される。サーバはクラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムにおけるホスト製品であり、従来の物理ホストと仮想専用サーバ(VPS、Virtual Private Server)サービスにおける管理の難度が大きく、業務拡張性が弱いという欠陥を解決する。
【0108】
モバイル端末上でオーディオおよびビデオデータをよりうまく処理するために、本開示の実施形態は、オーディオ/ビデオデータストリームを処理するための複数の機能的コンポーネントをチェーン構造になるように配列し、予め設定されたデータストリーム配信モジュールによってチェーン上の各機能的コンポーネントに一括して入力データを配分し、出力データを回収する新規なオーディオ/ビデオパイプライン構築スキームを提供する。当該データストリーム配信モジュールによって提供される統合配信メカニズムを制御することにより、実行時系列上の各機能的コンポーネントをデカップリングすることができ、実行シーケンスが先の機能的コンポーネントによって実行シーケンスが後の機能的コンポーネントを呼び出す必要がなく、機能的コンポーネントは自身のデータ処理に専念すれば足り、オーディオおよびビデオストリームの処理効率を向上させることができるだけでなく、稼働とメンテナンスの複雑さも軽減され、データストリーム配信モジュールを介して、機能的コンポーネント間のオーディオおよびビデオストリームの流れをより適切に監視することもできる。
【0109】
なお、上述した様々な形態のフローを用いて、ステップを並び替え、追加または削除を行うことができることを理解すべきである。例えば、本開示に記載された各ステップは、本開示に開示された技術方案の所望の結果が達成できる限り、並行して実行されてもよく、順番に実行されてもよく、異なる順番で実行されてもよい。本明細書はここでは制限しない。
【0110】
上記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件および他の要因に応じて、様々な修正、組み合わせ、副次的な組み合わせ、および置換を行うことができることを理解すべきである。本開示の趣旨および原理を逸脱せずに行われたあらゆる修正、均等な置換および改善などは、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6
図7
図8
【外国語明細書】