JP2023532741A - カメラ使用方法、電子デバイス、およびカメラ - Google Patents

カメラ使用方法、電子デバイス、およびカメラ Download PDF

Info

Publication number
JP2023532741A
JP2023532741A JP2022581629A JP2022581629A JP2023532741A JP 2023532741 A JP2023532741 A JP 2023532741A JP 2022581629 A JP2022581629 A JP 2022581629A JP 2022581629 A JP2022581629 A JP 2022581629A JP 2023532741 A JP2023532741 A JP 2023532741A
Authority
JP
Japan
Prior art keywords
type
module
application
message
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022581629A
Other languages
English (en)
Other versions
JP7515638B2 (ja
Inventor
▲新▼功 ▲張▼
斐 ▲呂▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2023532741A publication Critical patent/JP2023532741A/ja
Application granted granted Critical
Publication of JP7515638B2 publication Critical patent/JP7515638B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/617Upgrading or updating of programs or applications for camera control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Studio Devices (AREA)
  • Telephone Function (AREA)

Abstract

本出願は、カメラ使用方法、電子デバイス、およびカメラに関する。第1のインターフェースを介して電子デバイスに接続されたカメラは、プロセッサと、メモリと、メモリに記憶されたコンピュータプログラムとを含む。コンピュータプログラムがプロセッサによって実行されると、カメラは、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信する動作と、第1のメッセージに対応するタイプが第1のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力する動作と、第1のメッセージに対応するタイプが第2のタイプであることが検出された場合、第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力する動作と、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信する動作と、第2のメッセージに対応するタイプが第1のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第3の処理結果を出力する動作とを実行する。本出願では、複数のアプリケーションおよび/または複数の機能によるカメラの使用を実装して、ユーザ体験を向上させることができる。

Description

本出願は、2020年6月30日に中国国家知識産権局に出願された「CAMERA USE METHOD,ELECTRONIC DEVICE,AND CAMERA」と題する中国特許出願第202010618161.2号の優先権を主張するものであり、その全体が参照により本明細書に組み込まれる。
本出願は、電子デバイス制御の分野に関し、特に、カメラ使用方法、電子デバイス、およびカメラに関する。
電子デバイスのカメラは、別の電子デバイスによって遠隔で使用され、対応する機能を実装することができる。例えば、遠隔ハウスキーピングアプリケーションがモバイルデバイスおよび大型スクリーンの両方にインストールされた後、大型スクリーンのカメラは、遠隔ハウスキーピング機能を実装するために、遠隔ハウスキーピングアプリケーションを使用することによってモバイルデバイスによって遠隔で使用することができる。しかしながら、上述した遠隔使用処理では、電子デバイスのカメラは、1つのアプリケーションのみによって排他的に使用することができる。この場合、別のアプリケーションがカメラを使用する必要がある場合、別のアプリケーションは、現在のアプリケーションが終了した後にのみカメラを使用することができる。そのため、複数のアプリケーションでカメラをどのように使用するかが課題となる。
前述の技術的問題を解決するために、本出願は、カメラ使用方法、電子デバイス、およびカメラを提供する。この方法では、遠隔使用プロセスにおいて、電子デバイスのカメラを少なくとも2つのアプリケーションによって使用することができ、またはさらにカメラを少なくとも2つのアプリケーションによって同時に使用することができる。これにより、使用効率が向上し、ユーザ体験が向上する。
第1の態様によれば、カメラが提供される。カメラは、第1のインターフェースを介して電子デバイスに接続され、カメラは、1つ以上のプロセッサと、メモリと、1つ以上のコンピュータプログラムとを含む。前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記カメラは、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、前記第1のメッセージに応答して、前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、を実行することが可能になる。別のアプリケーションサブ機能は、1つのアプリケーションの別のサブ機能であってもよく、または別のアプリケーションのサブ機能であってもよい。このようにして、カメラは、1つのインターフェースを介して電子デバイスに接続され、カメラは、少なくとも2つのアプリケーション、少なくとも1つのアプリケーション+1つのアプリケーションサブ機能、および少なくとも2つのアプリケーションサブ機能の使用要求を満たすために、アプリケーションタイプに基づく動的使用方法を実装することができる。カメラの内部アーキテクチャを変更することなく、カメラの排他的使用問題を解決する。これにより、使用効率が向上し、ユーザ体験が向上する。
第1の態様によれば、前記カメラは、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップをさらに実行する。このようにして、別のアプリケーションまたは別のアプリケーションサブ機能がカメラを使用するときの第2のタイプのメッセージの処理方式が提供される。
第1の態様または第1の態様の実装形態のいずれか1つによれば、カメラは、第1のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップと、第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップであって、第3のタイプは、第1のタイプ+第2のタイプである、ステップと、第2のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第3の処理結果を出力するステップと、前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、をさらに実行する。このようにして、1つのアプリケーションまたは1つのアプリケーションサブ機能がカメラを使用するときの第3のタイプのメッセージの処理方式と、別のアプリケーションまたは別のアプリケーションサブ機能がカメラを使用するときの第3のタイプのメッセージの処理方式とが提供される。
第1の態様または第1の態様の実装形態のいずれか1つによれば、カメラは、1つ以上のセンサモジュールと、ビデオ入力モジュールと、ビデオ処理サブシステムモジュールと、人工知能モジュールと、ビデオエンコーディングモジュールと、ビデオグラフィックスシステムモジュールとをさらに含む。センサモジュールは、画像を収集し、収集された画像をビデオ入力モジュールに出力するように構成される。ビデオ入力モジュールは、センサモジュールによって収集された画像を前処理するように構成される。ビデオ処理サブシステムモジュールは、ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を実行するように構成される。人工知能モジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、第1のインターフェースを介して第1のメッセージタイプの人工知能イベントを出力するように構成される。ビデオグラフィックスシステムモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対してズーム処理を実行し、ズーム処理によって取得された画像をビデオエンコーディングモジュールに出力するように構成される。ビデオエンコーディングモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像またはビデオグラフィックスシステムモジュールによるズーム処理によって取得された画像をエンコーディングしてビデオストリームを生成し、第1のインターフェースを介して第2のメッセージタイプのビデオストリームを出力するように構成される。このようにして、カメラの特定のアーキテクチャが提供される。
第1の態様または第1の態様の実装形態のうちのいずれか1つによれば、前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む。このようにして、カメラの特定のアーキテクチャに基づいて異なる経路が提供される。
第1の態様または第1の態様の実装形態のうちのいずれか1つによれば、第1のタイプは、人工知能タイプであり、第2のタイプは、ビデオストリームタイプであり、第3のタイプは、人工知能タイプ+ビデオストリームタイプであり、第1のメッセージタイプは、Socketメッセージタイプであり、第2のメッセージタイプは、UVCメッセージタイプであり、第1のインターフェースは、USBインターフェースである。このようにして、特定のタイプ、特定のメッセージタイプ、および特定のインターフェースが提供される。
第2の態様によれば、カメラが提供される。カメラは、第1のインターフェースおよび第2のインターフェースを介して電子デバイスに接続され、カメラは、1つ以上のプロセッサ、メモリ、および1つ以上のコンピュータプログラムを含む。前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記カメラは、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、前記第1のメッセージに応答して、前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第2のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、を実行することが可能になる。別のアプリケーションサブ機能は、1つのアプリケーションの別のサブ機能であってもよく、または別のアプリケーションのサブ機能であってもよい。このようにして、カメラは、2つのインターフェースを介して電子デバイスに接続され、カメラは、少なくとも2つのアプリケーション、少なくとも1つのアプリケーション+1つのアプリケーションサブ機能、および少なくとも2つのアプリケーションサブ機能の使用要求を満たすために、アプリケーションタイプに基づく動的使用方法を実装することができる。カメラの内部アーキテクチャを変更することなく、カメラの排他的使用問題を解決する。これにより、使用効率が向上し、ユーザ体験が向上する。
第2の態様によれば、前記カメラは、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップをさらに実行する。このようにして、別のアプリケーションまたは別のアプリケーションサブ機能がカメラを使用するときの第2のタイプのメッセージの処理方式が提供される。
第2の態様または第2の態様の実装形態のいずれか1つによれば、カメラは、第1のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップと、第2のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップであって、第3のタイプは、第1のタイプ+第2のタイプである、ステップと、第2のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第3の処理結果を出力するステップと、前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、をさらに実行する。このようにして、1つのアプリケーションまたは1つのアプリケーションサブ機能がカメラを使用するときの第3のタイプのメッセージの処理方式と、別のアプリケーションまたは別のアプリケーションサブ機能がカメラを使用するときの第3のタイプのメッセージの処理方式とが提供される。
第2の態様または第2の態様の実装形態のいずれか1つによれば、カメラは、1つ以上のセンサモジュールと、ビデオ入力モジュールと、ビデオ処理サブシステムモジュールと、人工知能モジュールと、ビデオエンコーディングモジュールと、ビデオグラフィックスシステムモジュールとをさらに含む。センサモジュールは、画像を収集し、収集された画像をビデオ入力モジュールに出力するように構成される。ビデオ入力モジュールは、センサモジュールによって収集された画像を前処理するように構成される。ビデオ処理サブシステムモジュールは、ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を実行するように構成される。人工知能モジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、第1のインターフェースを介して第1のメッセージタイプの人工知能イベントを出力するように構成される。ビデオグラフィックスシステムモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対してズーム処理を実行し、ズーム処理によって取得された画像をビデオエンコーディングモジュールに出力するように構成される。ビデオエンコーディングモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像またはビデオグラフィックスシステムモジュールによるズーム処理によって取得された画像をエンコーディングしてビデオストリームを生成し、第2のインターフェースを介して第2のメッセージタイプのビデオストリームを出力するように構成される。このようにして、カメラの特定のアーキテクチャが提供される。
第2の態様または第2の態様の実装形態のうちのいずれか1つによれば、前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む。このようにして、カメラの特定のアーキテクチャに基づいて異なる経路が提供される。
第2の態様または第2の態様の実装形態のうちのいずれか1つによれば、前記第1のタイプは、人工知能タイプであり、前記第2のタイプは、ビデオストリームタイプであり、前記第3のタイプは、前記人工知能タイプ+前記ビデオストリームタイプであり、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである。このようにして、特定のタイプ、特定のメッセージタイプ、および特定のインターフェースが提供される。
第3の態様によれば、カメラ使用方法が提供される。本方法はカメラに適用され、カメラは第1のインターフェースを介して電子デバイスに接続される。方法は、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、前記第1のメッセージに応答して、前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、を含む。
第3の態様によれば、前記方法は、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップをさらに含む。
第3の態様または第3の態様の実装形態のうちのいずれか1つによれば、方法は、第1のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップと、第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップであって、第3のタイプは、第1のタイプ+第2のタイプである、ステップと、第2のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第3の処理結果を出力するステップと、前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、をさらに含む。
第3の態様または第3の態様の実装形態のうちのいずれか1つによれば、カメラは、1つ以上のセンサモジュールと、ビデオ入力モジュールと、ビデオ処理サブシステムモジュールと、人工知能モジュールと、ビデオエンコーディングモジュールと、ビデオグラフィックスシステムモジュールとを含む。センサモジュールは、画像を収集し、収集された画像をビデオ入力モジュールに出力するように構成される。ビデオ入力モジュールは、センサモジュールによって収集された画像を前処理するように構成される。ビデオ処理サブシステムモジュールは、ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を実行するように構成される。人工知能モジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、第1のインターフェースを介して第1のメッセージタイプの人工知能イベントを出力するように構成される。ビデオグラフィックスシステムモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対してズーム処理を実行し、ズーム処理によって取得された画像をビデオエンコーディングモジュールに出力するように構成される。ビデオエンコーディングモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像またはビデオグラフィックスシステムモジュールによるズーム処理によって取得された画像をエンコーディングしてビデオストリームを生成し、第1のインターフェースを介して第2のメッセージタイプのビデオストリームを出力するように構成される。
第3の態様または第3の態様の実装形態のうちのいずれか1つによれば、前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む。
第3の態様または第3の態様の実装形態のうちのいずれか1つによれば、第1のタイプは、人工知能タイプであり、第2のタイプは、ビデオストリームタイプであり、第3のタイプは、人工知能タイプ+ビデオストリームタイプであり、第1のメッセージタイプは、Socketメッセージタイプであり、第2のメッセージタイプは、UVCメッセージタイプであり、第1のインターフェースは、USBインターフェースである。
第3の態様および第3の態様の実装形態のいずれか1つは、それぞれ第1の態様および第1の態様の実装形態のいずれか1つに対応する。第3の態様および第3の態様の実装形態のいずれか1つに対応する技術的効果については、第1の態様および第1の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
第4の態様によれば、カメラ使用方法が提供される。本方法はカメラに適用され、カメラは第1のインターフェースおよび第2のインターフェースを介して電子デバイスに接続される。方法は、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、前記第1のメッセージに応答して、前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第2のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、を含む。
第4の態様によれば、前記方法は、前記第2のメッセージに応答して、前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップをさらに含む。
第4の態様または第4の態様の実装形態のうちのいずれか1つによれば、方法は、第1のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップと、第2のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップであって、第3のタイプは、第1のタイプ+第2のタイプである、ステップと、第2のメッセージに応答して、別のアプリケーションIDまたは別のアプリケーションサブ機能IDに対応するタイプが第3のタイプであることが検出された場合、第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第3の処理結果を出力するステップと、前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、をさらに含む。
第4の態様または第4の態様の実装形態のうちのいずれか1つによれば、カメラは、1つ以上のセンサモジュールと、ビデオ入力モジュールと、ビデオ処理サブシステムモジュールと、人工知能モジュールと、ビデオエンコーディングモジュールと、ビデオグラフィックスシステムモジュールとを含む。センサモジュールは、画像を収集し、収集された画像をビデオ入力モジュールに出力するように構成される。ビデオ入力モジュールは、センサモジュールによって収集された画像を前処理するように構成される。ビデオ処理サブシステムモジュールは、ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を実行するように構成される。人工知能モジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、第1のインターフェースを介して第1のメッセージタイプの人工知能イベントを出力するように構成される。ビデオグラフィックスシステムモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像に対してズーム処理を実行し、ズーム処理によって取得された画像をビデオエンコーディングモジュールに出力するように構成される。ビデオエンコーディングモジュールは、ビデオ処理サブシステムモジュールによる処理によって取得された画像またはビデオグラフィックスシステムモジュールによるズーム処理によって取得された画像をエンコーディングしてビデオストリームを生成し、第2のインターフェースを介して第2のメッセージタイプのビデオストリームを出力するように構成される。
第4の態様または第4の態様の実装形態のうちのいずれか1つによれば、前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む。
第4の態様または第4の態様の実装形態のうちのいずれか1つによれば、前記第1のタイプは、人工知能タイプであり、前記第2のタイプは、ビデオストリームタイプであり、前記第3のタイプは、前記人工知能タイプ+前記ビデオストリームタイプであり、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである。
第4の態様および第4の態様の実装形態のいずれか1つは、それぞれ第2の態様および第2の態様の実装形態のいずれか1つに対応する。第4の態様および第4の態様の実装形態のいずれか1つに対応する技術的効果については、第2の態様および第2の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
第5の態様によれば、電子デバイスが提供される。電子デバイスは、第1のインターフェースを介してカメラに接続され、電子デバイスは、1つ以上のプロセッサ、メモリ、および1つ以上のコンピュータプログラムを含む。前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記電子デバイスは、前記カメラに関連付けられたアプリケーションが開始されたことを検出した場合、またはアプリケーションのアプリケーションサブ機能が開始されたことを検出した場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または前記第1のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、前記カメラに関連付けられた別のアプリケーションが開始されたことを検出した場合、または別のアプリケーションサブ機能が有効にされたことを検出した場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または前記第1のインターフェースを介して前記第2のメッセージタイプの第4の処理結果を受信するステップと、を実行することが可能になる。このようにして、電子デバイスは、1つのインターフェースを介してカメラに接続され、その結果、電子デバイスは、カメラと協働して、少なくとも2つのアプリケーション、少なくとも1つのアプリケーション+1つのアプリケーションサブ機能、および少なくとも2つのアプリケーションサブ機能の使用要求を満たす。カメラの内部アーキテクチャを変更することなく、カメラの排他的使用問題を解決する。これにより、使用効率が向上し、ユーザ体験が向上する。
第5の態様によれば、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースは、USBインターフェースである。このようにして、特定のメッセージタイプおよび特定のインターフェースが提供される。
第6の態様によれば、電子デバイスが提供される。電子デバイスは、第1のインターフェースおよび第2のインターフェースを介してカメラに接続され、電子デバイスは、1つ以上のプロセッサ、メモリ、および1つ以上のコンピュータプログラムを含む。前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記電子デバイスは、前記カメラに関連付けられたアプリケーションが開始されたことを検出した場合、またはアプリケーションのアプリケーションサブ機能が開始されたことを検出した場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または前記第2のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、前記カメラに関連付けられた別のアプリケーションが開始されたことを検出した場合、または別のアプリケーションサブ機能が有効にされたことを検出した場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または前記第2のインターフェースを介して第2のメッセージタイプの第4の処理結果を受信するステップと、を実行することが可能になる。このようにして、電子デバイスは、2つのインターフェースを介してカメラに接続され、その結果、電子デバイスは、カメラと協働して、少なくとも2つのアプリケーション、少なくとも1つのアプリケーション+1つのアプリケーションサブ機能、および少なくとも2つのアプリケーションサブ機能の使用要求を満たす。カメラの内部アーキテクチャを変更することなく、カメラの排他的使用問題を解決する。これにより、使用効率が向上し、ユーザ体験が向上する。
第6の態様によれば、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである。このようにして、特定のメッセージタイプおよび特定のインターフェースが提供される。
第7の態様によれば、カメラ使用方法が提供される。本方法は電子デバイスに適用され、電子デバイスは第1のインターフェースを介してカメラに接続される。前記方法は、前記カメラに関連付けられたアプリケーションが開始されたことが検出された場合、またはアプリケーションのアプリケーションサブ機能が開始されたことが検出された場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または前記第1のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、前記カメラに関連付けられた別のアプリケーションが開始されたことが検出された場合、または別のアプリケーションサブ機能が有効にされたことが検出された場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または前記第1のインターフェースを介して前記第2のメッセージタイプの第4の処理結果を受信するステップと、を含む。
第7の態様によれば、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースは、USBインターフェースである。
第7の態様および第7の態様の実装形態のいずれか1つは、それぞれ第5の態様および第5の態様の実装形態のいずれか1つに対応する。第7の態様および第7の態様の実装形態のいずれか1つに対応する技術的効果については、第5の態様および第5の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
第8の態様によれば、カメラ使用方法が提供される。方法は、電子デバイスに適用され、電子デバイスは、第1のインターフェースおよび第2のインターフェースを介してカメラに接続される。前記方法は前記カメラに関連付けられたアプリケーションが開始されたことが検出された場合、またはアプリケーションのアプリケーションサブ機能が開始されたことが検出された場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または前記第2のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、前記カメラに関連付けられた別のアプリケーションが開始されたことが検出された場合、または別のアプリケーションサブ機能が有効にされたことが検出された場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または前記第2のインターフェースを介して第2のメッセージタイプの第4の処理結果を受信するステップと、を含む。
第8の態様によれば、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである。
第8の態様および第8の態様の実装形態のいずれか1つは、それぞれ第6の態様および第6の態様の実装形態のいずれか1つに対応する。第8の態様および第8の態様の実装形態のいずれか1つに対応する技術的効果については、第6の態様および第6の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
第9の態様によれば、コンピュータ可読記憶媒体が提供される。媒体は、コンピュータプログラムを含む。コンピュータプログラムがカメラ上で実行されると、カメラは、第3の態様もしくは第3の態様の実装形態のいずれか1つ、または第4の態様もしくは第4の態様の実装形態のいずれか1つによるカメラ使用方法を実行することが可能になる。
第9の態様および第9の態様の実装形態のいずれか1つは、それぞれ、第3の態様、第4の態様、第3の態様の実装形態のいずれか1つ、および第4の態様の実装形態のいずれか1つに対応する。第9の態様および第9の態様の実装形態のいずれか1つに対応する技術的効果については、第3の態様、第4の態様、第3の態様の実装形態のいずれか1つ、および第4の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
第10の態様によれば、コンピュータ可読記憶媒体が提供される。媒体は、コンピュータプログラムを含む。コンピュータプログラムが電子デバイス上で実行されると、電子デバイスは、第7の態様もしくは第7の態様の実装形態のいずれか1つ、または第8の態様もしくは第8の態様の実装形態のいずれか1つによるカメラ使用方法を実行することが可能になる。
第10の態様および第10の態様の実装形態のいずれか1つは、第7の態様、第8の態様、第7の態様の実装形態のいずれか1つ、および第8の態様の実装形態のいずれか1つにそれぞれ対応する。第10の態様および第10の態様の実装形態のいずれか1つに対応する技術的効果については、第7の態様、第8の態様、第7の態様の実装形態のいずれか1つ、および第8の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
第11の態様によれば、コンピュータシステムが提供される。コンピュータシステムは、第5の態様、第6の態様、第5の態様の実装形態のいずれか1つ、および第6の態様の実装形態のいずれか1つによる電子デバイスと、第1の態様、第2の態様、第1の態様の実装形態のいずれか1つ、および第2の態様の実装形態のいずれか1つによるカメラとを含み、その結果、電子デバイスは、第7の態様、第8の態様、第7の態様の実装形態のいずれか1つ、および第8の態様の実装形態のいずれか1つによる方法を実行し、カメラは、第3の態様、第4の態様、第3の態様の実装形態のいずれか1つ、および第4の態様の実装形態のいずれか1つによる方法を実行する。
第11の態様および第11の態様の実装形態のいずれか1つは、それぞれ、第5の態様、第6の態様、第5の態様の実装形態のいずれか1つ、および第6の態様の実装形態のいずれか1つの組み合わせ、第1の態様、第2の態様、第1の態様の実装形態のいずれか1つ、および第2の態様の実装形態のいずれか1つの組み合わせ、第7の態様、第8の態様、第7の態様の実装形態のいずれか1つ、および第8の態様の実装形態のいずれか1つの組み合わせ、ならびに第3の態様、第4の態様、第3の態様の実装形態のいずれか1つ、および第4の態様の実装形態のいずれか1つの組み合わせに対応する。第11の態様および第11の態様の実装形態のいずれか1つに対応する技術的効果については、第5の態様、第6の態様、第5の態様の実装形態のいずれか1つ、および第6の態様の実装形態のいずれか1つに対応する技術的効果;第1の態様、第2の態様、第1の態様の実装形態のいずれか1つ、および第2の態様の実装形態のいずれか1つに対応する技術的効果;第7の態様、第8の態様、第7の態様の実装形態のいずれか1つ、および第8の態様の実装形態のいずれか1つに対応する技術的効果;ならびに第3の態様、第4の態様、第3の態様の実装形態のいずれか1つ、および第4の態様の実装形態のいずれか1つに対応する技術的効果を参照されたい。ここでは詳細を繰り返さない。
本出願では、より多くのアプリケーションおよび/またはアプリケーションサブ機能によるカメラの使用は、前述の使用方法と同様である。ここでは詳細を繰り返さない。
本出願の実施形態における技術的解決策をより明確に説明するために、以下では、本出願の実施形態を説明するための添付の図面を簡単に説明する。以下の説明における添付図面が単にこの出願の幾つかの実施形態を示すにすぎず、当業者が創造的な努力を伴うことなくこれらの添付図面から他の図面をさらに導出できることは明らかである。
本出願の一実施形態によるアプリケーションシナリオの概略図である。 本出願の一実施形態による電子デバイスのハードウェア構造の概略図である。 本出願の一実施形態による電子デバイスのソフトウェア構造の概略図である。 本出願の実施形態1による電子デバイスにカメラが接続された構造を示す図である。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態1によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2による、カメラが電子デバイスに接続されている構造の概略図である。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の実施形態2によるカメラ使用方法の概略的なフローチャートである。 本出願の一実施形態による電子デバイスの構造の概略図である。
以下では、本出願の実施形態における添付図面を参照して、本出願の実施形態における技術的解決策を明確に説明する。説明される実施形態は、本出願の実施形態の一部にすぎず、全てではないことは明らかである。創造的な努力なしに本出願の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本出願の保護範囲内に入るものとする。
本明細書における「および/または」という用語は、関連するオブジェクトを説明するための関連関係のみを説明し、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の3つの場合、すなわち、Aのみが存在する場合、AおよびBの両方が存在する場合、ならびにBのみが存在する場合を表してもよい。
本出願の実施形態における明細書および特許請求の範囲では、「第1の」、「第2の」などの用語は、異なるオブジェクトを区別することを意図しているが、オブジェクトの特定の順序を示すものではない。例えば、第1のターゲットオブジェクトおよび第2のターゲットオブジェクトは、異なるターゲットオブジェクトを区別するために使用されるが、ターゲットオブジェクトの特定の順序を記述するためには使用されない。
本出願の実施形態では、「例(example)」、「例えば(for example)」などの単語は、例、例示、または説明を与えることを表すために使用される。本出願の実施形態では、「例」または「例えば」として説明される任意の実施形態または設計スキームは、別の実施形態または設計スキームよりも好ましいまたはより多くの利点を有するものとして説明されるべきではない。正確には、「例(example)」、「例えば(for example)」などの単語の使用は、特定の方法で関連する概念を提示することが意図される。
本出願の実施形態の説明では、別段の指定がない限り、「複数の」は2つより多いことを意味する。「2つより多い」は2つを含む。
本出願の実施形態の説明において、第1のアプリケーションおよび第2のアプリケーションはそれぞれ、電子デバイス内にあり、カメラを使用する必要がある任意のアプリケーションであってよい。任意選択で、第1のアプリケーションおよび第2のアプリケーションは、電子デバイスの出荷前にインストールされてもよく、または電子デバイスの使用中にユーザによってダウンロードされてもよい。これは本出願では限定されない。第1のアプリケーションおよび第2のアプリケーションは、一例として使用されるにすぎず、特定の数のアプリケーションを限定するために使用されない。
本出願の実施形態における技術的解決策が説明される前に、本出願の実施形態におけるアプリケーションシナリオが、添付の図面を参照して最初に説明される。図1は、本出願の一実施形態によるアプリケーションシナリオの概略図である。図1に示すように、第1の電子デバイス100は、第2の電子デバイス200によって使用することができる。第1の電子デバイス100は、カメラ(図示せず)を有するか、または第1の電子デバイス100は、ユニバーサルシリアルバス(universal serial bus、USB)インターフェースなどの種々のインターフェースを介してカメラに接続される。第2の電子デバイス200は、第1の電子デバイス100のカメラを遠隔で使用および制御することができる。具体的に、第1の電子デバイス100と第2の電子デバイス200には同一のアプリケーション、例えば、「遠隔ハウスキーピング」アプリケーションがインストールされている。第2の電子デバイス200は、まず、第2の電子デバイス200の「遠隔ハウスキーピング」アプリケーションを開始し、次いで、第2の電子デバイス200の「遠隔ハウスキーピング」アプリケーションを使用することによって、使用要求を第1の電子デバイス100に送信する。前記要求を受信した第1の電子デバイス100は、第1の電子デバイス100の「遠隔ハウスキーピング」アプリケーションを開始する。第1の電子デバイス100および第2の電子デバイス200の両方は、大型スクリーン、ラップトップコンピュータ、デスクトップコンピュータ、パームトップコンピュータ(例えば、タブレットコンピュータまたはスマートフォン)、およびスマートウェアラブルデバイス(例えば、スマートバンド、スマートウォッチ、スマートグラス、またはスマートリング)などの種々のコンピューティングデバイスを含むが、これらに限定されない。例えば、第1の電子デバイス100はカメラで構成された大型スクリーンであり、第2の電子デバイス200はスマートフォンである。代替的に、第2の電子デバイス200は、カメラを含んで構成されてもよく、または含まなくてもよい。また、図1では、第1の電子デバイス100および第2の電子デバイス200がそれぞれ1つずつしか示されていないが、第1の電子デバイス100および/または第2の電子デバイス200はそれぞれ複数であってもよい。
図2は、本出願の一実施形態による電子デバイスの構造の概略図である。図1の第1の電子デバイス100は、図2の電子デバイスの構造を説明するための例として使用されるが、当業者は、図2の電子デバイスの構造が、図1の第2の電子デバイス200にも適用可能であることを理解する。図2に示されるように、電子デバイス100は、プロセッサ110、外部メモリインターフェース120、内部メモリ121、USBインターフェース130、充電管理モジュール140、電力管理モジュール141、バッテリ142、アンテナ1、アンテナ2、モバイル通信モジュール150、無線通信モジュール160、オーディオモジュール170、ラウドスピーカ170A、電話受信機170B、マイクロフォン170C、ヘッドセットジャック170D、センサモジュール180、キー190、モータ191、インジケータ192、カメラ193、ディスプレイ194、加入者識別モジュール(subscriber identification module、SIM)カードインターフェース195などを含み得る。センサモジュール180は、圧力センサ180A、ジャイロセンサ180B、気圧センサ180C、磁気センサ180D、加速度センサ180E、距離センサ180F、光学式近接センサ180G、指紋センサ180H、温度センサ180J、タッチセンサ180K、環境光センサ180L、骨伝導センサ180Mなどを含んでもよい。
本出願のこの実施形態において示される構造は、電子デバイス100に対する特定の限定を構成しないことが理解され得る。本出願の一部の他の実施形態では、電子デバイス100は、図に示されるものよりも多いまたは少ない構成要素を含んでもよく、一部の構成要素が組み合わされてもよく、または一部の構成要素が分割されてもよく、または異なる構成要素レイアウトがあってもよい。図に示された構成要素は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組み合わせによって実装され得る。
プロセッサ110は、1つ以上の処理ユニットを含み得る。例えば、プロセッサ110は、アプリケーションプロセッサ(application processor、AP)、モデムプロセッサ、グラフィックス処理ユニット(graphics processing unit、GPU)、画像信号プロセッサ(image signal processor、ISP)、コントローラ、ビデオコーデック、デジタル信号プロセッサ(digital signal processor、DSP)、ベースバンドプロセッサ、ニューラルネットワーク処理ユニット(neural-network processing unit、NPU)などを含んでもよい。異なる処理ユニットは、独立した構成要素であってもよく、または1つ以上のプロセッサに統合されてもよい。
コントローラは、命令フェッチおよび命令実行の制御を完了するために、命令動作コードおよび時系列信号に基づいて動作制御信号を生成することができる。
メモリが、プロセッサ110内にさらに配置されてよく、命令およびデータを記憶するように構成される。一部の実施形態では、プロセッサ110内のメモリはキャッシュである。メモリは、プロセッサ110によって使用されたばかりの、または周期的に使用される命令またはデータを記憶することができる。プロセッサ110が命令またはデータを再び使用する必要がある場合、プロセッサは、メモリから命令またはデータを直接呼び出してもよい。これにより、繰り返しアクセスが回避され、プロセッサ110の待ち時間が減少し、それによってシステム効率が改善される。
USBインターフェース130は、USB標準仕様に準拠したインターフェースであり、具体的には、Mini USBインターフェース、Micro USBインターフェース、USB Type Cインターフェースなどであってよく、USB1.0、USB2.0、USB3.0、USB4.0、またはより高いUSB標準仕様を含む種々のUSB仕様をサポートすることができる。例えば、USBインターフェース130は、1つ以上のUSBインターフェースを含んでもよい。
本出願のこの実施形態では、例示されるモジュール間のインターフェース接続関係は、説明のための例にすぎず、電子デバイス100の構造に対する限定を構成しないことが理解され得る。本出願の一部の他の実施形態では、電子デバイス100は、代替的に、前述の実施形態におけるものとは異なるインターフェース接続方式を使用してもよく、または複数のインターフェース接続方式の組み合わせを使用してもよい。
充電管理モジュール140は、充電器から充電入力を受信するように構成される。電力管理モジュール141は、バッテリ142、充電管理モジュール140、およびプロセッサ110に接続するように構成される。電子デバイス100の無線通信機能は、アンテナ1、アンテナ2、モバイル通信モジュール150、無線通信モジュール160、モデムプロセッサ、ベースバンドプロセッサなどを使用することによって実装され得る。
アンテナ1およびアンテナ2は、電磁波信号を送受信するように構成されている。電子デバイス100内の各アンテナは、1つ以上の通信周波数帯域をカバーするように構成されてもよい。アンテナ利用率を改善するために、異なるアンテナがさらに多重化され得る。例えば、アンテナ1は、無線ローカルエリアネットワークにおいてダイバーシティアンテナとして多重化されてもよい。一部の他の実施形態では、アンテナは、同調スイッチと組み合わせて使用され得る。
モバイル通信モジュール150は、電子デバイス100に適用される2G、3G、4G、5Gなどを含む無線通信ソリューションを提供することができる。モバイル通信モジュール150は、少なくとも1つのフィルタ、スイッチ、電力増幅器、低雑音増幅器(low noise amplifier、LNA)などを含んでよい。モバイル通信モジュール150は、アンテナ1を介して電磁波を受信し、受信された電磁波に対してフィルタリングまたは増幅などの処理を実行し、処理された電磁波を復調のためにモデムプロセッサに送信することができる。モバイル通信モジュール150は、モデムプロセッサによって変調された信号をさらに増幅し、増幅された信号をアンテナ1を介して放射するための電磁波に変換することができる。一部の実施形態では、モバイル通信モジュール150の少なくとも一部の機能モジュールは、プロセッサ110に配置されてもよい。一部の実施形態では、モバイル通信モジュール150の少なくとも一部の機能モジュールは、プロセッサ110の少なくとも一部のモジュールと同一の構成要素に配置されてもよい。
無線通信モジュール160は、電子デバイス100に適用され、無線ローカルエリアネットワーク(wireless local area network、WLAN)(例えば、ワイヤレスフィデリティ(wireless fidelity、Wi-Fi)ネットワーク)、ブルートゥース(登録商標)(bluetooth(登録商標)、BT)、全球測位衛星システム(global navigation satellite system、GNSS)、周波数変調(frequency modulation、FM)、近距離無線通信(near field communication、NFC)技術、赤外線(infrared、IR)技術などを含む無線通信ソリューションを提供し得る。無線通信モジュール160は、少なくとも1つの通信処理モジュールが集積された1つ以上の構成要素であり得る。無線通信モジュール160は、アンテナ2を介して電磁波を受信し、電磁波信号に対して周波数変調およびフィルタリング処理を行い、処理された信号をプロセッサ110に送信する。無線通信モジュール160は、プロセッサ110から送信されるべき信号をさらに受信し、信号に対して周波数変調および増幅を実行し、処理された信号をアンテナ2を介して放射するための電磁波に変換することができる。
一部の実施形態では、電子デバイス100において、アンテナ1とモバイル通信モジュール150とが結合され、アンテナ2と無線通信モジュール160とが結合され、それにより、電子デバイス100は、無線通信技術を使用することによってネットワークおよび別のデバイスと通信することができる。無線通信技術は、グローバルシステムフォーモバイルコミュニケーションズ(global system for mobile communications、GSM)、汎用パケット無線サービス(general packet radio service、GPRS)、符号分割多元接続(code division multiple access、CDMA)、広帯域符号分割多元接続(wideband code division multiple access、WCDMA(登録商標))、時分割同期符号分割多元接続(time-division-code division multiple access、TD-SCDMA)、ロングタームエボリューション(long term evolution、LTE)、BT、GNSS、WLAN、NFC、FM、IR技術などを含んでよい。GNSSは、全地球測位システム(global positioning system、GPS)、全地球的航法衛星システム(global navigation satellite system、GLONASS)、北斗航法衛星システム(beidou navigation satellite system、BDS)、準天頂衛星システム(quasi-zenith satellite system、QZSS)、および/または衛星ベース補強システム(satellite based augmentation system、SBAS)を含み得る。
電子デバイス100は、ISP、カメラ193、ビデオコーデック、GPU、ディスプレイ194、アプリケーションプロセッサなどを用いて撮影機能を実装することができる。
外部メモリインターフェース120は、電子デバイス100の記憶能力を拡張するために、外部記憶カード、例えばMicro SDカードに接続するように構成されてもよい。外部記憶カードは、データ記憶機能を実装するために、外部メモリインターフェース120を通してプロセッサ110と通信する。外部記憶カードには、例えば、音楽や動画などのファイルが記憶されている。
電子デバイス100は、オーディオモジュール170、スピーカ170A、レシーバ170B、マイクロフォン170C、ヘッドセットジャック170D、アプリケーションプロセッサなどを使用することによって、オーディオ機能、例えば、音楽再生または録音を実装することができる。
図3は、本出願の一実施形態による電子デバイス100のソフトウェア構造のブロック図である。階層化アーキテクチャでは、ソフトウェアは一部の層に分割され、各層は明確な役割およびタスクを有する。これらの層はソフトウェアインターフェースを介して互いに通信する。一部の実施形態では、Androidシステムは、上から下に4つの層、すなわち、アプリケーション層、システムフレームワーク層、システムライブラリおよびAndroidランタイム層、ならびにハードウェア抽象化層に分割される。アプリケーション層は、遠隔ハウスキーピングアプリケーション、ホームカメラアプリケーション、ビデオ通話アプリケーション、人工知能(Artificial Intelligence、AI)フィットネスアプリケーション、および子供モードアプリケーションなどのプログラムを含み得る。遠隔ハウスキーピングアプリケーションは、遠隔使用方式で電子デバイス100のカメラを開き、カメラによって撮影されたビデオおよび/または画像を取得するために、電子デバイス100以外のデバイスによって使用される。図3に示されるアプリケーション層に含まれるアプリケーションは、説明のための一例にすぎないことに留意されたい。これは本出願では限定されない。アプリケーション層に含まれるアプリケーションは、電子デバイス100に対するいかなる特定の限定も構成しないことが理解され得る。本出願の一部の他の実施形態では、電子デバイス100は、図3に示すアプリケーション層に含まれるアプリケーションよりも多いまたは少ないアプリケーションを含んでもよく、または電子デバイス100は、完全に異なるアプリケーションを含んでもよい。
システムフレームワーク層は、アプリケーション層におけるアプリケーションのためのアプリケーションプログラミングインターフェース(Application Programming Interface、API)およびプログラミングフレームワークを提供し、開発者によるAndroid開発をサポートするための種々の構成要素およびサービスを含む。システムフレームワーク層は一部の予め定義された機能を含む。図3に示すように、システムフレームワーク層は、ビューシステム、ウィンドウマネージャ、リソースマネージャ、コンテンツプロバイダなどを含むことができる。ビューシステムは、テキストを表示するためのコントロールおよび画像を表示するためのコントロールなどの視覚コントロールを含む。ビューシステムは、アプリケーションを構築するために使用され得る。表示インターフェースは、1つ以上のビューを含んでもよい。ウィンドウマネージャは、ウィンドウプログラムを管理するものである。ウィンドウマネージャは、ディスプレイのサイズを取得し、ステータスバーがあるかどうかを決定し、スクリーンロックを実行し、スクリーンショットを撮るなどを行うことができる。リソースマネージャは、ローカライズされた文字列、アイコン、画像、レイアウトファイル、動画ファイルなどの各種リソースをアプリケーションに提供する。コンテンツプロバイダは、データを記憶および取得し、データがアプリケーションによってアクセス可能であることを可能にするために使用される。データは、ビデオ、画像、オーディオなどを含むことができる。
システムライブラリおよびランタイム層は、システムライブラリおよびアンドロイドランタイム(Android Runtime)を含む。システムライブラリは、ブラウザカーネル、3Dグラフィックスライブラリ(例えば、OpenGL ES)、およびフォントライブラリなどの複数の機能モジュールを含むことができる。ブラウザカーネルは、ウェブページ構文(例えば、標準汎用マークアップ言語に基づくアプリケーションHTML、およびJavaScript)を解釈し、ウェブページをレンダリングする(表示する)ことを担う。3Dグラフィックスライブラリは、3次元グラフィックス描画、画像レンダリング、合成、レイヤ処理などを実装するように構成される。フォントライブラリは、異なるフォントを入力するように構成される。アンドロイドランタイムは、コアライブラリおよび仮想マシンを含む。アンドロイドランタイムは、アンドロイドシステムのスケジューリングおよび管理を担当する。カーネルライブラリは、java言語で呼び出される必要がある関数と、Android(登録商標)のカーネルライブラリとの2つの部分を含む。アプリケーション層およびシステムフレームワーク層は、仮想マシン上で動作する。仮想マシンは、アプリケーション層およびシステムフレームワーク層のjavaファイルをバイナリファイルとして実行する。仮想マシンは、オブジェクトライフサイクル管理、スタック管理、スレッド管理、セキュリティおよび例外管理、ならびにガーベッジコレクションなどの機能を実行するために使用される。
図3に示されるシステムフレームワーク層、ならびにシステムライブラリおよびランタイム層に含まれる構成要素は、電子デバイス100に対するいかなる特定の限定も構成しないことが理解され得る。本出願の一部の他の実施形態では、電子デバイス100は、図に示されるものよりも多いまたは少ない構成要素を含んでもよく、一部の構成要素が組み合わされてもよく、または一部の構成要素が分割されてもよく、または異なる構成要素レイアウトがあってもよい。
ハードウェア抽象化層(Hardware Abstraction Layer、HAL)は、ハードウェアとソフトウェアとの間の層である。HALは、CameraHALドライバ、カメラプロキシ(CameraProxy)ドライバ、ディスプレイドライバ、オーディオドライバなどを含む。前述のドライバは単なる例である。これは本出願では限定されない。HALは、Android(登録商標)システムの基盤である。Android(登録商標)システムの最終的な機能は、HALを使用することによって実装される。
例えば、CameraHALドライバおよびCameraProxyドライバの両方は、アプリケーションがカメラにアクセス(または使用)することができるように、カメラを抽象化し、カメラの特定のチャネルを隠すために使用される。CameraHALドライバは、ユニバーサルシリアルバスビデオクラス(universal serial bus video class、UVC)プロトコルに基づいてカメラと通信してもよい。UVCプロトコルは、UVCチャネルベースのプロトコルとしても理解され得る。具体的には、カメラ400は、UVCチャネルを介してHALへのUVC接続(通信接続)を確立し、UVC接続に基づいて、UVCプロトコルに準拠するメッセージを送信する。CameraProxyドライバは、遠隔ネットワークドライバインターフェース仕様(remote network driver interface specification、RNDIS)プロトコルに基づいてカメラと通信してもよい。RNDISプロトコルは、Socketチャネルベースのプロトコルとして理解することもできることに留意されたい。具体的には、カメラ400は、Socketチャネルを介してHALとのSocket接続(通信接続)を確立し、当該Socket接続に基づいてRNDISプロトコルに準拠したメッセージを送信する。
任意選択で、UVCチャネルは、制御命令およびビデオストリームを送信するために使用されてもよい。Socketチャネルは、AIイベントおよびログなどの情報を送信するために使用され得る。
電子デバイス100のカメラは、外部カメラおよび/または内蔵カメラであってもよい。外部カメラは、USBケーブルを介して電子デバイス100のUSBインターフェースに接続されてもよい。内蔵カメラは、電子デバイス100に内蔵されてもよい。電子デバイス100において、内蔵カメラは、USBケーブルを介して電子デバイス100のUSBインターフェースに接続される。
実施形態1
図4は、本出願の実施形態1による、カメラが電子デバイスに接続された構造の概略図である。図4に示すように、カメラ400は、USBケーブルを介して電子デバイス410のUSBインターフェースに接続され、さらに電子デバイス410に接続される。図4の電子デバイス410の一方の側のUSBインターフェースの数量およびUSBインターフェースの分布は、一例にすぎず、本出願の範囲を限定しないことに留意されたい。カメラ400と電子デバイス410との間の接続を実装するために、UARTおよびUSARTなどの他のタイプのインターフェースも使用され得る。前述のインターフェース(USBインターフェースを含む)は、電子デバイス410の片側に配置されてもよく、カメラ400の片側に配置されてもよく、または電子デバイス410およびカメラ400の両側に配置されてもよい。1つ、2つ、またはそれ以上のUSBインターフェースがあってもよい。
図4のUSBインターフェースは、電子デバイス410の一方の側のハードウェア層411上に位置する。HAL 412は、ハードウェア層411の上にあり、HAL 412は、少なくともCameraProxyドライバおよびCameraHALドライバを含む。
CameraProxyドライバは、Androidアプリケーションパッケージ(android application package、APK)アプリケーションとカメラとの間に位置するプロキシプログラムであり、Android HAL層に位置し、標準HALインターフェース定義言語(HAL interface definition language、HIDL)を提供し、カメラを抽象化するために使用される。CameraProxyドライバは、特定のカメラ構成要素のハードウェアインターフェースの詳細を隠し、APKアプリケーションに対してより軽量で便利なカメラアクセスを提供する。
CameraHALドライバは、APKアプリケーションとカメラとの間のプロキシプログラムであり、Android HAL層に位置し、標準データ構造およびインターフェース定義仕様を提供し、異なるカメラハードウェアのシステムサービスのための標準インターフェースを定義する。異なるカメラハードウェアの製造業者は、対応するインターフェースを実装する必要があるだけである。デバイス関連の実装形態は、HAL層で実行され、共有ライブラリ(.so)の形態で提供され、その結果、デバイスは、Androidシステムによって使用され得る。
本出願のこの実施形態では、CameraProxyドライバおよびCameraHALドライバは、それぞれ2つのストリームを介して、AIモジュール423およびVENCモジュール424によって入力されるデータを受信するために使用される。
カメラ400は、ISP 420と、センサモジュール430と、CPU 440と、メモリ450とを有する。ISP 420は、画像およびビデオストリームを処理し、処理されたビデオストリームおよび画像を2つのストリームを介して出力するように構成される。なお、CPU 440は一例である。マイクロ制御ユニット(Microcontroller Unit、MCU)などの種々のマイクロコントローラ、またはプロセッサもしくはマイクロコントローラとして機能する構成要素は、前述のCPUの代替形態であり得る。
センサモジュール430は、カメラ400の感光素子であり、光信号を収集し、収集された光信号を電気信号に変換し、次いで、処理のために電気信号をISP 420に送信する。ISP 420は、電気信号を画像またはビデオストリームに変換する。
ISP 420は、ビデオ入力(video input、VI)モジュール421と、ビデオ処理サブシステム(video process sub-system、VPSS)モジュール422と、AIモジュール423と、ビデオエンコーディング(video encoder、VENC)モジュール424と、ビデオグラフィックスシステム(video graphic system、VGS)モジュール425とを含む。
VIモジュール421は、センサモジュール430によって収集された画像を前処理するように構成される。前処理には、ノイズ除去、色補正、シェーディング(shading)などが含まれる。
VPSSモジュール422は、VIモジュール421などの処理によって取得された画像に対して3Dノイズ低減処理を行う。VPSSモジュール422が実行する3Dノイズ低減処理は、VIモジュール421が実行する2次元ノイズ低減に基づいて、時間領域の画像に対して実行する3次元ノイズ低減である。
AIモジュール423は、画像に対してAI認識を実行し、AIイベントを報告するように構成される。例えば、AIモジュール423は、画像内の特徴を認識して、特徴がAIイベントの特定の特徴に一致するかどうかを検出し、特定の特徴が画像内に存在することを検出した場合、対応するAIイベントが存在すると決定し、AIイベントを報告してもよい。例えば、子供がTVを視聴していると仮定する。AIモジュール423は、他のモジュール(センサモジュール430、VIモジュール421などを含む)の処理によって取得された画像を認識し、子供の特徴を検出する。AIモジュール423は、認識された子供の特徴に基づいて、子供TV視聴イベントが存在することを決定し、子供TV視聴イベントを電子デバイス410に報告することができる。具体的には、AIモジュール423は、AIイベントの認識検出を完了した後、Socketチャネルを介してAIイベント認識結果をHAL 412のCameraProxyドライバに送信し、さらに、AIイベント認識結果を電子デバイス側に送信する。AIイベントは、AIジェスチャ、ポートレート追跡、子供認識、姿勢検出などを含む。Socketチャネルは、TCP接続プロトコルに基づいてデータを送信するためのチャネルである。本実施例では、Socketチャネルは、AIイベント認識結果をUSBケーブルを介して電子デバイス側のUSBインターフェースに送信するためにカメラによって使用されるチャネルである。
VENCモジュール424は、画像をエンコーディングしてビデオストリーム(ビデオデータ、ビデオ情報などとも称される)を生成し、UVCチャネルを介してビデオストリームをHAL 412のCameraHALドライバに送信し、さらにビデオストリームを電子デバイス410の一方の側に送信するように構成される。UVCチャネルは、カメラがUSBケーブルを介して電子デバイス側のUSBインターフェースにビデオデータを送信するためのチャネルである。任意選択で、VENCモジュール424は、複数の画像に対してエンコーディング(ビデオエンコーディングとも称される)を実行することができる。
VGSモジュール425は、画像に対してズーム処理を行い、ズーム処理によって取得された画像をVENCモジュール424に出力するように構成される。ズーム処理とは、画像の歪みがないことを前提として、画像に対してズームインやズームアウトなどの処理を行うことである。
VIモジュール421、VPSSモジュール422、AIモジュール423、VENCモジュール424、VGSモジュール425、およびセンサモジュール430は全て、CPU 440に接続される。具体的には、CPU 440は、センサモジュール430、VIモジュール421、VPSSモジュール422、AIモジュール423、VENCモジュール424、およびVGSモジュール425に、それぞれCNG 0、CNG 1、CNG 2、CNG 3、CNG 4、およびCNG 5を介して接続することができる。CNG 0~CNG 5は、CPU 440が各モジュールに設定パラメータを提供するために使用される。VPSSモジュール422は、一例として使用される。CPU 440によってVPSSモジュール422に提供された構成パラメータをCNG 2を介して受信した後、VPSSモジュール422は、提供された構成パラメータに基づいて、VPSSモジュール422の処理結果が出力されるAIモジュール423、VENCモジュール424、およびVGSモジュール425のうちの特定の1つ以上を決定することができる。AIモジュール423は、例としてさらに使用される。AIモジュール423は、提供された構成パラメータに基づいて、開始すべきかどうかを決定し得る。例えば、AIモジュール423が受信した設定パラメータが「0」である場合、AIモジュール423は、開始しないと決定する。例えば、AIモジュール423によって受信された構成パラメータが「1」である場合、AIモジュール423は、開始することを決定する。構成パラメータが各モジュールが開始すべきかどうかを示す前述の方式は、一例にすぎない。これは本出願では限定されない。代替として、他の実施形態では、構成パラメータは、各モジュールが開始すべきかどうかを示すためにのみ使用されてもよく、処理結果の送信オブジェクトは、モジュール間の回路接続に基づいて、各開始されたモジュールによって決定されてもよい。例えば、VPSSモジュール422は、AIモジュール423、VGSモジュール425、およびVENCモジュール424に接続される(例えば、電気的に接続される)。CPU 440は、構成パラメータを使用することによって、AIモジュール423が開始することと、VGSモジュール425およびVENCモジュール424が開始しないこととを示し得る。VPSSモジュール422は、接続関係(すなわち、電気的接続であり、実際の物理的接続関係としても理解され得る)に基づいて3つの接続回路を介して処理のための処理結果を送信し得る。実際には、開始された状態のAIモジュール423のみがVPSSモジュール422の処理結果を受信し、開始されていないVGSモジュール425およびVENCモジュール424はVPSSモジュール422の処理結果を受信しない。
電子デバイス410内のアプリケーションがカメラを使用する方式が、説明のための例として使用される。
例えば、電子デバイス410のアプリケーションレイヤにおけるアプリケーション(ホームカメラアプリケーションなど)は、カメラ400を使用するようにHAL 412のCameraHALドライバに命令を送信することができる。CameraHALドライバは、カメラ400を使用するためのアプリケーションの命令に従って、UVCコマンド(またはメッセージ)をUSBケーブルを介してカメラ400に送信することができる。UVCコマンド(またはメッセージ)は、UVCチャネルを介して送信されるコマンド(またはメッセージ)である。
例えば、カメラ400は、CameraHALドライバの指示に従って、CPU 440、およびカメラ400内の一部または全部のモジュール(例えば、センサモジュール430、VIモジュール421、VPSSモジュール422、VGSモジュール425、およびVENCモジュール424)を開始する。CPU 440および各モジュールは、それぞれの機能を実行する。例えば、センサモジュール430が、VIモジュール421、VPSSモジュール422、およびVGSモジュール425を使用することによって、収集された画像に対してノイズ低減、3Dノイズ低減、およびズーミングなどの処理を実行した後、VENCモジュール424は、取得された画像をエンコーディングしてビデオストリームを生成し、UVCチャネルを通じてUVCメッセージをCameraHALドライバに送信する。UVCメッセージは、生成されたビデオストリームを搬送する。
例えば、CameraHALドライバは、ビデオストリームをアプリケーション層に送信する。アプリケーションレイヤにおけるアプリケーション、例えば、ホームカメラアプリケーションは、ビデオストリームを処理し、例えば、ビデオストリーム上でのレンダリングおよび表示などの動作を実行し得る。
例えば、電子デバイス内のアプリケーション層がAIアプリケーション、例えば、AIフィットネスアプリケーションを含む場合、電子デバイスは、AIフィットネスアプリケーションを使用することによって、CameraHALドライバによって送信されたビデオストリームに対してAI処理を実行して、対応するAIイベントを取得することができる。
モジュールが機能を実装するためのエンティティとして使用されることが本明細書で説明されていることに留意されたい。実際には、各モジュールの機能はISP内の処理回路によって実装される。これについては以下では再度説明しない。
また、図4において、USBインターフェースは複数あってもよい。AIモジュール423およびVENCモジュール424は、2本のUSBケーブルを介して電子デバイス410の2つのUSBインターフェースにそれぞれ接続され得る。
UVCチャネルおよび以下で説明されるSocketチャネルの両方が論理チャネルであり、USBを介して送信されるメッセージタイプを反映することに留意されたい。なお、本実施の形態および以降の実施の形態で示したカメラの各モジュールの接続関係や各モジュールの処理手順は一例である。実際には、種々の製造業者によって製造されたカメラの内部接続(ハードウェア接続および論理接続を含む)は、異なり得る。例えば、VPSSモジュールによる処理によって取得された画像は、VGSモジュールを通過することなく、エンコーディングのためにVENCモジュールに送信され得る。これは本出願では限定されない。
任意選択で、カメラは、カメラの角度および/または位置を調整する、例えば、カメラを上昇または下降させるように構成された駆動モータをさらに含むことができる。
以下では、電子デバイスのCameraHALドライバおよびCameraProxyドライバによってカメラを使用するプロセスをさらに説明するために、図5a-1および図5a-2を参照して本出願の技術的解決策を詳述する。
S101:CameraHALドライバは、UVCチャネルを介してカメラに、アプリケーションIDを含む第1のメッセージを入力する。
具体的には、CameraHALドライバは、アプリケーションの使用要求メッセージを受信し、使用要求メッセージは、アプリケーションがカメラを使用する必要があることを示すために使用される。例えば、使用要求メッセージは、アプリケーションIDを搬送する。具体的には、受信された使用要求メッセージに応答して、CameraHALドライバは、カメラを使用することを要求するために、UVCチャネルを通じてカメラに第1のメッセージを送信する。第1のメッセージは、アプリケーションIDを搬送する。例えば、第1のメッセージはUVCメッセージである。UVCメッセージは、具体的にはSET_CURメッセージであってよく、メッセージ内の指定されたフィールドはアプリケーションIDを搬送する。
S102:CPUは、第1のメッセージを受信し、アプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュール430に出力し、それぞれの構成パラメータをセンサモジュール430、VIモジュール421、VPSSモジュール422、AIモジュール423、VENCモジュール424、およびVGSモジュール425に出力し、命令は、特定の機能を実行するようにセンサモジュール430に命令するために使用され、構成パラメータは、センサモジュール430、VIモジュール421、VPSSモジュール422、AIモジュール423、VENCモジュール424、およびVGSモジュール425を構成するために使用される。
任意選択で、CPUは、受信された第1のメッセージに応答してアプリケーションIDを取得する。カメラのメモリは、データベースを予め記憶し、データベースは、アプリケーションID、アプリケーションIDに対応するタイプ(またはタイプ情報)、およびタイプに対応するモジュール使用方式を記憶する。CPUは、取得されたアプリケーションIDを、予め記憶されたデータベース内のアプリケーションIDと照合し、照合に成功したアプリケーションIDに対応するタイプを抽出する。具体的には、CPUは、取得されたタイプを予め記憶されたタイプとさらに照合し、照合に成功したタイプに対応するモジュール使用方法を抽出する。モジュール使用方法は、開始される必要がある1つ以上のモジュールを示すために使用される。
任意選択で、CPUは、受信された第1のメッセージに応答してアプリケーションIDを取得する。データベース、例えば、データ記憶マッチングテーブルが、CPUによって実行されるプログラム内に提供され、データ記憶マッチングテーブルは、アプリケーションID、アプリケーションIDに対応するタイプ(またはタイプ情報)、およびタイプに対応するモジュール使用方式を記憶する。CPUは、取得されたアプリケーションIDをデータベース内のアプリケーションIDと照合し、照合に成功したアプリケーションIDに対応するタイプおよび対応するモジュール使用方法を抽出し、モジュール使用方法に基づいて1つ以上のモジュールを開始する。その後、アップグレード、許可された管理者による修正、または別の方法によって、データベースを更新または修正することができる。これにより、データベースが漏洩するリスクを低減することができる。
アプリケーションID、タイプ、およびモジュール使用方法を構成するプロセスは、以下の実施形態において詳述される。
例えば、CPUは、センサモジュールに接続された接続チャネルCNG 0を介してセンサモジュールに命令を出力して、センサモジュールに開始して画像を収集するように命令することができる。CPUは、対応する構成パラメータをチャネル(例えば、CNG 0~CNG 5)を介してモジュールに出力する。構成パラメータは、モジュールに開始するかまたは開始しないように命令する機能を含むがこれに限定されない機能を実行するために使用される。CPUは、モジュールに対応する構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力して、モジュールのうちの一部を開始するように指示し、開始された各モジュールに処理結果の出力オブジェクトを学習させ、例えば、VPSSモジュールに、VPSSモジュールの処理結果がAIモジュールに出力される必要があることを学習させる。
S103:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果およびアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果およびアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
具体的には、センサモジュールは、CPUの命令に従って、対応する処理を実行し、例えば、カメラを使用することによって画像を収集し、収集された画像をVIモジュールに出力することができる。VIモジュールは、CPUによって送信された構成パラメータに基づいて、センサモジュールからの画像に対して対応する処理を実行し、例えば、ノイズ低減処理を実行し、処理された画像をVPSSモジュールに出力する。VPSSモジュールは、処理結果を取得するために、VIモジュールからの画像に対して、対応する処理、例えば、3Dノイズ低減処理を実行し得る。
S104:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。
具体的には、処理結果を取得するための画像処理を完了した後、VPSSモジュールは、CPUによってVPSSモジュールに出力された構成パラメータが、処理結果がAIモジュールに出力される必要があることを示すかどうかを決定する。
タイプがAIタイプである場合、アプリケーションは、AI機能を実装するためにカメラを必要とする。対応して、CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力するようにVPSSモジュールに指示し、AIモジュールはまた、開始するようにAIモジュールに指示する構成パラメータを受信する。VPSSは、CPUによってVPSSモジュールに出力された構成パラメータが、処理結果をAIモジュールに出力することを示すと決定し、S105を実行する。
タイプがビデオストリームタイプである場合、アプリケーションは、ビデオストリーミング機能を実装するためにカメラを必要とする。対応して、CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVGSモジュールまたはVENCモジュールに出力するようにVPSSモジュールに指示し、S108が実行される。
タイプがAIタイプ+ビデオストリームタイプである場合、アプリケーションは、AI機能を実装するためにカメラを必要とし、ビデオストリーミング機能を実装するためにもカメラを必要とする。対応して、CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールおよびVENCモジュールに、またはAIモジュールおよびVGSモジュールに出力するようにVPSSモジュールに指示し、S105~S109が対応して実行される。
S105:VPSSモジュールは、処理結果およびアプリケーションIDをAIモジュールに出力し、AIモジュールは、対応する処理を実行して処理結果を取得する。
具体的には、VPSSモジュールは、CPUによって送信された構成パラメータの指示に基づいて処理結果をAIモジュールに出力し、AIモジュールは、VPSSによって入力された処理結果、すなわち、処理された画像に対して対応する処理を実行する。例えば、AIモジュールは、画像に対してAI認識(または検出)を実行して処理結果を取得し、処理結果はAI検出結果とも称され得る。AI検出結果は、AIイベントが存在すること、およびAIイベントが存在しないことを含む。
S106:AIモジュールは、Socketチャネルを介してCameraProxyドライバに処理結果およびアプリケーションIDを出力する。
具体的には、アプリケーションIDは、処理結果がフィードバックされるアプリケーションを示すために使用される。AIモジュールは、CPUによって送信された構成パラメータに基づいて、Socketチャネルを介してCameraProxyドライバに、取得されたAIイベントおよび取得されたアプリケーションIDを出力することができる。例えば、AIモジュールは、SocketメッセージをCameraProxyドライバに送信し、メッセージは、AIイベントおよびアプリケーションIDを搬送する。任意選択で、AIモジュールがAIイベントを検出しない場合、AI検出を実行した後、AIモジュールは、いかなる処理も実行しない、すなわち、SocketメッセージをCameraProxyドライバに送信する必要がない。
S107:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。
具体的には、VPSSモジュールは、処理結果をVENCモジュールまたはVGSモジュールのいずれに出力するかをさらに決定することができる。ステップS107およびS104を実行する順序は限定されない。VPSSモジュールは、処理結果をAIモジュールに出力するかどうかを最初に決定してもよく、処理結果をVENCモジュールまたはVGSモジュールに出力するかどうかを最初に決定してもよく、または処理結果をAIモジュールに出力するかどうか、および出力結果をVENCモジュールまたはVGSモジュールに出力するかどうかを同時に決定してもよい。これは本出願では限定されない。
一例では、カメラを使用することを現在要求しているアプリケーションがAIタイプである場合、すなわち、アプリケーションがAI機能を実装するためにカメラのみを必要とする場合、CPUによってVPSSモジュールに出力された構成パラメータは、処理結果およびアプリケーションIDをAIモジュールに出力することを示す。次に、このステップ(S107)において、VPSSモジュールは、構成パラメータに基づいて、VPSSモジュールが処理結果およびアプリケーションIDをVENCモジュールまたはVGSモジュールに出力する必要がないことを決定する。
別の例では、現在カメラを使用することを要求しているアプリケーションがビデオストリームタイプである場合、すなわち、アプリケーションがビデオストリーミング機能を実装するためにカメラのみを必要とする場合、CPUによってVPSSモジュールに出力される構成パラメータは、処理結果およびアプリケーションIDをVENCモジュールまたはVGSモジュールに出力することを示す。次に、このステップ(S107)において、VPSSモジュールは、構成パラメータに基づいて、VPSSモジュールが処理結果およびアプリケーションIDをVENCモジュールまたはVGSモジュールに出力する必要があると決定する。
さらに別の例では、現在カメラを使用することを要求しているアプリケーションがビデオストリームタイプおよびAIタイプである場合、すなわち、アプリケーションがビデオストリーミング機能およびAI機能を実装するためにカメラを必要とする場合、CPUによってVPSSモジュールに出力された構成パラメータは、処理結果およびアプリケーションIDをAIモジュールおよびVENCモジュール、またはAIモジュールおよびVGSモジュールに出力することを示す。次に、このステップ(S107)において、VPSSモジュールは、構成パラメータに基づいて、VPSSモジュールが処理結果およびアプリケーションIDをAIモジュールおよびVENCモジュールに、またはAIモジュールおよびVGSモジュールに出力する必要があると決定する。
S108:VPSSモジュールは、処理結果およびアプリケーションIDをVENCモジュールまたはVGSモジュールに出力し、VENCモジュールまたはVGSモジュールは、対応する処理を実行して処理結果を取得する。
一例では、VPSSモジュールが処理結果およびアプリケーションIDをVENCモジュールに出力した場合、VENCモジュールは画像をエンコーディングしてビデオストリームを生成する。別の例では、VPSSモジュールが処理結果およびアプリケーションIDをVGSモジュールに出力する場合、VGSモジュールは、画像に対してズームを実行し、CPUによって送信された構成パラメータの指示に基づいて処理結果およびアプリケーションIDをVENCモジュールに出力する。VENCモジュールは、VGSモジュールの処理により取得された画像をエンコーディングしてビデオストリームを生成する。
S109:VENCモジュールは、処理結果およびアプリケーションIDを、UVCチャネルを介してCameraHALドライバに出力する。
具体的には、アプリケーションIDは、処理結果がフィードバックされるアプリケーションを示すために使用される。VENCモジュールは、CPUによって送信された構成パラメータの指示に基づいて、生成されたビデオストリームをUVCチャネルを通してCameraHALドライバに出力することができる。例えば、VENCモジュールは、UVCメッセージをCameraHALドライバに送信し、UVCメッセージは、生成されたビデオストリームを含む。
S102~S108において、各モジュールが実行する処理は、前段のモジュールが入力した処理結果のみに基づく。アプリケーションIDは、処理結果が対応するアプリケーションを識別するために用いられる。
他の実施形態では、アプリケーションIDは、アプリケーションのサブ機能IDと置き換えられてもよい。例えば、「遠隔ハウスキーピング」は、サブ機能と見なされてもよく、「スマートスクリーン」アプリケーションに統合される。「スマートスクリーン」アプリケーションは、カメラに関連付けられた複数のサブ機能を含む。遠隔ハウスキーピング機能は、「スマートスクリーン」アプリケーションのサブ機能にすぎない。「スマートスクリーン」アプリケーションは、カメラに関連する他のサブ機能をさらに含むことができる。ユーザが「スマートスクリーン」アプリケーションの遠隔ハウスキーピングサブ機能をタップすると、スマートスクリーン(大型スクリーン)がカメラを使用する。ユーザが、カメラに関連する「スマートスクリーン」アプリケーションの他のサブ機能をタップすると、スマートスクリーン(大型スクリーン)もカメラを使用する。別の例では、「スマートスクリーン」アプリケーションおよび「子供モード」アプリケーションがユーザの携帯電話上に提供され、「スマートスクリーン」アプリケーションは遠隔ハウスキーピングサブ機能を含む。同様に、「子供モード」アプリケーションがタップされた後、スマートスクリーン(大型スクリーン)はカメラを使用し、遠隔ハウスキーピングサブ機能がタップされた後、スマートスクリーン(大型スクリーン)もカメラを使用する。特に明記しない限り、この段落の内容は、図5b-1~図5d-4および図7a-1~図7d-4の実施形態にも適用可能であり、以下では再度説明しない。
図5a-1および図5a-2に示される実施形態に基づいて、第2の電子デバイスによって第1の電子デバイスのカメラを遠隔で使用する方法ステップが、図5b-1~図5b-5を参照してさらに説明される。同じアプリケーションが第1の電子デバイスおよび第2の電子デバイスの両方にインストールされ、第1の電子デバイスにおいて同じアプリケーションを実行するためのアカウントは、第2の電子デバイスにおいて同じアプリケーションを実行するためのアカウントと同じであるか、またはアカウントは、同じグループ、例えば、ファミリーグループに属する。第2の電子デバイス内の同じアプリケーションが実行されると、第1の電子デバイス内の同じアプリケーションが開始される。第1の電子デバイスは、スクリーンオフ状態であってよく、すなわち、いかなるコンテンツも表示しないか、またはスクリーンオン状態であってよい。しかしながら、第1の電子デバイスは、実際には同じアプリケーションを開始する。具体的なステップは以下の通りである。
S201:第1のアプリケーションは、第1のアプリケーションIDを含む使用要求メッセージをCameraHALドライバに入力する。
具体的には、開始された後、第1のアプリケーションは、CameraHALドライバによって送信された第1のアプリケーションIDを取得し、カメラの使用を要求するために、第1のアプリケーションIDを含む使用要求メッセージをCameraHALドライバに入力する。例えば、ユーザは、第2の電子デバイスを使用することによって、第1のアプリケーションを開始するように遠隔でトリガしてもよく、またはユーザは、第1の電子デバイス上で直接、第1のアプリケーションを開始するようにトリガしてもよい。これは本出願では限定されない。
例えば、第1のアプリケーションIDは、第1のアプリケーションのIDであってもよく、または第1のアプリケーションのサブ機能のIDであってもよい。
S202:CameraHALドライバは、UVCチャネルを通じてカメラに、第1のアプリケーションIDを含む第1のメッセージを入力する。
S203:CPUは、第1のメッセージを受信し、第1のアプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
S204:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果および第1のアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果および第1のアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S205:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。
S206:VPSSモジュールは、処理結果および第1のアプリケーションIDをAIモジュールに出力し、AIモジュールは、処理結果を取得するために、VPSSモジュールによって入力された処理結果に対して対応する処理を実行する。
S207:AIモジュールは、Socketチャネルを介してCameraProxyドライバに処理結果および第1のアプリケーションIDを出力する。
S208:CameraProxyドライバは、第1のアプリケーションIDに基づいて、処理結果を第1のアプリケーションに返す。
例えば、CameraProxyドライバが、AIモジュールによって入力された処理結果および第1のアプリケーションIDを受信した後、すなわち、AIイベントおよび第1のアプリケーションIDを搬送するSocketメッセージを受信した後、CameraProxyドライバは、第1のアプリケーションがAIイベントに対して対応する処理を実行するように、AIイベントを第1のアプリケーションに報告してもよい。
S209:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。
S210:VPSSモジュールは、処理結果および第1のアプリケーションIDをVENCモジュールまたはVGSモジュールに出力し、VENCモジュールまたはVGSモジュールは、対応する処理を実行して処理結果を取得する。
S211:VENCモジュールは、処理結果および第1のアプリケーションIDを、UVCチャネルを介してCameraHALドライバに出力する。
S202~S207およびS209~S211の具体的な内容は、それぞれS101~S109の内容と同じである。ここでは詳細を繰り返さない。
S212:CameraHALドライバは第1のアプリケーションIDに基づいて処理結果を第1のアプリケーションに返す。
例えば、CameraHALドライバが、VENCモジュールによって入力された処理結果および第1のアプリケーションIDを受信した後、すなわち、ビデオストリームおよび第1のアプリケーションIDを搬送するUVCメッセージを受信した後、CameraHALドライバは、ビデオストリームを第1のアプリケーションに報告することができ、その結果、第1のアプリケーションは、ビデオストリームに対して対応する処理を実行し、例えば、ビデオストリームをレンダリングおよび表示する。
S213:第2のアプリケーションは、第2のアプリケーションIDを含む使用要求メッセージをCameraHALドライバに入力する。
例えば、第2のアプリケーションIDのみが、この実施形態における説明のための例として使用される。他の実施形態では、第1のアプリケーションは、第1のアプリケーションの別のサブ機能のアプリケーションサブ機能IDを含む使用要求メッセージをCameraHALドライバに入力することができ、または第2のアプリケーションは、第2のアプリケーションのサブ機能に対応するアプリケーションサブ機能IDを含む使用要求メッセージをCameraHALドライバに入力することができる。
S214:CameraHALドライバは、UVCチャネルを介してカメラに、第2のアプリケーションIDを含む第2のメッセージを入力する。
S215:CPUは、第2のメッセージを受信し、第2のアプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
可能な実装形態では、VENCモジュールは専用モジュールであり、すなわち、VENCモジュールは1つのビデオ処理のみを実行することができる。VENCモジュールが第1のアプリケーションによって使用されている場合、第2のアプリケーションは、第1のアプリケーションがVENCモジュールの使用を終了した後にのみ、VENCモジュールを使用する。VENCモジュールがいずれのアプリケーションによっても使用されない場合、第2のアプリケーションはVENCモジュールを直接使用することができる。別の可能な実装形態では、AIモジュールは非排他的モジュールであり、すなわち、AIモジュールは1つ以上のプロセスを実行することができる。AIモジュールが使用されたか否かにかかわらず、第2のアプリケーションは、AIモジュールを直接使用することができる。
S216:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果および第2のアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果および第2のアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S217:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。
S218:VPSSモジュールは、処理結果および第2のアプリケーションIDをAIモジュールに出力し、AIモジュールは、対応する処理を実行して処理結果を取得する。
S219:AIモジュールは、Socketチャネルを介してCameraProxyドライバに処理結果および第2のアプリケーションIDを出力する。
S220:CameraProxyドライバは、第2のアプリケーションIDに基づいて、処理結果を第2のアプリケーションに返す。
S221:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。
S222:VPSSモジュールは、処理結果および第2のアプリケーションIDをVENCモジュールまたはVGSモジュールに出力し、VENCモジュールまたはVGSモジュールは、対応する処理を実行して処理結果を取得する。
S223:VENCモジュールは、処理結果および第2のアプリケーションIDを、UVCチャネルを介してCameraHALドライバに出力する。
S224:CameraHALドライバは第2のアプリケーションIDに基づいて処理結果を第2のアプリケーションに返す。
S213~S224の具体的な内容については、S201~S212を参照されたい。ここでは詳細を繰り返さない。
図5c-1~図5c-4を参照して、以下では、第2の電子デバイスが第1の電子デバイスのカメラを遠隔で使用する方法手順をさらに説明する。図5c-1~図5c-4に示されるように、カメラ使用方法は、第1の電子デバイス内の第1のアプリケーションが「遠隔ハウスキーピング」アプリケーションであり、第1の電子デバイス内の第2のアプリケーションが「子供モード」アプリケーションである例を使用することによって説明される。カメラを使用する場合、「遠隔ハウスキーピング」アプリケーションは、カメラを使用してホームビデオを撮影または記録し、その結果、ユーザは、第1の電子デバイスを使用することによって、自宅の状況を遠隔で学習することができる。カメラを使用するとき、「子供モード」アプリケーションは、子の画像を動的に収集するためにカメラを使用し、AI認識を通じて子供の状態を決定して認識し、その結果、ユーザは、第1の電子デバイスを使用することによって子供の状態を遠隔で学習することができる。例えば、子供が横臥状態である場合、横臥状態AIイベントが存在すると決定される。
図5c-1~図5c-4に示すように、第2の電子デバイスが「遠隔ハウスキーピング」アプリケーションを開始し、第1の電子デバイスが「遠隔ハウスキーピング」アプリケーションを開始した後(第1の電子デバイスはスクリーンオフ状態またはスクリーンオン状態であってもよい)、第2の電子デバイスによって第1の電子デバイスのカメラを遠隔的に使用する方法ステップは以下の通りである。
S301:「遠隔ハウスキーピング」アプリケーションは、遠隔ハウスキーピングアプリケーションIDを含む使用要求メッセージをCameraHALドライバに入力する。
「遠隔ハウスキーピング」アプリケーションは、第1の電子デバイスにインストールされた「遠隔ハウスキーピング」アプリケーションである。「遠隔ハウスキーピング」アプリケーションは、第1の電子デバイスおよび第2の電子デバイスの両方にインストールされる。開始された後、「遠隔ハウスキーピング」アプリケーションは、遠隔ハウスキーピングアプリケーションIDを取得し、カメラを使用することを要求するために、使用要求メッセージをCameraHALドライバに送信し、メッセージは、遠隔ハウスキーピングアプリケーションIDを搬送する。「遠隔ハウスキーピング」アプリケーションは、第1の電子デバイス内の「遠隔ハウスキーピング」アプリケーションであってもよい。
「遠隔ハウスキーピング」アプリケーションは、具体的には、3つのサブ機能、すなわち、AI機能、ビデオストリーミング機能、ならびにAI機能およびビデオストリーミング機能を含むことに留意されたい。異なるサブ機能は、異なる「遠隔ハウスキーピング」アプリケーションIDに対応する。例えば、AI機能、ビデオストリーミング機能、およびAI機能とビデオストリーミング機能に対応する「遠隔ハウスキーピング」アプリケーションIDは、それぞれID 11、ID 12、およびID 13である。例えば、ユーザが「遠隔ハウスキーピング」アプリケーションを開始すると、ユーザが前述の3つの機能のうちの1つを選択するための選択インターフェースがポップアップされる。ユーザによるいずれかの機能の選択に基づいて、対応するアプリケーションIDが取得される。例えば、ユーザがビデオストリーミング機能を選択した場合、取得されるアプリケーションIDはID 12である。
S302:CameraHALドライバは、UVCチャネルを通じて、遠隔ハウスキーピングアプリケーションIDを含む第1のメッセージをカメラに入力する。
S303:CPUは、第1のメッセージを受信し、遠隔ハウスキーピングアプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
S304:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果および遠隔ハウスキーピングアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果および遠隔ハウスキーピングアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S305:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。
S306:VPSSモジュールは、処理結果および遠隔ハウスキーピングアプリケーションIDをVGSモジュールに出力し、VGSモジュールは、VPSSモジュールの入力に基づいて対応する処理を実行し、処理結果および遠隔ハウスキーピングアプリケーションIDをVENCモジュールに出力し、VENCモジュールは、対応する処理を実行して、処理結果を取得する。
S307:VENCモジュールは、処理結果および遠隔ハウスキーピングアプリケーションIDを、UVCチャネルを介してCameraHALドライバに出力する。
S308:CameraHALドライバは、遠隔ハウスキーピングアプリケーションIDに基づいて、処理結果を「遠隔ハウスキーピング」アプリケーションに返す。
例えば、最後に、処理結果を受信した後、第1の電子デバイスの「遠隔ハウスキーピング」アプリケーションは、取得された処理結果、すなわち、ビデオストリームを第2の電子デバイス(例えば、携帯電話)の「遠隔ハウスキーピング」アプリケーションに送信する。ユーザは、携帯電話内の「遠隔ハウスキーピング」アプリケーションを使用することによって、第1の電子デバイスのカメラによって撮影されたホームピクチャを見ることができる。
S309:「子供モード」アプリケーションは、CameraHALドライバに対して、子供モードアプリケーションIDを含む使用要求メッセージを入力する。
例えば、ユーザは、第2の電子デバイスの「遠隔ハウスキーピング」アプリケーションをバックグラウンドに配置することができ、すなわち、「遠隔ハウスキーピング」アプリケーションは、依然として第1の電子デバイスのカメラを遠隔で使用し、ユーザは、第2の電子デバイス(例えば、携帯電話)を使用することによって、「子供モード」アプリケーションを開始するようにトリガすることができる。例えば、「子供モード」アプリケーションは、AI機能のみを有し、他のサブ機能を有さない。子供モードアプリケーションIDは、子供モードアプリケーションのアプリケーションパッケージ名であってもよい。
S310:CameraHALドライバは、UVCチャネルを介して、子供モードアプリケーションIDを含む第2のメッセージをカメラに入力する。
S311:CPUは、第2のメッセージを受信し、子供モードアプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
具体的には、CPUは、センサモジュールに命令を出力して、画像を収集するようにセンサモジュールに命令する。センサモジュール、VIモジュール、VPSSモジュール、およびAIモジュールは、CPUによって提供される構成パラメータに基づいて開始され、センサモジュールの構成パラメータは、処理結果をVIモジュールに出力するようにセンサモジュールに指示する。VIモジュールの構成パラメータは、処理結果をVPSSモジュールに出力するようにVIモジュールに指示する。VPSSモジュールの構成パラメータは、処理結果をAIモジュールに出力するようにVPSSモジュールに指示する。AIモジュールの構成パラメータは、処理結果をCameraProxyドライバに出力することをAIモジュールに指示する。VGSモジュールの構成パラメータは、VGSモジュールが開始される必要がないことを示し、VENCモジュールの構成パラメータは、VENCモジュールが開始される必要がないことを示す。
S312:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果および子供モードアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果および子供モードアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S313:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。
S314:VPSSモジュールは、処理結果および子供モードアプリケーションIDをAIモジュールに出力し、AIモジュールは、VPSSモジュールの入力に基づいて対応する処理を実行して、処理結果を取得する。
例えば、VPSSモジュールによる処理によって取得された受信画像に基づいて、AIモジュールは、画像に対してAI認識を実行し、認識された特徴に基づいて、対応するAIイベントが存在するかどうかを検出する。この実施形態では、AIイベントは、子供横臥AIイベントである。子供横臥AIイベントを検出した場合、AIモジュールはS315を実行する。子供横臥AIイベントを検出しない場合、AIモジュールは、VPSSモジュールによる処理によって取得された画像に対してAI検出を実行し続ける。
S315:AIモジュールは、Socketチャネルを介してCameraProxyドライバに子供モードアプリケーションIDを出力する。
例えば、AIモジュールは、SocketメッセージをCameraProxyドライバに送信し、ここで、メッセージは、子供横臥AIイベントを搬送する。
S316:CameraProxyドライバは、子供モードアプリケーションIDに基づいて、処理結果を「子供モード」アプリケーションに返す。
例えば、CameraProxyドライバは、子供横臥AIイベントを「子供モード」アプリケーションに報告する。「子供モード」アプリケーションは、子供横臥AIイベントをユーザの第2の電子デバイスに送信して、第2の電子デバイスの「子供モード」アプリケーションを使用することによって、子供横臥AIイベントが存在することをユーザに通知してもよく、ユーザは、子供が家で横臥していることを知ることができる。
S317:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。
例えば、「子供モード」アプリケーションに対応するモジュール使用方法は、VENCモジュールまたはVGSモジュールが開始される必要がないことを示す。したがって、VPSSモジュールは、CPUによって送信された構成パラメータに基づいて、処理結果がVENCモジュールまたはVGSモジュールに出力される必要がないことを決定し得る。
S301~S317で説明していない内容は、S201~S222と同様である。ここでは詳細を繰り返さない。
別の例では、第1のアプリケーションは「AIフィットネス」アプリケーションであってもよく、第2のアプリケーションは「子供モード」アプリケーションであってもよい。カメラを使用するとき、「AIフィットネス」アプリケーションは、カメラを使用してユーザの現在の画像を収集し、AI認識を通じて、ユーザのフィットネスアクションが標準であるかどうかを決定する。例えば、「AIフィットネス」アプリケーションは、ユーザのフィットネス行動が標準ではないと決定した場合、非標準行動AIイベントが存在すると決定する。
図5d-1~図5d-4に示すように、第2の電子デバイスによって第1の電子デバイスのカメラを遠隔で使用する方法ステップは、以下の通りである。
S401:「AIフィットネス」アプリケーションは、CameraHALドライバに対してAIフィットネスアプリケーションIDを含む使用要求メッセージを入力する。
例えば、「AIフィットネス」アプリケーションは、AI機能のみを有し、他のサブ機能を有さない。AIフィットネスアプリケーションIDは、AIフィットネスアプリケーションのアプリケーションパッケージ名であってもよい。
S402:CameraHALドライバは、UVCチャネルを介してカメラに、AIフィットネスアプリケーションIDを含む第1のメッセージを入力する。
S403:CPUは、第1のメッセージを受信し、AIフィットネスアプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
S404:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果およびAIフィットネスアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果およびAIフィットネスアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S405:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。
S406:VPSSモジュールは、処理結果およびAIフィットネスアプリケーションIDをAIモジュールに出力し、AIモジュールは、VPSSモジュールの入力に基づいて対応する処理を実行して、処理結果を取得する。
S407:AIモジュールは、処理結果およびAIフィットネスアプリケーションIDを、Socketチャネルを介してCameraProxyドライバに出力する。
S408:CameraProxyドライバは、AIフィットネスアプリケーションIDに基づいて、処理結果を「AIフィットネス」アプリケーションに返す。
S409:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。CPUによってVPSSモジュールに出力された構成パラメータが、処理結果をVENCモジュールまたはVGSモジュールに出力しないことを示した後、S410が実行される。
S410:「子供モード」アプリケーションは、CameraHALドライバに対して、子供モードアプリケーションIDを含む使用要求メッセージを入力する。
S411:CameraHALドライバは、UVCチャネルを介して、子供モードアプリケーションIDを含む第2のメッセージをカメラに入力する。
S412:CPUは、第2のメッセージを受信し、子供モードアプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
S413:センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果および子供モードアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果および子供モードアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S414:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。CPUによってVPSSモジュールに出力された構成パラメータが、処理結果をAIモジュールに出力することを示した後、S415が実行される。
S415:VPSSモジュールは、処理結果および子供モードアプリケーションIDをAIモジュールに出力し、AIモジュールは、VPSSモジュールの入力に基づいて対応する処理を実行して、処理結果を取得する。
S416:AIモジュールは、Socketチャネルを介してCameraProxyドライバに子供モードアプリケーションIDを出力する。
S417:CameraProxyドライバは、子供モードアプリケーションIDに基づいて、処理結果を「子供モード」アプリケーションに返す。
S418:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。
S401~S418で説明していない内容は、S301~S317と同様である。ここでは詳細を繰り返さない。
実施形態2
図6は、本出願の実施形態2による、カメラが電子デバイスに接続された構造の概略図である。図6のカメラ600に含まれる構成要素は、参照番号がそれに応じて調整されていることを除いて、図4のカメラ400に含まれる構成要素と同じである。例えば、図6のVPSSモジュール622および図4のVPSSモジュール422は、同じ機能および用途を有する。したがって、カメラ600に含まれる構成要素については、図4の対応する構成要素の説明を参照されたい。ここでは詳細を繰り返さない。
図6において、カメラ600はまた、USBインターフェースを介して電子デバイス610に接続される。なお、USBインターフェースは一例であり、カメラ600と電子デバイス610との接続を実装するために、UARTやUSARTなどの他のインターフェースを用いてもよい。図6は、電子デバイス610のHAL 612において、HAL 612が少なくともCameraProxyドライバを含む点で、図4とは異なる。CameraProxyドライバは、Socketチャネルを介してAIモジュール623によって入力されるデータと、UVCチャネルを介してVENCモジュール624によって入力されるデータとを受信するために使用される。CameraProxyドライバは、電子デバイスの一方の側のカメラのプロキシである。CameraProxyドライバは、カメラによってアップロードされたデータの2つのストリームを受信し、データの2つのストリームを電子デバイスの上位層に送信し続けるために使用され、電子デバイスの上位層からデータを受信し、ハードウェア層を使用することによって2つのストリームを介してデータをカメラに送信するために使用される。カメラ600が1つのUSBインターフェースを介して電子デバイス610に接続される場合、SocketメッセージおよびUVCメッセージは、1つのUSBケーブルを介して送信されることに留意されたい。送信プロセスでは、カメラのAIモジュールまたはVENCモジュールは、それぞれのデータを送信するために先制的またはバランスのとれた方法でUSBケーブルを占有することができる。Socketチャネルを介してデータを入力するために、Socketメッセージを送信することが一例として使用される。UVCチャネルを介してデータを入力するために、UVCメッセージ、例えばSET_CURメッセージを送信することが一例として使用される。
可能な実装形態では、CameraProxyドライバは、電子デバイス610内の開始されたアプリケーションのアプリケーション識別情報および/またはタイプを取得し、取得されたアプリケーション識別情報および/またはタイプをカメラ600に送信することができる。カメラ600のCPU 640は、受信したアプリケーション識別情報および/またはタイプに基づいてモジュールの構成パラメータを決定し、モジュールの構成パラメータをモジュールにそれぞれ送信する。各モジュールは、受信した構成パラメータに基づいて、開始、実行、動作の判断、処理結果をどのブランチに送信するかの判断などを行う。
任意選択で、メモリ650は、アプリケーション識別情報(すなわち、アプリケーションID)と、タイプと、モジュール使用方式との間の対応関係を記憶する。カメラ600のCPU 640は、受信したアプリケーション識別情報に基づいて、対応するタイプおよびモジュールの使用方式を取得し、対応するモジュールを開始(または使用)する。
代替的に、メモリ650は、アプリケーション識別情報(すなわち、アプリケーションID)とタイプとモジュール使用方式との間の対応関係を記憶しない。
特に明記しない限り、本出願の実施形態2における関連内容は、本出願の実施形態1における関連内容と同一または同様である。ここでは詳細を繰り返さない。
図7a-1および図7a-2において電子デバイスのCameraProxyドライバがカメラを使用する過程は、図5a-1および図5a-2においてCameraHALドライバおよびCameraProxyドライバがカメラを使用する過程と基本的に同一である。違いは、図5a-1および図5a-2では、第1のメッセージがCameraHALドライバによって送信され、AIモジュールまたはVENCモジュールの処理結果がCameraProxyドライバによって受信されることである。対照的に、図7a-1および図7a-2では、第1のメッセージはCameraProxyドライバによって送信され、AIモジュールまたはVENCモジュールの処理結果もCameraProxyドライバによって受信される。図7a-1および図7a-2において、電子デバイスのCameraProxyドライバがカメラを使用するプロセスの具体的なステップは以下の通りである。
S601:CameraProxyドライバは、UVCチャネルを介して、アプリケーションIDを含む第1のメッセージをカメラに入力する。
S602:CPUは、第1のメッセージを受信し、アプリケーションIDに基づいて、タイプおよび開始されるべきモジュールを決定し、命令をセンサモジュールに出力し、それぞれの構成パラメータをセンサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールに出力し、命令は、特定の機能を実行するようにセンサモジュールに命令するために使用され、構成パラメータは、センサモジュール、VIモジュール、VPSSモジュール、AIモジュール、VENCモジュール、およびVGSモジュールを構成するために使用される。
S603.センサモジュールは、CPUの命令に従って対応する処理を実行し、処理結果およびアプリケーションIDをVIモジュールに出力し、VIモジュールは、センサモジュールの入力に基づいて対応する処理を実行し、処理結果およびアプリケーションIDをVPSSモジュールに出力し、VPSSモジュールは、対応する処理を実行して処理結果を取得する。
S604:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をAIモジュールに出力すべきかどうかを示す。CPUによってVPSSモジュールに出力された構成パラメータが、処理結果をAIモジュールに出力することを示した後、S605が実行され、そうでなければ、S608が実行される。
S605:VPSSモジュールは、処理結果およびアプリケーションIDをAIモジュールに出力し、AIモジュールは、対応する処理を実行して処理結果を取得する。
S606:AIモジュールは、Socketチャネルを介してCameraProxyドライバに処理結果およびアプリケーションIDを出力する。
S607:CPUによってVPSSモジュールに出力された構成パラメータは、処理結果をVENCモジュールまたはVGSモジュールに出力すべきかどうかを示す。CPUによってVPSSモジュールに出力された構成パラメータが、処理結果をVENCモジュールまたはVGSモジュールに出力することを示した後、S608が実行される。
S608:VPSSモジュールは、処理結果およびアプリケーションIDをVENCモジュールまたはVGSモジュールに出力し、VENCモジュールまたはVGSモジュールは、対応する処理を実行して処理結果を取得する。
S609:VENCモジュールは、UVCチャネルを介して処理結果をCameraProxyドライバに出力する。
図7b-1~図7b-5は、第2の電子デバイスによって第1の電子デバイスのカメラを遠隔で使用する方法ステップをさらに示す。図7b-1~図7b-5の内容は、図5b-1~図5b-5と基本的に同じである。違いは、図5b-1~図5b-5では、第1のアプリケーションと第2のアプリケーションの両方が、CameraHALドライバを使用することによってアプリケーションIDを含むメッセージをカメラに送信し、CameraHALドライバまたはCameraProxyドライバを使用することによって異なるアプリケーションIDに基づいて処理結果およびアプリケーションIDを受信することである。これに対して、図7b-1~図7b-5では、第1のアプリケーションおよび第2のアプリケーションの双方が、CameraProxyドライバを用いてアプリケーションIDを含むメッセージをカメラに送信し、CameraProxyドライバを用いて処理結果およびアプリケーションIDを受信する。図7b-1~図7b-5の具体的なステップは、本明細書では説明されない。
特定のアプリケーションを参照すると、図7c-1および図7c-4ならびに図7d-1~図7d-4は、第2の電子デバイスによって第1の電子デバイスのカメラを遠隔で使用する方法ステップをさらに示す。図7c-1~図7c-4では、第1のアプリケーションは「遠隔ハウスキーピング」アプリケーションであり、第2のアプリケーションは「子供モード」アプリケーションである。図7d-1~図7d-4において、第1のアプリケーションは「AIフィットネス」アプリケーションであり、第2のアプリケーションは「子供モード」アプリケーションである。図7c-1および図7c-4の内容は、図5c-1~図5c-4と基本的に同じであり、図7d-1~図7d-4の内容は、図5d-1~図5d-4と基本的に同じである。違いは、図5c-1~図5c-4および図5d-1~図5d-4では、2つのアプリケーションの両方が、CameraHALドライバを使用することによってアプリケーションIDを含むメッセージをカメラに送信し、CameraHALドライバまたはCameraProxyドライバを使用することによって異なるアプリケーションIDに基づいて処理結果およびアプリケーションIDを受信することである。これに対して、図7c-1~図7c-4および図7d-1~図7d-4では、2つのアプリケーションの双方が、CameraProxyドライバを用いてアプリケーションIDを含むメッセージをカメラに送信し、CameraProxyドライバを用いて処理結果およびアプリケーションIDを受信する。図7c-1および図7c-4ならびに図7d-1~図7d-4の具体的なステップは、本明細書では説明されない。
要約すると、本出願では、カメラの対応するモジュールは、複数のアプリケーションがカメラを使用するように、タイプに基づく動的使用方法を実装するために、異なるタイプに基づいて開始され得る。
前述の機能を実装するために、電子デバイスは、機能を実行するための対応するハードウェアおよび/またはソフトウェアモジュールを含むことが理解され得る。本明細書で開示される実施形態で説明された例のアルゴリズムステップに関して、本出願は、ハードウェアの形態で、またはハードウェアとコンピュータソフトウェアとの組み合わせの形態で実装され得る。機能がハードウェアによって実行されるか、またはコンピュータソフトウェアによって駆動されるハードウェアによって実行されるかは、技術的解決策の特定の用途および設計制約に依存する。当業者は、実施形態を参照して各特定の用途のために説明された機能を実装するために異なる方法を使用し得るが、実装形態が本出願の範囲を超えると見なすべきではない。
本実施形態では、電子デバイスの機能モジュールは、前述の方法例に基づく分割を通じて取得されてよい。例えば、各機能モジュールが各機能に対応して分割されていてもよいし、2以上の機能が1つの処理モジュールに統合されていてもよい。統合されたモジュールは、ハードウェアを使用することによって実装され得る。実施形態では、モジュールへの分割は一例であり、論理的な機能分割にすぎず、実際の実装形態の間の他の分割であってもよいことに留意されたい。
別の例では、図8は、本出願の一実施形態による装置800の概略ブロック図を示す。装置800は、プロセッサ801と、トランシーバ/トランシーバピン802とを含み得る。任意選択で、装置800はメモリ803をさらに含む。
装置800の構成要素は、バス804を介して互いに結合される。データバスに加えて、バス804は、電力バス、制御バス、およびステータス信号バスをさらに含む。しかしながら、明確な説明のために、図中の種々のタイプのバスはバス804としてマークされている。
任意選択で、メモリ803は、前述の方法実施形態における命令を記憶するように構成されてもよい。プロセッサ801は、メモリ803内の命令を実行し、信号を受信するように受信ピンを制御し、信号を送信するように送信ピンを制御するように構成され得る。
装置800は、前述の方法の実施形態における第1の電子デバイス、第2の電子デバイス、またはカメラであり得る。
方法の実施形態におけるステップの全ての関連する内容は、対応する機能モジュールの機能説明において引用され得る。ここでは詳細を繰り返さない。
一実施形態は、コンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体は、コンピュータ命令を記憶する。コンピュータ命令が電子デバイス上で実行されると、電子デバイスは、前述の実施形態におけるカメラ使用方法を実装するために前述の関連する方法ステップを実行することが可能になる。
一実施形態は、コンピュータプログラム製品をさらに提供する。コンピュータプログラム製品がコンピュータ上で実行されると、コンピュータは、前述の実施形態におけるカメラ使用方法を実装するために前述の関連するステップを実行することが可能になる。
加えて、本出願の一実施形態は、装置をさらに提供する。装置は、具体的には、チップ、構成要素、またはモジュールであってよく、装置は、互いに接続されたプロセッサおよびメモリを含んでよい。メモリは、コンピュータ実行可能命令を記憶するように構成される。装置が動作するとき、プロセッサは、メモリに記憶されたコンピュータ実行可能命令を実行することができ、その結果、チップは、前述の方法の実施形態におけるカメラ使用方法を実行する。
実施形態において提供される電子デバイス、コンピュータ記憶媒体、コンピュータプログラム製品、またはチップは、上記で提供された対応する方法を実行するように構成される。したがって、その有益な効果については、上記で提供された対応する方法の有益な効果を参照することができる。ここでは詳細を繰り返さない。
前述の実装形態の説明に基づいて、当業者は、便利で簡潔な説明のために、前述の機能モジュールへの分割が単に説明のための例として使用されていることを理解することができる。実際の適用では、上述の機能がさまざまな機能モジュールに割り当てられ、要件に基づいて実装されることができ、すなわち、装置の内部構造がさまざまな機能モジュールに分割されて、上述の機能の全てまたは一部を実装する。
本出願で提供される一部の実施形態では、開示された装置および方法が他の方式で実装され得ることを理解されたい。例えば、説明された装置の実施形態は単なる例である。例えば、モジュールまたはユニットへの分割は、単に論理的な機能分割であり、実際の実装形態では他の分割であってもよい。例えば、複数のユニットまたは構成要素は、別の装置に組み合わされるかまたは統合されてもよく、または一部の特徴は、無視されるかまたは実行されなくてもよい。加えて、表示または議論される相互結合または直接結合または通信接続は、一部のインターフェースを通して実装されてもよい。装置またはユニット間の間接結合または通信接続は、電気的、機械的、または他の形態で実装されてもよい。
別個の部分として説明されるユニットは、物理的に別個であってもなくてもよく、ユニットとして表示される部分は、1つ以上の物理的ユニットであってもよく、1つの場所に位置してもよく、または複数の異なる場所に分散されてもよい。ユニットの一部または全部は、実施形態の解決策の目的を達成するための実際の要件に基づいて選択されてもよい。
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、ユニットの各々は、物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形態で実装されてよく、またはソフトウェア機能ユニットの形態で実装されてよい。
本出願の実施形態における任意の内容および同じ実施形態における任意の内容は、自由に組み合わせることができる。前述の内容の任意の組み合わせは、本出願の範囲内にある。
統合されたユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用されるとき、統合されたユニットは、可読記憶媒体に記憶されてよい。かかる理解に基づいて、本出願の実施形態の技術的解決策は本質的に、または従来技術に寄与する部分は、または技術的解決策の全部もしくは一部は、ソフトウェア製品の形態で実装され得る。ソフトウェア製品は、記憶媒体に記憶され、(シングルチップマイクロコンピュータ、チップなどであり得る)デバイスまたはプロセッサ(processor)に、本出願の実施形態における方法のステップの全部または一部を実行するように命令するための一部の命令を含む。前述の記憶媒体は、プログラムコードを記憶することができる任意の媒体、例えば、USBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(read only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、または光ディスクを含む。
前述の説明は、本出願の特定の実装形態にすぎず、本出願の保護範囲を限定することを意図するものではない。本出願で開示された技術的範囲内で当業者によって容易に考え出される任意の変形または置換は、本出願の保護範囲内に入るものとする。したがって、本出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
1 アンテナ
2 アンテナ
100 第1の電子デバイス
110 プロセッサ
120 外部メモリインターフェース
121 内部メモリ
130 USBインターフェース
140 充電管理モジュール
141 電力管理モジュール
142 バッテリ
150 モバイル通信モジュール
160 無線通信モジュール
170 オーディオモジュール
170A ラウドスピーカ
170B 電話受信機/レシーバ
170C マイクロフォン
170D ヘッドセットジャック
180 センサモジュール
180A 圧力センサ
180B ジャイロセンサ
180C 気圧センサ
180D 磁気センサ
180E 加速度センサ
180F 距離センサ
180G 光学式近接センサ
180H 指紋センサ
180J 温度センサ
180K タッチセンサ
180L 環境光センサ
180M 骨伝導センサ
190 キー
191 モータ
192 インジケータ
193 カメラ
194 ディスプレイ
195 加入者識別モジュールカードインターフェース
200 第2の電子デバイス
400 カメラ
410 電子デバイス
411 ハードウェア層
412 HAL
420 ISP
421 VIモジュール
422 VPSSモジュール
423 AIモジュール
424 VENCモジュール
425 VGSモジュール
430 センサモジュール
440 CPU
450 メモリ
600 カメラ
610 電子デバイス
612 HAL
622 VPSSモジュール
623 AIモジュール
624 VENCモジュール
640 CPU
650 メモリ
800 装置
801 プロセッサ
802 トランシーバ/トランシーバピン
803 メモリ
804 バス

Claims (34)

  1. カメラであって、前記カメラは、第1のインターフェースを介して電子デバイスに接続され、前記カメラは、
    1つ以上のプロセッサと、
    メモリと、
    1つ以上のコンピュータプログラムと、を備え、前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記カメラは、
    アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、
    別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、
    を実行することが可能になる、カメラ。
  2. 前記カメラは、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップ
    をさらに実行する、請求項1に記載のカメラ。
  3. 前記カメラは、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応する前記タイプが第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第1の処理結果を出力するステップと、
    前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第2の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第3の処理結果を出力するステップと、
    前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    をさらに実行する、請求項1または2に記載のカメラ。
  4. 前記カメラは、
    1つ以上のセンサモジュール、ビデオ入力モジュール、ビデオ処理サブシステムモジュール、人工知能モジュール、ビデオエンコーディングモジュール、およびビデオグラフィックスシステムモジュールをさらに備え、
    前記センサモジュールは、画像を収集し、前記収集された画像を前記ビデオ入力モジュールに出力するように構成され、
    前記ビデオ入力モジュールは、前記センサモジュールによって収集された前記画像を前処理するように構成され、
    前記ビデオ処理サブシステムモジュールは、前記ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を行うように構成され、
    前記人工知能モジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、前記第1のインターフェースを介して前記第1のメッセージタイプの人工知能イベントを出力するように構成され、
    前記ビデオグラフィックスシステムモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像に対してズーム処理を実行し、ズーム処理によって取得された画像を前記ビデオエンコーディングモジュールに出力するように構成され、
    前記ビデオエンコーディングモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像または前記ビデオグラフィックスシステムモジュールによるズーム処理によって取得された前記画像をエンコーディングしてビデオストリームを生成し、前記第1のインターフェースを介して前記第2のメッセージタイプの前記ビデオストリームを出力するように構成されている、
    請求項1から3のいずれか一項に記載のカメラ。
  5. 前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、
    前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、
    前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む、
    請求項4に記載のカメラ。
  6. 前記第1のタイプは、人工知能タイプであり、前記第2のタイプは、ビデオストリームタイプであり、前記第3のタイプは、前記人工知能タイプ+前記ビデオストリームタイプであり、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースは、USBインターフェースである、請求項1から5のいずれか一項に記載のカメラ。
  7. カメラであって、前記カメラは、第1のインターフェースおよび第2のインターフェースを介して電子デバイスに接続され、前記カメラは、
    1つ以上のプロセッサと、
    メモリと、
    1つ以上のコンピュータプログラムと、を備え、前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記カメラは、
    アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第2のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、
    別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、
    を実行することが可能になる、カメラ。
  8. 前記カメラは、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップ
    をさらに実行する、請求項7に記載のカメラ。
  9. 前記カメラは、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応する前記タイプが第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第1の処理結果を出力するステップと、
    前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第2の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第3の処理結果を出力するステップと、
    前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    をさらに実行する、請求項7または8に記載のカメラ。
  10. 前記カメラは、
    1つ以上のセンサモジュール、ビデオ入力モジュール、ビデオ処理サブシステムモジュール、人工知能モジュール、ビデオエンコーディングモジュール、およびビデオグラフィックスシステムモジュールをさらに備え、
    前記センサモジュールは、画像を収集し、前記収集された画像を前記ビデオ入力モジュールに出力するように構成され、
    前記ビデオ入力モジュールは、前記センサモジュールによって収集された前記画像を前処理するように構成され、
    前記ビデオ処理サブシステムモジュールは、前記ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を行うように構成され、
    前記人工知能モジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、前記第1のインターフェースを介して前記第1のメッセージタイプの人工知能イベントを出力するように構成され、
    前記ビデオグラフィックスシステムモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像に対してズーム処理を実行し、ズーム処理によって取得された画像を前記ビデオエンコーディングモジュールに出力するように構成され、
    前記ビデオエンコーディングモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像または前記ビデオグラフィックスシステムモジュールによるズーム処理によって取得された前記画像をエンコーディングしてビデオストリームを生成し、前記第2のインターフェースを介して前記第2のメッセージタイプの前記ビデオストリームを出力するように構成されている、
    請求項7から9のいずれか一項に記載のカメラ。
  11. 前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、
    前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、
    前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む、
    請求項10に記載のカメラ。
  12. 前記第1のタイプは、人工知能タイプであり、前記第2のタイプは、ビデオストリームタイプであり、前記第3のタイプは、前記人工知能タイプ+前記ビデオストリームタイプであり、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである、請求項7から11のいずれか一項に記載のカメラ。
  13. カメラに適用されるカメラ使用方法であって、前記カメラは、第1のインターフェースを介して電子デバイスに接続され、前記方法は、
    アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第1のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、
    別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、
    を含む、方法。
  14. 前記方法は、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップ
    をさらに含む、請求項13に記載の方法。
  15. 前記方法は、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応する前記タイプが第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第1の処理結果を出力するステップと、
    前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第2の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第3の処理結果を出力するステップと、
    前記第1のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    をさらに含む、請求項13または14に記載の方法。
  16. 前記カメラは、
    1つ以上のセンサモジュール、ビデオ入力モジュール、ビデオ処理サブシステムモジュール、人工知能モジュール、ビデオエンコーディングモジュール、およびビデオグラフィックスシステムモジュールを備え、
    前記センサモジュールは、画像を収集し、前記収集された画像を前記ビデオ入力モジュールに出力するように構成され、
    前記ビデオ入力モジュールは、前記センサモジュールによって収集された前記画像を前処理するように構成され、
    前記ビデオ処理サブシステムモジュールは、前記ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を行うように構成され、
    前記人工知能モジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、前記第1のインターフェースを介して前記第1のメッセージタイプの人工知能イベントを出力するように構成され、
    前記ビデオグラフィックスシステムモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像に対してズーム処理を実行し、ズーム処理によって取得された画像を前記ビデオエンコーディングモジュールに出力するように構成され、
    前記ビデオエンコーディングモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像または前記ビデオグラフィックスシステムモジュールによるズーム処理によって取得された前記画像をエンコーディングしてビデオストリームを生成し、前記第1のインターフェースを介して前記第2のメッセージタイプの前記ビデオストリームを出力するように構成されている、
    請求項13から15のいずれか一項に記載の方法。
  17. 前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、
    前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、
    前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む、
    請求項16に記載の方法。
  18. 前記第1のタイプは、人工知能タイプであり、前記第2のタイプは、ビデオストリームタイプであり、前記第3のタイプは、前記人工知能タイプ+前記ビデオストリームタイプであり、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースは、USBインターフェースである、請求項13から17のいずれか一項に記載の方法。
  19. カメラに適用されるカメラ使用方法であって、前記カメラは、第1のインターフェースおよび第2のインターフェースを介して電子デバイスに接続され、前記方法は、
    アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを受信するステップと、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第1のタイプであることが検出された場合、前記第1のインターフェースを介して第1の経路に沿って第1のメッセージタイプの第1の処理結果を出力するステップ、または
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応するタイプが第2のタイプであることが検出された場合、前記第2のインターフェースを介して第2の経路または第3の経路に沿って第2のメッセージタイプの第2の処理結果を出力するステップと、
    別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを受信するステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応するタイプが前記第1のタイプであることが検出された場合、前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの第3の処理結果を出力するステップと、
    を含む、方法。
  20. 前記方法は、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第2のタイプであることが検出された場合、前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの第4の処理結果を出力するステップ
    をさらに含む、請求項19に記載の方法。
  21. 前記方法は、
    前記第1のメッセージに応答して、
    前記アプリケーションIDまたは前記アプリケーションサブ機能IDに対応する前記タイプが第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第1の処理結果を出力するステップと、
    前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第2の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    前記第2のメッセージに応答して、
    前記別のアプリケーションIDまたは前記別のアプリケーションサブ機能IDに対応する前記タイプが前記第3のタイプであることが検出された場合、
    前記第1のインターフェースを介して前記第1の経路に沿って前記第1のメッセージタイプの前記第3の処理結果を出力するステップと、
    前記第2のインターフェースを介して前記第2の経路または前記第3の経路に沿って前記第2のメッセージタイプの前記第4の処理結果を出力するステップであって、前記第3のタイプは、前記第1のタイプ+前記第2のタイプである、ステップと、
    をさらに含む、請求項19または20に記載の方法。
  22. 前記カメラは、
    1つ以上のセンサモジュール、ビデオ入力モジュール、ビデオ処理サブシステムモジュール、人工知能モジュール、ビデオエンコーディングモジュール、およびビデオグラフィックスシステムモジュールを備え、
    前記センサモジュールは、画像を収集し、前記収集された画像を前記ビデオ入力モジュールに出力するように構成され、
    前記ビデオ入力モジュールは、前記センサモジュールによって収集された前記画像を前処理するように構成され、
    前記ビデオ処理サブシステムモジュールは、前記ビデオ入力モジュールによる前処理によって取得された画像に対してノイズ低減処理を行うように構成され、
    前記人工知能モジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された画像に対して人工知能認識を実行し、前記第1のインターフェースを介して前記第1のメッセージタイプの人工知能イベントを出力するように構成され、
    前記ビデオグラフィックスシステムモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像に対してズーム処理を実行し、ズーム処理によって取得された画像を前記ビデオエンコーディングモジュールに出力するように構成され、
    前記ビデオエンコーディングモジュールは、前記ビデオ処理サブシステムモジュールによる処理によって取得された前記画像または前記ビデオグラフィックスシステムモジュールによるズーム処理によって取得された前記画像をエンコーディングしてビデオストリームを生成し、前記第2のインターフェースを介して前記第2のメッセージタイプの前記ビデオストリームを出力するように構成されている、
    請求項19から21のいずれか一項に記載の方法。
  23. 前記第1の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記人工知能モジュールを含み、
    前記第2の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、前記ビデオグラフィックスシステムモジュール、および前記ビデオエンコーディングモジュールを含み、
    前記第3の経路は、前記センサモジュール、前記ビデオ入力モジュール、前記ビデオ処理サブシステムモジュール、および前記ビデオエンコーディングモジュールを含む、
    請求項19から22のいずれか一項に記載の方法。
  24. 前記第1のタイプは、人工知能タイプであり、前記第2のタイプは、ビデオストリームタイプであり、前記第3のタイプは、前記人工知能タイプ+前記ビデオストリームタイプであり、前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである、
    請求項19から23のいずれか一項に記載の方法。
  25. 電子デバイスであって、前記電子デバイスは、第1のインターフェースを介してカメラに接続され、前記電子デバイスは、
    1つ以上のプロセッサと、
    メモリと、
    1つ以上のコンピュータプログラムと、を備え、前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記電子デバイスは、
    前記カメラに関連付けられたアプリケーションが開始されたことを検出した場合、またはアプリケーションのアプリケーションサブ機能が開始されたことを検出した場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または
    前記第1のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、
    前記カメラに関連付けられた別のアプリケーションが開始されたことを検出した場合、または別のアプリケーションサブ機能が有効にされたことを検出した場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または
    前記第1のインターフェースを介して前記第2のメッセージタイプの第4の処理結果を受信するステップと、
    を実行することが可能になる、電子デバイス。
  26. 前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースは、USBインターフェースである、
    請求項25に記載の電子デバイス。
  27. 電子デバイスであって、前記電子デバイスは、第1のインターフェースおよび第2のインターフェースを介してカメラに接続され、前記電子デバイスは、
    1つ以上のプロセッサと、
    メモリと、
    1つ以上のコンピュータプログラムと、を備え、前記1つ以上のコンピュータプログラムは、前記メモリに記憶され、前記コンピュータプログラムが前記1つ以上のプロセッサによって実行されると、前記電子デバイスは、
    前記カメラに関連付けられたアプリケーションが開始されたことを検出した場合、またはアプリケーションのアプリケーションサブ機能が開始されたことを検出した場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または
    前記第2のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、
    前記カメラに関連付けられた別のアプリケーションが開始されたことを検出した場合、または別のアプリケーションサブ機能が有効にされたことを検出した場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または
    前記第2のインターフェースを介して第2のメッセージタイプの第4の処理結果を受信するステップと、
    を実行することが可能になる、電子デバイス。
  28. 前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである、
    請求項25に記載の電子デバイス。
  29. 電子デバイスに適用されるカメラ使用方法であって、前記電子デバイスは、第1のインターフェースを介してカメラに接続され、前記方法は、
    前記カメラに関連付けられたアプリケーションが開始されたことが検出された場合、またはアプリケーションのアプリケーションサブ機能が開始されたことが検出された場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または
    前記第1のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、
    前記カメラに関連付けられた別のアプリケーションが開始されたことが検出された場合、または別のアプリケーションサブ機能が有効にされたことが検出された場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または
    前記第1のインターフェースを介して前記第2のメッセージタイプの第4の処理結果を受信するステップと、を含む、方法。
  30. 前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースは、USBインターフェースである、
    請求項29に記載の方法。
  31. 電子デバイスに適用されるカメラ使用方法であって、前記電子デバイスは、第1のインターフェースおよび第2のインターフェースを介してカメラに接続され、前記方法は、
    前記カメラに関連付けられたアプリケーションが開始されたことが検出された場合、またはアプリケーションのアプリケーションサブ機能が開始されたことが検出された場合、アプリケーションIDまたはアプリケーションサブ機能IDを含む第1のメッセージを前記カメラに送信するステップであって、前記アプリケーションIDは、前記アプリケーションに対応し、または前記アプリケーションサブ機能IDは、前記アプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して第1のメッセージタイプの第1の処理結果を受信するステップ、および/または
    前記第2のインターフェースを介して第2のメッセージタイプの第2の処理結果を受信するステップと、
    前記カメラに関連付けられた別のアプリケーションが開始されたことが検出された場合、または別のアプリケーションサブ機能が有効にされたことが検出された場合、別のアプリケーションIDまたは別のアプリケーションサブ機能IDを含む第2のメッセージを前記カメラに送信するステップであって、前記別のアプリケーションIDは、前記別のアプリケーションに対応し、または前記別のアプリケーションサブ機能IDは、前記別のアプリケーションサブ機能に対応する、ステップと、
    前記第1のインターフェースを介して前記第1のメッセージタイプの第3の処理結果を受信するステップ、および/または
    前記第2のインターフェースを介して第2のメッセージタイプの第4の処理結果を受信するステップと、
    を含む、方法。
  32. 前記第1のメッセージタイプは、Socketメッセージタイプであり、前記第2のメッセージタイプは、UVCメッセージタイプであり、前記第1のインターフェースおよび前記第2のインターフェースのうちの少なくとも1つは、USBインターフェースである、
    請求項31に記載の方法。
  33. コンピュータプログラムを含むコンピュータ可読記憶媒体であって、前記コンピュータプログラムがカメラ上で実行されると、前記カメラは、請求項13から24のいずれか一項に記載のカメラ使用方法を実行することが可能になる、コンピュータ可読記憶媒体。
  34. コンピュータプログラムを含むコンピュータ可読記憶媒体であって、前記コンピュータプログラムが電子デバイス上で実行されると、前記電子デバイスは、請求項29から31のいずれか一項に記載のカメラ使用方法を実行することが可能になる、コンピュータ可読記憶媒体。
JP2022581629A 2020-06-30 2021-03-16 カメラ使用方法、電子デバイス、およびカメラ Active JP7515638B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010618161.2 2020-06-30
CN202010618161.2A CN113873140A (zh) 2020-06-30 2020-06-30 一种摄像头的调用方法、电子设备和摄像头
PCT/CN2021/081092 WO2022001191A1 (zh) 2020-06-30 2021-03-16 一种摄像头的调用方法、电子设备和摄像头

Publications (2)

Publication Number Publication Date
JP2023532741A true JP2023532741A (ja) 2023-07-31
JP7515638B2 JP7515638B2 (ja) 2024-07-12

Family

ID=76275594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022581629A Active JP7515638B2 (ja) 2020-06-30 2021-03-16 カメラ使用方法、電子デバイス、およびカメラ

Country Status (5)

Country Link
US (1) US20230254575A1 (ja)
EP (1) EP4161060A4 (ja)
JP (1) JP7515638B2 (ja)
CN (2) CN112969024B (ja)
WO (1) WO2022001191A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115733884B (zh) * 2021-08-25 2023-10-24 荣耀终端有限公司 请求的处理方法及相关装置
CN116156311A (zh) * 2021-11-16 2023-05-23 华为终端有限公司 摄像头控制方法及装置
CN114302040B (zh) * 2021-12-24 2024-03-19 展讯半导体(成都)有限公司 多应用共享单一摄像头的方法及相关产品
CN117714854A (zh) * 2022-09-02 2024-03-15 华为技术有限公司 摄像头调用方法、电子设备、可读存储介质和芯片
CN116074622B (zh) * 2022-12-17 2023-08-29 珠海视熙科技有限公司 多协议控制usb相机的实现方法、装置、设备及介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833520B (zh) * 2009-03-11 2013-01-16 凹凸电子(武汉)有限公司 多个应用程序同时使用一个摄像头的系统和方法
CN102883139A (zh) * 2011-07-12 2013-01-16 北京中星微电子有限公司 摄像头应用系统和方法
KR101383529B1 (ko) * 2012-02-29 2014-04-08 주식회사 팬택 어플리케이션 공유를 위한 이동단말장치 및 이동단말장치에서의 어플리케이션 공유 방법
US8799900B1 (en) * 2012-04-17 2014-08-05 Parallels IP Holdings GmbH Sharing webcam between guest and host OS
JP6423710B2 (ja) * 2014-12-22 2018-11-14 オリンパス株式会社 携帯機器、通信システム、通信接続方法、及び通信接続プログラム
JP6669959B2 (ja) 2015-11-20 2020-03-18 富士通クライアントコンピューティング株式会社 画像処理装置、撮影装置、画像処理方法、画像処理プログラム
CN105808353A (zh) * 2016-03-08 2016-07-27 珠海全志科技股份有限公司 一种摄像机资源共享的方法和装置
JP2018018456A (ja) 2016-07-29 2018-02-01 パナソニックIpマネジメント株式会社 監視カメラ、見守り監視システム及び見守り監視方法
US10212326B2 (en) * 2016-11-18 2019-02-19 Microsoft Technology Licensing, Llc Notifications for control sharing of camera resources
US10771487B2 (en) * 2016-12-12 2020-09-08 Gryphon Online Safety Inc. Method for protecting IoT devices from intrusions by performing statistical analysis
CN109462726B (zh) * 2017-09-06 2021-01-19 比亚迪股份有限公司 摄像头的控制方法和装置
CN108322640B (zh) * 2017-12-27 2020-10-27 武汉长江通信智联技术有限公司 一种基于广播机制实现多应用同时调用摄像头的方法及系统
US11032136B2 (en) * 2018-02-01 2021-06-08 Microsoft Technology Licensing, Llc Discovery of network camera devices
KR102567368B1 (ko) * 2018-04-11 2023-08-17 삼성전자주식회사 사용 이력을 표시하는 방법 및 이를 수행하는 전자 장치
JP7014141B2 (ja) 2018-11-28 2022-02-01 株式会社リコー 情報処理システム、情報処理装置、情報処理方法及びプログラム
CN110457987A (zh) * 2019-06-10 2019-11-15 中国刑事警察学院 基于无人机的人脸识别方法
CN110505390B (zh) * 2019-09-24 2021-02-05 深圳创维-Rgb电子有限公司 电视机及其摄像头调用方法、控制装置和可读存储介质
CN110753187B (zh) * 2019-10-31 2021-06-01 芋头科技(杭州)有限公司 一种摄像头的控制方法及设备

Also Published As

Publication number Publication date
JP7515638B2 (ja) 2024-07-12
CN112969024A (zh) 2021-06-15
EP4161060A1 (en) 2023-04-05
CN112969024B (zh) 2022-03-11
WO2022001191A1 (zh) 2022-01-06
EP4161060A4 (en) 2023-11-22
US20230254575A1 (en) 2023-08-10
CN113873140A (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
WO2021013158A1 (zh) 显示方法及相关装置
JP7515638B2 (ja) カメラ使用方法、電子デバイス、およびカメラ
WO2020192714A1 (zh) 显示设备控制页面的方法、相关装置及系统
US20220050656A1 (en) Method for displaying ui component and electronic device
WO2020155014A1 (zh) 智能家居设备分享系统、方法及电子设备
CN116360725B (zh) 显示交互系统、显示方法及设备
WO2022127661A1 (zh) 应用共享方法、电子设备和存储介质
JP7234379B2 (ja) スマートホームデバイスによってネットワークにアクセスするための方法および関連するデバイス
CN112130788A (zh) 一种内容分享方法及其装置
WO2022078295A1 (zh) 一种设备推荐方法及电子设备
WO2023130921A1 (zh) 一种适配多设备的页面布局的方法及电子设备
WO2023124141A1 (zh) 一种输入法调用方法及相关设备
WO2022253158A1 (zh) 一种用户隐私保护方法及装置
WO2023273543A1 (zh) 一种文件夹管理方法及装置
CN115238299A (zh) 基于安全等级的访问控制方法、相关装置及系统
WO2024037542A1 (zh) 一种触控输入的方法、系统、电子设备及存储介质
WO2023142935A1 (zh) 应用组件管理方法及相关设备
WO2023207799A1 (zh) 消息处理方法和电子设备
WO2022228214A1 (zh) 设备发现方法、系统及其电子设备
CN114168115B (zh) 通信系统、应用下载方法及设备
WO2023179682A1 (zh) 一种设备协同方法
WO2021227847A1 (zh) 一种文件应用方法及装置
WO2021013246A1 (zh) 一种无线接入点的部署方法及装置
CN116560536A (zh) 应用组件设置方法及相关设备
CN118363506A (zh) 设备交互的方法和电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240702

R150 Certificate of patent or registration of utility model

Ref document number: 7515638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150