JP2021523484A - Methods, devices, and computer-readable media for delivering cropped images through websocket connections in a networked collaborative workspace. - Google Patents

Methods, devices, and computer-readable media for delivering cropped images through websocket connections in a networked collaborative workspace. Download PDF

Info

Publication number
JP2021523484A
JP2021523484A JP2020564175A JP2020564175A JP2021523484A JP 2021523484 A JP2021523484 A JP 2021523484A JP 2020564175 A JP2020564175 A JP 2020564175A JP 2020564175 A JP2020564175 A JP 2020564175A JP 2021523484 A JP2021523484 A JP 2021523484A
Authority
JP
Japan
Prior art keywords
computing device
local computing
transparent layer
collaborative workspace
command
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.)
Pending
Application number
JP2020564175A
Other languages
Japanese (ja)
Inventor
マシ、マルコ、バレリオ
フマガッリ、クリスティアーノ
Original Assignee
リ マゴ リミテッド
リ マゴ リミテッド
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
Priority claimed from US15/983,747 external-priority patent/US11334220B2/en
Application filed by リ マゴ リミテッド, リ マゴ リミテッド filed Critical リ マゴ リミテッド
Publication of JP2021523484A publication Critical patent/JP2021523484A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

サーバ上にホストされ、画像を含む、共同ワークスペースの表現を送信することと、画像の画像部分を選択する、複数の座標に対応するユーザ入力を検出することと、オペレーティング・システム又はアプリケーションとインターフェースするように構成されたアプリケーション・プログラミング・インターフェースを備える透明層に、座標を送信することと、座標に少なくとも部分的に基づいて、画像部分をキャプチャすることと、選択された画像部分をロケーションにドラッグするための第2のユーザ入力を検出することと、画像を共同ワークスペースから除去させ、ロケーションに少なくとも部分的に基づいて、画像部分を共同ワークスペースに挿入させるように構成された複数のコマンドをサーバに送信することとを含む、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を通じてクロップ画像を伝えるためのシステム、方法、及びコンピュータ可読媒体。 Hosted on a server to send a representation of a collaborative workspace, including images, to select image parts of an image, to detect user input corresponding to multiple coordinates, and to interface with an operating system or application. Sending coordinates to a transparent layer with an application programming interface configured to capture image parts based on the coordinates, at least partially, and dragging the selected image part to a location. Multiple commands configured to detect a second user input to do so and to remove the image from the collaborative workspace and insert the image portion into the collaborative workspace, at least partially based on location. Systems, methods, and computer-readable media for transmitting cropped images through web socket connections in a networked collaborative workspace, including sending to a server.

Description

オペレーティング・システム及びオペレーティング・システム内で実行するアプリケーションは、ユーザがプログラムに入力を与えることと、ユーザに出力を与えることとを可能にするために、外部ハードウェア・デバイスを頻繁に利用する。外部ハードウェア・デバイスの一般的な実例は、キーボード、コンピュータ・マウス、マイクロフォン、及び外部スピーカーを含む。これらの外部ハードウェア・デバイスは、ドライバの使用によってオペレーティング・システムとインターフェースする。ドライバは、特定のハードウェア・デバイスによって使用されるハードウェア・コマンドとオペレーティング・システムとの間をインターフェースするように構成された専用ソフトウェア・プログラムである。 The operating system and applications running within the operating system frequently utilize external hardware devices to allow the user to give input to the program and to give output to the user. Common examples of external hardware devices include keyboards, computer mice, microphones, and external speakers. These external hardware devices interface with the operating system through the use of drivers. A driver is a dedicated software program configured to interface between a hardware command used by a particular hardware device and an operating system.

アプリケーションは、あるハードウェア・デバイスとインターフェースするように設計されることがある。例えば、音声テキスト・ワード・プロセッシング・アプリケーションが、マイクロフォンを含むオーディオ・ヘッドセットとインターフェースするように設計され得る。この場合、アプリケーションは、特に、音声コマンドを受信し、音声認識を実施し、認識されたワードをテキスト・コンテンツに変換し、テキスト・コンテンツを文書に出力するように構成されなければならない。この機能性は、一般に、様々なソフトウェア・コンポーネント間の通信の定義された方法のセットである、アプリケーションのアプリケーション・プログラミング・インターフェース(API:Application Programming Interface)において実施されることになる。音声認識アプリケーションの実例では、APIは、アプリケーション・プログラムとドライバ上のソフトウェアとの間のインターフェースを含むことができ、ドライバは、ハードウェア・デバイス(マイクロフォン)自体とインターフェースする役割を果たす。 Applications may be designed to interface with certain hardware devices. For example, voice text word processing applications can be designed to interface with audio headsets, including microphones. In this case, the application must be configured, in particular, to receive voice commands, perform voice recognition, convert the recognized words into text content, and output the text content to a document. This functionality will generally be implemented in the application programming interface (API) of an application, which is a defined set of methods of communication between various software components. In an example of a speech recognition application, the API can include an interface between the application program and the software on the driver, which serves to interface with the hardware device (microphone) itself.

専用ハードウェア・デバイスを利用する既存のソフトウェアの1つの問題は、アプリケーション又はオペレーティング・システム・ソフトウェア自体が、ハードウェア・デバイスを利用するために、カスタマイズされ、特別に設計されなければならないことである。このカスタマイゼーションは、ハードウェア・デバイスが、アプリケーションによって、そのために定義された範囲を超えることができず、それが使用されるように設計された特定のアプリケーション以外のコンテキストのために利用され得ないことを意味する。例えば、音声テキスト・ワード・プロセッシング・アプリケーションのユーザは、オペレーティング・システム内の他のアプリケーション・プログラム又は他のコンポーネントを、それらの他のアプリケーション・プログラム又はオペレーティング・システムが、マイクロフォンを通じて受信される音声コマンドを利用するように特別に設計されない限り、音声コマンドを使用して操作することができない。 One problem with existing software that utilizes dedicated hardware devices is that the application or operating system software itself must be customized and specially designed to utilize the hardware device. .. This customization does not allow the hardware device to exceed the scope defined for it by the application and cannot be utilized for contexts other than the specific application in which it was designed to be used. Means. For example, a user of a voice text word processing application may have other application programs or other components in the operating system, voice commands received by those other application programs or operating system through a microphone. It cannot be operated using voice commands unless it is specifically designed to take advantage of.

図1は、ユーザ入力のために、結合されたハードウェア・デバイスを利用するシステムの既存のアーキテクチャの一実例を示す。図1のオペレーティング・システム100Aは、実行アプリケーション101A及び102Aを含み、それらの各々は、それぞれ、それら自体のAPI101B及び102Bを有する。オペレーティング・システム100Aはまた、それ自体のAPI100B、並びにハードウェア・デバイス100D、101D、及び102Dとインターフェースするように構成された専用ドライバ100C、101C、及び102Cを有する。 FIG. 1 shows an example of an existing architecture of a system that utilizes combined hardware devices for user input. The operating system 100A of FIG. 1 includes running applications 101A and 102A, each of which has its own APIs 101B and 102B, respectively. The operating system 100A also has its own API 100B and dedicated drivers 100C, 101C, and 102C configured to interface with the hardware devices 100D, 101D, and 102D.

図1に示すように、アプリケーションAPI101Bは、ドライバ101Cとインターフェースするように構成され、ドライバ101C自体は、ハードウェア・デバイス101Dとインターフェースする。同様に、アプリケーションAPI102Bは、ドライバ102Cとインターフェースするように構成され、ドライバ102C自体は、ハードウェア・デバイス102Dとインターフェースする。オペレーティング・システム・レベルにおいて、オペレーティング・システムAPI100Bは、ドライバ100Cとインターフェースするように構成され、ドライバ100C自体は、ハードウェア・デバイス100Dとインターフェースする。 As shown in FIG. 1, the application API 101B is configured to interface with the driver 101C, which itself interfaces with the hardware device 101D. Similarly, the application API 102B is configured to interface with the driver 102C, which itself interfaces with the hardware device 102D. At the operating system level, the operating system API 100B is configured to interface with the driver 100C, which itself interfaces with the hardware device 100D.

図1に示すシステムのアーキテクチャは、あるアプリケーション又はオペレーティング・システム・コンテキスト外でハードウェア・デバイスを利用するユーザの能力を限定する。例えば、ユーザは、アプリケーション102Aに入力を与えるためにハードウェア・デバイス101Dを利用することができず、アプリケーション101Aに又はオペレーティング・システム100Aに入力を与えるためにハードウェア・デバイス102Dを利用することができない。 The system architecture shown in FIG. 1 limits the ability of a user to use a hardware device outside an application or operating system context. For example, the user may not be able to use the hardware device 101D to give input to application 102A and may use the hardware device 102D to give input to application 101A or operating system 100A. Can not.

したがって、複数のソフトウェア・コンテキストにおけるハードウェア・デバイスの利用を可能にする、ハードウェア・ソフトウェア・インターフェースの改良が必要である。 Therefore, there is a need to improve the hardware software interface to allow the use of hardware devices in multiple software contexts.

ユーザ入力のために、結合されたハードウェア・デバイスを利用するシステムの既存のアーキテクチャの一実例を示す図である。FIG. 5 illustrates an example of an existing architecture of a system that utilizes combined hardware devices for user input. 例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースを利用するシステムのアーキテクチャを示す図である。It is a figure which shows the architecture of the system which utilizes a universal hardware software interface by an exemplary example. 例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のためのフローチャートである。It is a flowchart for the implementation of the universal hardware software interface by an exemplary embodiment. 例示的な実施例による、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報が1つ又は複数の画像を含むときの、1つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートである。One or more hardware devices when the information captured by one or more hardware devices communicatively coupled to the system, according to an exemplary embodiment, contains one or more images. It is a flowchart for determining a user input based at least partially based on the information captured by. 例示的な実施例による、オブジェクト認識の一実例を示す図である。It is a figure which shows an example of object recognition by an exemplary example. 例示的な実施例による、入力ロケーション座標を決定することの一実例を示す図である。It is a figure which shows an example of determining the input location coordinates by an exemplary embodiment. 例示的な実施例による、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報が音情報であるときの、キャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートである。User input based at least in part on the captured information when the information captured by one or more hardware devices communicatively coupled to the system is sound information, according to an exemplary embodiment. It is a flowchart for determining. 例示的な実施例による、透明層の一部であり得るツール・インターフェースを示す図である。It is a figure which shows the tool interface which can be a part of a transparent layer by an exemplary embodiment. 例示的な実施例による、システムの一部であり得るスタイラスの一実例を示す図である。It is a figure which shows an example of a stylus which can be a part of a system by an exemplary embodiment. 例示的な実施例による、ユーザ入力に対応するコンテキストを識別するためのフローチャートである。FIG. 5 is a flowchart for identifying a context corresponding to user input according to an exemplary embodiment. 例示的な実施例による、コンテキストを決定するために入力座標を使用することの一実例を示す図である。FIG. 5 is a diagram illustrating an example of using input coordinates to determine context, according to an exemplary embodiment. 例示的な実施例による、ユーザ入力を透明層コマンドに変換するためのフローチャートである。It is a flowchart for converting a user input into a transparent layer command by an exemplary embodiment. 例示的な実施例による、選択モードがトグルされるときの、入力座標を受信することの一実例を示す図である。FIG. 5 is a diagram illustrating an example of receiving input coordinates when the selection mode is toggled, according to an exemplary embodiment. 例示的な実施例による、ポインティング・モードがトグルされるときの、入力座標を受信することの一実例を示す図である。FIG. 5 is a diagram illustrating an example of receiving input coordinates when the pointing mode is toggled, according to an exemplary embodiment. 例示的な実施例による、描画モードがトグルされるときの、入力座標を受信することの一実例を示す図である。FIG. 5 is a diagram illustrating an example of receiving input coordinates when the drawing mode is toggled, according to an exemplary embodiment. 例示的な実施例による、入力音声データ中で識別された1つ又は複数のワードに基づいて決定される透明層コマンドの一実例を示す図である。FIG. 5 is a diagram illustrating an example of a transparent layer command determined based on one or more words identified in input voice data according to an exemplary embodiment. 例示的な実施例による、入力音声データ中で識別された1つ又は複数のワードに基づいて決定される透明層コマンドの別の実例を示す図である。It is a figure which shows another example of the transparent layer command which is determined based on one or more words identified in the input voice data by an exemplary example. 例示的な実施例による、透明層上で1つ又は複数の透明層コマンドを実行するためのフローチャートである。It is a flowchart for executing one or more transparent layer commands on a transparent layer by an exemplary embodiment. 例示的な実施例による、ユーザ入力に対応する新しいコマンドを追加するための例示的なインターフェースを示す図である。It is a figure which shows the exemplary interface for adding a new command corresponding to a user input by an exemplary embodiment. 例示的な実施例による、描画インターフェース及び描画モードの様々なコンポーネント及びオプションを示す図である。It is a figure which shows the various components and options of a drawing interface and a drawing mode by an exemplary embodiment. 例示的な実施例による、オブジェクトを認識するために使用され、ユーザがタッチ及びジェスチャを使用して入力を与えることを可能にする、ビデオ・カメラ・ハードウェア・デバイスのための較正及び設定インターフェースを示す図である。An exemplary example of a calibration and configuration interface for a video camera hardware device that is used to recognize an object and allows the user to give input using touch and gestures. It is a figure which shows. 例示的な実施例による、ユーザが、インターフェースの様々な態様をカスタマイズし、入力モードをトグルし、他の変更を行うことを可能にする、一般的な設定インターフェースを示す図である。FIG. 6 illustrates a general configuration interface that allows the user to customize various aspects of the interface, toggle input modes, and make other changes, according to an exemplary embodiment. 例示的な実施例による、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を通じてクロップ画像を伝えるためのフローチャートである。It is a flowchart for transmitting a cropped image through a web socket connection in a networked collaborative workspace according to an exemplary embodiment. 例示的な実施例による、共同ワークスペースをホストし、送信するために使用されるネットワーク・アーキテクチャを示す図である。FIG. 5 illustrates the network architecture used to host and transmit a collaborative workspace, according to an exemplary embodiment. 例示的な実施例による、ネットワーク内で共同ワークスペースに対する編集を伝えるためのプロセスを示す図である。FIG. 5 illustrates a process for communicating edits to a collaborative workspace within a network, according to an exemplary embodiment. 例示的な実施例による、共同ワークスペースの複数の表現を示す図である。It is a figure which shows a plurality of representations of a collaborative workspace by an exemplary example. 例示的な実施例による、クロッピング入力検出の一実例を示す図である。It is a figure which shows an example of the cropping input detection by an exemplary example. 例示的な実施例による、クロッピング入力検出の一実例を示す図である。It is a figure which shows an example of the cropping input detection by an exemplary example. 例示的な実施例による、クロッピング入力検出の一実例を示す図である。It is a figure which shows an example of the cropping input detection by an exemplary example. 例示的な実施例による、座標を透明層に送信し、画像部分をキャプチャするためのプロセス・フローの一実例を示す図である。It is a figure which shows an example of the process flow for transmitting a coordinate to a transparent layer and capturing an image part by an exemplary example. 例示的な実施例による、ユーザが画像部分を共同ワークスペース内のロケーションにドラッグすることの一実例を示す図である。FIG. 5 illustrates an example of a user dragging an image portion to a location within a collaborative workspace, according to an exemplary embodiment. 例示的な実施例による、サーバ上にホストされた共同ワークスペースに複数のコマンドを送信するためのフローチャートである。It is a flowchart for sending a plurality of commands to a collaborative workspace hosted on a server according to an exemplary embodiment. 例示的な実施例による、2つの異なるコンテキストについての、サーバ上にホストされた共同ワークスペースに複数のコマンドを送信するためのフローチャートである。It is a flowchart for sending a plurality of commands to a collaborative workspace hosted on a server for two different contexts according to an exemplary embodiment. 例示的な実施例による、2つの異なるコンテキストについての、サーバ上にホストされた共同ワークスペースに複数のコマンドを送信するためのフローチャートである。It is a flowchart for sending a plurality of commands to a collaborative workspace hosted on a server for two different contexts according to an exemplary embodiment. 例示的な実施例による、ユーザが画像部分を共同ワークスペースの編集インターフェースにドラッグすること及び画像部分を編集インターフェースにドラッグした結果の一実例を示す図である。It is a figure which shows an example of the result of a user dragging an image part into an editing interface of a collaborative workspace and dragging an image part into an editing interface according to an exemplary example. 例示的な実施例による、ユーザが画像部分を共同ワークスペースの編集インターフェースにドラッグすること及び画像部分を編集インターフェースにドラッグした結果の一実例を示す図である。It is a figure which shows an example of the result of a user dragging an image part into an editing interface of a collaborative workspace and dragging an image part into an editing interface according to an exemplary example. 例示的な実施例による、ユーザが画像部分を共同ワークスペースの編集インターフェースにドラッグすること及び画像部分を編集インターフェースにドラッグした結果の一実例を示す図である。It is a figure which shows an example of the result of a user dragging an image part into an editing interface of a collaborative workspace and dragging an image part into an editing interface according to an exemplary example. 例示的な実施例による、ユーザが画像部分を共同ワークスペースのツールバー・インターフェースにドラッグすること及び画像部分をツールバー・インターフェースにドラッグした結果の一実例を示す図である。FIG. 5 shows an example of the result of a user dragging an image portion onto the toolbar interface of a collaborative workspace and dragging the image portion onto the toolbar interface according to an exemplary embodiment. 例示的な実施例による、ユーザが画像部分を共同ワークスペースのツールバー・インターフェースにドラッグすること及び画像部分をツールバー・インターフェースにドラッグした結果の一実例を示す図である。FIG. 5 shows an example of the result of a user dragging an image portion onto the toolbar interface of a collaborative workspace and dragging the image portion onto the toolbar interface according to an exemplary embodiment. 例示的な実施例による、ユーザが画像部分を共同ワークスペースのツールバー・インターフェースにドラッグすること及び画像部分をツールバー・インターフェースにドラッグした結果の一実例を示す図である。FIG. 5 shows an example of the result of a user dragging an image portion onto the toolbar interface of a collaborative workspace and dragging the image portion onto the toolbar interface according to an exemplary embodiment. 例示的な実施例による、ユーザが画像部分を共同ワークスペースのツールバー・インターフェースにドラッグすること及び画像部分をツールバー・インターフェースにドラッグした結果の一実例を示す図である。FIG. 5 shows an example of the result of a user dragging an image portion onto the toolbar interface of a collaborative workspace and dragging the image portion onto the toolbar interface according to an exemplary embodiment. 例示的な実施例による、ユーザが画像部分を共同ワークスペースのツールバー・インターフェースにドラッグすること及び画像部分をツールバー・インターフェースにドラッグした結果の一実例を示す図である。FIG. 5 shows an example of the result of a user dragging an image portion onto the toolbar interface of a collaborative workspace and dragging the image portion onto the toolbar interface according to an exemplary embodiment. 開示される方法を行うように構成された例示的なコンピューティング環境を示す図である。FIG. 5 illustrates an exemplary computing environment configured to perform the disclosed method.

方法、装置、及びコンピュータ可読媒体は、実例及び実施例として本明細書で説明されるが、当業者は、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のための方法、装置、及びコンピュータ可読媒体が、説明される実施例又は図面に限定されないことを認識する。図面及び説明は、開示される特定の形式に限定されるものではないことを理解されたい。むしろ、意図は、添付の特許請求の範囲の趣旨及び範囲内に入るすべての修正、等価物及び代替をカバーすることである。本明細書で使用されるいかなる見出しも編成のためのものであるにすぎず、本明細書の範囲又は特許請求の範囲を限定するものではない。本明細書で使用される「することができる(can)」という単語は、強制的な意味(すなわち、しなければならない(must)という意味)ではなく許容的な意味(すなわち、可能性を有するという意味)において使用される。同様に、「含む(include)」、「含む(including)」、及び「含む(includes)」という単語は、含むことを意味するが、それに限定されない。 Methods, devices, and computer-readable media are described herein as examples and examples, but those skilled in the art will appreciate methods, devices, and computer-readable media for implementing universal hardware software interfaces. Recognize that it is not limited to the embodiments or drawings described. It should be understood that the drawings and description are not limited to the particular format disclosed. Rather, the intent is to cover the intent and all modifications, equivalents and alternatives that fall within the scope of the appended claims. Any headings used herein are for organization purposes only and are not intended to limit the scope of the specification or claims. As used herein, the word "can" has an acceptable meaning (ie, potential) rather than a compulsory meaning (ie, meaning must). Meaning). Similarly, the words "include," "include," and "includes" mean, but are not limited to.

出願人は、ハードウェア・デバイスのために使用される、以前のハードウェア・ソフトウェア・インターフェースに関連する問題を解決する方法、装置、及びコンピュータ可読媒体を発見した。特に、出願人は、ユーザが、様々なソフトウェア・コンテキストにおいて通信可能に結合されたハードウェア・デバイスを利用することを可能にするユニバーサル・ハードウェア・ソフトウェア・インターフェースを開発した。開示される実装形態は、以下でより詳細に説明するように、専用仮想ドライバ及び対応する透明層の使用によって、アプリケーション又はオペレーティング・システムが特定のハードウェア・デバイスとインターフェースするように特注設計される必要を取り除く。 Applicants have discovered methods, devices, and computer-readable media to solve problems associated with previous hardware software interfaces used for hardware devices. In particular, Applicants have developed a universal hardware software interface that allows users to utilize communicably coupled hardware devices in a variety of software contexts. The disclosed implementations are custom designed to allow an application or operating system to interface with a particular hardware device by using dedicated virtual drivers and corresponding transparent layers, as described in more detail below. Get rid of the need.

図2は、例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースを利用するシステムのアーキテクチャを示す。図2に示すように、オペレーティング・システム200Aは、仮想ドライバ204と通信する透明層203を含む。以下でより詳細に説明するように、透明層203は、仮想ドライバとオペレーティング・システム及び/又はオペレーティング・システム上で実行する(1つ又は複数の)アプリケーションとの間をインターフェースするように構成されたAPIである。この実例では、透明層203は、仮想ドライバ204と、アプリケーション201AのAPI201B、アプリケーション202AのAPI202B、及びオペレーティング・システム200Aのオペレーティング・システムAPI200Bとの間をインターフェースする。 FIG. 2 shows the architecture of a system utilizing a universal hardware software interface according to an exemplary embodiment. As shown in FIG. 2, the operating system 200A includes a transparent layer 203 that communicates with the virtual driver 204. As described in more detail below, the transparent layer 203 is configured to interface between the virtual driver and the operating system and / or the application (s) running on the operating system. It is an API. In this example, the transparent layer 203 interfaces between the virtual driver 204 and the API 201B of the application 201A, the API 202B of the application 202A, and the operating system API 200B of the operating system 200A.

透明層203は、オペレーティング・システム上で動作するソフトウェア・プロセスの一部であり得、下位ユーザ・インターフェースの上に重ね合わせられた透明ユーザ・インターフェース(UI)及び/又はユーザが対話することが可能な可視UI要素を含む、透明層203自体のUI要素を有することができる。 The transparent layer 203 can be part of a software process running on an operating system, allowing the transparent user interface (UI) and / or user to interact on top of the underlying user interface. It is possible to have a UI element of the transparent layer 203 itself, including a visible UI element.

仮想ドライバ204は、ドライバ205A及び205Bをエミュレートするように構成され、ドライバ205A及び205Bは、それぞれ、ハードウェア・デバイス206A及び206Bとインターフェースする。仮想ドライバは、どの仮想ドライバをエミュレートすべきかについて仮想ドライバに命令する、例えば、音声コマンド、ユーザ・インターフェース上で行われる選択、及び/又は結合されたウェブ・カメラの前でユーザによって行われるジェスチャの形式の、ユーザ入力を受信することができる。例えば、接続されたハードウェア・デバイスの各々は、「リスニング」モードにおいて動作することができ、仮想ドライバ204におけるエミュレートされるドライバの各々は、特定のエミュレーション・モードに切り替えるための仮想ドライバに対する信号として働く初期化信号を検出するように構成され得る。例えば、ユーザが「音声コマンド開始」と述べることは、新しい音声コマンドを受信するためのマイクロフォンに対応するドライバをアクティブにすることができる。同様に、ユーザがあるジェスチャを与えることは、ジェスチャ入力又はタッチ入力を受信するためのウェブ・カメラに対応するドライバをアクティブにすることができる。 The virtual driver 204 is configured to emulate drivers 205A and 205B, which interface with hardware devices 206A and 206B, respectively. The virtual driver tells the virtual driver which virtual driver to emulate, eg, voice commands, selections made on the user interface, and / or gestures made by the user in front of the combined web camera. Can receive user input in the form of. For example, each of the connected hardware devices can operate in "listening" mode, and each of the emulated drivers in virtual driver 204 signals to the virtual driver to switch to a particular emulation mode. It can be configured to detect an initialization signal that acts as. For example, a user saying "start voice command" can activate the driver corresponding to the microphone to receive a new voice command. Similarly, giving a gesture by the user can activate the driver corresponding to the webcam for receiving the gesture input or touch input.

仮想ドライバは、ネイティブ・ドライバ205Cなどのネイティブ・ドライバとインターフェースするようにも構成され得、ネイティブ・ドライバ205C自体は、ハードウェア・デバイス206Cと通信する。一実例では、ハードウェア・デバイス206Cは、キーボード又はマウスなどの標準入力デバイスであり得、標準入力デバイスは、オペレーティング・システムによってネイティブにサポートされる。 The virtual driver may also be configured to interface with a native driver, such as the native driver 205C, which itself communicates with the hardware device 206C. In one embodiment, the hardware device 206C can be a standard input device such as a keyboard or mouse, which is natively supported by the operating system.

図2に示すシステムは、ユーザが、特定のアプリケーション又はオペレーティング・システムなどの様々なコンテキストにおいて任意の結合されたハードウェア・デバイスを、そのアプリケーション又はオペレーティング・システムがハードウェア・デバイスとインターフェースするようにカスタマイズされることを必要とすることなしに、利用することができるユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装を可能にする。 The system shown in FIG. 2 allows a user to interface any combined hardware device in various contexts, such as a particular application or operating system, so that the application or operating system interfaces with the hardware device. Allows implementation of universal hardware software interfaces that can be used without the need for customization.

例えば、ハードウェア・デバイス206Aは、情報をキャプチャすることができ、その情報は、次いで、ドライバ205Aをエミュレートする仮想ドライバ204によって受信される。仮想ドライバ204は、キャプチャされた情報に基づいて、ユーザ入力を決定することができる。例えば、その情報が、ユーザが手を動かす一連の画像である場合、仮想ドライバは、ユーザがジェスチャを実施したと決定することができる。 For example, hardware device 206A can capture information, which is then received by virtual driver 204, which emulates driver 205A. The virtual driver 204 can determine the user input based on the captured information. For example, if the information is a series of images in which the user moves his hand, the virtual driver can determine that the user has performed a gesture.

(特定のアプリケーション又はオペレーティング・システムなどの)識別されたコンテキストに基づいて、ユーザ入力は、実行のために透明層コマンドに変換され、透明層203に送信され得る。透明層コマンドは、識別されたコンテキストにおけるネイティブ・コマンドを含むことができる。例えば、識別されたコンテキストがアプリケーション201Aである場合、ネイティブ・コマンドは、アプリケーション201AのアプリケーションAPI201Bに適合するフォーマットのものであろう。次いで、透明層コマンドの実行が、識別されたコンテキストにおける1つ又は複数のネイティブ・コマンドの実行を引き起こすように構成され得る。これは、透明層203が、オペレーティング・システム200A上で実行するアプリケーションのAPIの各々及びオペレーティング・システムAPI200Bとインターフェースすることによって、達成される。例えば、ネイティブ・コマンドが、新しいプログラムを起動するためのコマンドなどのオペレーティング・システム・コマンドである場合、透明層203は、実行のためにオペレーティング・システムAPI200Bにそのネイティブ・コマンドを与えることができる。 Based on the identified context (such as a particular application or operating system), user input can be translated into transparent layer commands for execution and sent to transparent layer 203. Transparency commands can include native commands in the identified context. For example, if the identified context is application 201A, the native command will be in a format that matches application API201B of application 201A. The execution of a transparent layer command can then be configured to trigger the execution of one or more native commands in the identified context. This is achieved by the transparent layer 203 interfacing with each of the APIs of the application running on the operating system 200A and the operating system API 200B. For example, if the native command is an operating system command, such as a command to launch a new program, the transparent layer 203 can give the native command to the operating system API 200B for execution.

図2に示すように、示されているコンポーネントのすべての間で双方向通信がある。これは、例えば、透明層203における透明層コマンドの実行が、仮想ドライバ204への情報の送信及び接続されたハードウェア・デバイスのうちの1つ上への情報の送信を生じることがあることを意味する。例えば、音声コマンドが入力として認識され、ネイティブ・コマンドを含む透明層コマンドに変換され、透明層によって実行された(識別されたコンテキストにおけるネイティブ・コマンドの実行を生じた)後に、音出力「コマンドが受信されました」を送信するために、信号が(仮想ドライバを介して)透明層からスピーカーに送られ得る。 As shown in FIG. 2, there is bidirectional communication between all of the components shown. This means that, for example, the execution of a transparent layer command on transparent layer 203 may result in the transmission of information to the virtual driver 204 and the transmission of information up one of the connected hardware devices. means. For example, a voice command is recognized as input, converted to a transparent layer command containing a native command, executed by the transparent layer (causing the execution of the native command in the identified context), and then the sound output "command is A signal can be sent from the transparent layer (via the virtual driver) to the speaker to send "received".

当然、図2に示すアーキテクチャは、説明のためのものにすぎず、実行するアプリケーションの数、接続されたハードウェア・デバイスの数及びタイプ、ドライバ及びエミュレートされたドライバの数は変動することがあることを理解されたい。 Of course, the architecture shown in Figure 2 is for illustration purposes only, and the number of applications running, the number and type of hardware devices connected, and the number of drivers and emulated drivers can vary. Please understand that there is.

図3は、例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のためのフローチャートである。 FIG. 3 is a flowchart for implementing a universal hardware software interface according to an exemplary embodiment.

ステップ301において、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいて、ユーザ入力が決定される。本明細書で使用されるシステムは、方法のステップを実行する1つ又は複数のコンピューティング・デバイス、方法のステップを実行する1つ又は複数のプロセッサと1つ又は複数のメモリとを備える装置、又は任意の他のコンピューティング・システムを指すことがある。 In step 301, user input is determined based at least in part on the information captured by one or more hardware devices communicatively coupled to the system. A system as used herein is a computing device that performs a method step, a device that comprises one or more processors that perform a method step and one or more memories. Or it may refer to any other computing system.

ユーザ入力は、システム上で実行する仮想ドライバによって決定され得る。前述したように、仮想ドライバは、エミュレーション・モードにおいて動作していることがあり、エミュレーション・モードにおいて、仮想ドライバは、他のハードウェア・ドライバをエミュレートしており、それにより、ハードウェア・デバイスから、キャプチャされた情報を受信するか、又は場合により、特定のハードウェア・デバイスとインターフェースするように構成された1つ又は複数の他のハードウェア・ドライバから、キャプチャされた情報を受信することができる。 User input can be determined by a virtual driver running on the system. As mentioned earlier, a virtual driver may be operating in embroidery mode, in which the virtual driver emulates another hardware driver, thereby hardware device. To receive captured information from, or optionally from one or more other hardware drivers configured to interface with a particular hardware device. Can be done.

カメラ、ビデオ・カメラ、マイクロフォン、双方向通信を有するヘッドセット、マウス、タッチパッド、トラックパッド、コントローラ、ゲーム・パッド、ジョイスティック、タッチ・スクリーン、加速度計及び/又はチルト・センサを含む動きキャプチャ・デバイス、遠隔制御装置、スタイラス、或いはこれらのデバイスの任意の組合せなどの様々なハードウェア・デバイスが利用され得る。当然、ハードウェア・デバイスのこのリストは、単に実例として与えられ、音声、画像、ビデオ、又はタッチ情報を検出するために利用され得る任意のハードウェア・デバイスが利用され得る。 Motion capture devices including cameras, video cameras, microphones, headsets with two-way communication, mice, touchpads, trackpads, controllers, gamepads, joysticks, touch screens, accelerometers and / or tilt sensors. Various hardware devices may be utilized, such as a remote controller, stylus, or any combination of these devices. Of course, this list of hardware devices is given merely as an example, and any hardware device that can be used to detect audio, image, video, or touch information can be utilized.

ハードウェア・デバイスとシステムとの間の通信結合は、様々な形式をとることができる。例えば、ハードウェア・デバイスは、無線ネットワーク、Bluetoothプロトコル、無線周波数、赤外線信号を介して、及び/又はユニバーサル・シリアル・バス(USB)接続などの物理接続によってシステムと通信することができる。通信は、無線通信と有線通信との両方をも含むことができる。例えば、ハードウェア・デバイスは、2つのコンポーネントを含むことができ、そのうちの1つが、第2のコンポーネントに(Bluetoothを通じてなど)無線で信号を送信し、第2のコンポーネント自体は、(USBなどの)有線接続を介してシステムに接続する。様々な通信技法が本明細書に記載のシステムに従って利用され得、これらの実例は、限定するものではない。 Communication coupling between a hardware device and a system can take various forms. For example, hardware devices can communicate with the system via wireless networks, Bluetooth protocols, wireless frequencies, infrared signals, and / or by physical connections such as universal serial bus (USB) connections. Communication can also include both wireless and wired communication. For example, a hardware device can contain two components, one of which wirelessly signals a second component (such as through Bluetooth), and the second component itself (such as USB). ) Connect to the system via a wired connection. Various communication techniques may be utilized in accordance with the systems described herein, and examples thereof are not limited.

1つ又は複数のハードウェア・デバイスによってキャプチャされる情報は、1つ又は複数の画像を含む画像情報、ビデオのフレーム、音情報、及び/又はタッチ情報などの任意のタイプの情報であり得る。キャプチャされた情報は、音情報のための.wav又は.mp3ファイル、画像のための.jpegファイル、タッチ情報のための数値座標などの任意の好適なフォーマットのものであり得る。 The information captured by one or more hardware devices can be any type of information such as image information containing one or more images, video frames, sound information, and / or touch information. The captured information is for sound information. wav or. For mp3 files, images. It can be in any suitable format, such as a jpg file, numerical coordinates for touch information, and so on.

本明細書に記載の技法は、任意のディスプレイ・デバイスが、タッチ信号又はタッチ・ベースのジェスチャを検出するためのハードウェアを含まない場合でも、任意のコンテキストにおいて「タッチ」スクリーン・デバイスとして事実上機能することを可能にすることができる。これは、以下でより詳細に説明され、カメラ又はビデオ・カメラによってキャプチャされた画像の分析を通して達成され得る。 The techniques described herein are virtually as "touch" screen devices in any context, even if any display device does not include the hardware to detect touch signals or touch-based gestures. It can be made possible to work. This is described in more detail below and can be achieved through analysis of images captured by cameras or video cameras.

図4は、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報が1つ又は複数の画像を含むときの、1つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートである。 FIG. 4 is captured by one or more hardware devices when the information captured by one or more hardware devices communicatively coupled to the system contains one or more images. It is a flowchart for deciding a user input based at least partly based on the information.

ステップ401において、1つ又は複数の画像が受信される。これらの画像は、前述したように、カメラ又はビデオ・カメラなどのハードウェア・デバイスによってキャプチャされ得、仮想ドライバによって受信され得る。 In step 401, one or more images are received. These images can be captured by a hardware device such as a camera or video camera and received by a virtual driver, as described above.

ステップ402において、1つ又は複数の画像中のオブジェクトが認識される。オブジェクトは、例えば、ユーザの手、指、又は他の身体部位であり得る。オブジェクトはまた、スタイラス又はペンなどの専用デバイス、或いはシステムに通信可能に結合され、加速度計及び/又はチルト・センサを含んでいる動き追跡スタイラス/遠隔制御装置などの専用ハードウェア・デバイスであり得る。オブジェクト認識は、仮想ドライバによって実施され得、オブジェクトを使用して動作される較正ルーチンを通してなど、以前のトレーニングに基づき得る。 In step 402, objects in one or more images are recognized. The object can be, for example, a user's hand, finger, or other body part. The object can also be a dedicated device such as a stylus or pen, or a dedicated hardware device such as a motion tracking stylus / remote controller that is communicably coupled to the system and includes an accelerometer and / or tilt sensor. .. Object recognition can be performed by virtual drivers and can be based on previous training, such as through calibration routines that operate with objects.

図5Aは、例示的な実施例による、オブジェクト認識の一実例を示す。図5Aに示すように、画像501は、オブジェクト502として認識されたユーザの手を含む。認識アルゴリズムは、当然、指などの異なるオブジェクトを認識するように構成され得る。 FIG. 5A shows an example of object recognition according to an exemplary embodiment. As shown in FIG. 5A, image 501 includes a user's hand recognized as object 502. The recognition algorithm can, of course, be configured to recognize different objects such as fingers.

図4に戻ると、ステップ403において、認識されたオブジェクトの1つ又は複数の配向と1つ又は複数の位置とが決定される。これは、様々なやり方で達成され得る。オブジェクトがハードウェア・デバイスではなく、代わりに、手又は指などの身体部位である場合、オブジェクトは、オブジェクトの3次元座標と、X軸、Y軸、及びZ軸に対する様々な角度とを決定するために、カメラの既知のロケーションを基準点として使用する3次元座標系においてマッピングされ得る。オブジェクトがハードウェア・デバイスであり、加速度計及び/又はチルト・センサなどの動き追跡ハードウェアを含む場合、画像情報は、オブジェクトの位置及び配向を決定するための加速度計及び/又はチルト・センサによって示された情報とともに使用され得る。 Returning to FIG. 4, in step 403, one or more orientations and one or more positions of the recognized object are determined. This can be achieved in a variety of ways. If the object is not a hardware device, but instead a body part such as a hand or finger, the object determines the 3D coordinates of the object and various angles with respect to the X, Y, and Z axes. Therefore, it can be mapped in a three-dimensional coordinate system that uses a known location of the camera as a reference point. If the object is a hardware device and includes motion tracking hardware such as an accelerometer and / or tilt sensor, the image information is provided by the accelerometer and / or tilt sensor to determine the position and orientation of the object. Can be used with the information provided.

ステップ404において、ユーザ入力は、認識されたオブジェクトの1つ又は複数の配向と1つ又は複数の位置とに少なくとも部分的に基づいて決定される。これは、1つ又は複数の配向と1つ又は複数の位置とに少なくとも部分的に基づいて、透明層の透明ユーザ・インターフェース(UI)上のロケーション座標を決定することを含むことができる。透明UIは、透明層の一部であり、オペレーティとング・システム及び/又はオペレーティング・システム上で実行する任意のアプリケーションに対応する下位UIの上に重ね合わせられる。 In step 404, the user input is determined at least in part based on one or more orientations and one or more positions of the recognized object. This can include determining location coordinates on the transparent user interface (UI) of the transparent layer based at least in part on one or more orientations and one or more positions. The transparent UI is part of the transparent layer and is overlaid on top of the underlying UI that corresponds to any application running on the operating system and / or operating system.

図5Bは、オブジェクトがユーザの指であるときの、このステップの一実例を示す。図5Bに示すように、ディスプレイ・デバイス503は、下位UI506と、下位UI506上に重ね合わせられた透明UI507とを含む。明確にするために、透明UI507はドット・シェーディングで示されているが、実際には、透明UIは、ユーザにとって可視でない透明層であることを理解されたい。さらに、透明UI507は、下位UI506よりもわずかに小さいものとして示されているが、実際には、透明UIは、下位UIと同じスクリーン・エリアをカバーすることになることを理解されたい。 FIG. 5B shows an example of this step when the object is a user's finger. As shown in FIG. 5B, the display device 503 includes a lower UI 506 and a transparent UI 507 overlaid on the lower UI 506. For clarity, the transparent UI 507 is shown with dot shading, but it should be understood that the transparent UI is actually a transparent layer that is not visible to the user. Further, although the transparent UI 507 is shown as being slightly smaller than the lower UI 506, it should be understood that in practice the transparent UI will cover the same screen area as the lower UI.

図5Bに示すように、オブジェクト(ユーザの指)の位置及び配向情報は、ディスプレイ・デバイス503の平面上にラインを投影し、交差点505を決定するために使用される。カメラ504によってキャプチャされた画像情報及びカメラの下のディスプレイ・デバイス503の既知の位置が、この投影を助けるために使用され得る。図5Bに示すように、ユーザ入力は、交差点505における入力座標であると決定される。 As shown in FIG. 5B, the position and orientation information of the object (user's finger) is used to project a line onto the plane of the display device 503 and determine the intersection 505. The image information captured by the camera 504 and the known position of the display device 503 under the camera can be used to aid in this projection. As shown in FIG. 5B, the user input is determined to be the input coordinates at the intersection 505.

以下でさらに説明するように、この入力に基づいて生成される実際の透明層コマンドは、ユーザ設定及び/又は識別されたコンテキストに基づき得る。例えば、コマンドは、点505の座標におけるオブジェクトが選択され、及び/又は開かれるべきであることを示すタッチ・コマンドであり得る。コマンドは、(マウス・ポインタなどの)ポインタが点505の座標に移動されるべきであることを示すポインティング・コマンドでもあり得る。さらに、コマンドは、(インターフェースにアノテーションを付けるか又は要素を描画するためになど)ロケーションにおけるグラフィカル出力を修正する編集コマンドであり得る。 As further described below, the actual transparent layer commands generated based on this input may be based on user settings and / or identified contexts. For example, the command can be a touch command indicating that the object at the coordinates of point 505 should be selected and / or opened. The command can also be a pointing command indicating that the pointer (such as a mouse pointer) should be moved to the coordinates of point 505. In addition, the command can be an edit command that modifies the graphical output at the location (for example, to annotate the interface or draw an element).

図5Bは、ディスプレイ・デバイス503からいくらかの距離にあるものとして、認識されたオブジェクト502を示しているが、距離にかかわらずタッチ入力が検出され得る。例えば、ユーザがディスプレイ・デバイス503に物理的にタッチする場合、前述した技法は、依然として入力座標を決定することになる。その場合、オブジェクト502と交差点との間の投影ラインは、より短くなるにすぎないであろう。 FIG. 5B shows the recognized object 502 as being at some distance from the display device 503, but touch input can be detected regardless of the distance. For example, if the user physically touches the display device 503, the technique described above will still determine the input coordinates. In that case, the projection line between the object 502 and the intersection would only be shorter.

当然、タッチ入力は、キャプチャされた画像から決定され得るユーザ入力の唯一のタイプではない。認識されたオブジェクトの1つ又は複数の配向と1つ又は複数の位置とに少なくとも部分的に基づいてユーザ入力を決定するステップは、ジェスチャ入力を決定することを含むことができる。特に、複数の画像にわたる認識されたオブジェクトの位置及び配向が、スワイプ・ジェスチャ、ピンチ・ジェスチャ、及び/或いは任意の既知の又はカスタマイズされたジェスチャなどの対応するジェスチャを決定するために分析され得る。ユーザは、特定のコンテキスト及びそれらのコンテキスト内のコマンドにマッピングされるカスタム・ジェスチャを認識するように仮想ドライバを較正することができる。例えば、ユーザは、オペレーティング・システム・コンテキストにマッピングされ、特定のアプリケーションを起動するネイティブ・オペレーティング・システム・コマンドの実行を生じる、カスタム・ジェスチャを作成することができる。 Of course, touch input is not the only type of user input that can be determined from the captured image. The step of determining a user input based at least in part on one or more orientations and one or more positions of a recognized object can include determining a gesture input. In particular, the position and orientation of the recognized object across multiple images can be analyzed to determine the corresponding gesture, such as a swipe gesture, a pinch gesture, and / or any known or customized gesture. The user can calibrate the virtual driver to recognize custom gestures that map to specific contexts and commands within those contexts. For example, a user can create a custom gesture that maps to an operating system context and results in the execution of a native operating system command that launches a particular application.

前述したように、図3のステップ301において1つ又は複数のハードウェア・デバイスによってキャプチャされた情報は、マイクロフォンによってキャプチャされた音情報をも含むことができる。図6は、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報が音情報であるときの、キャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートである。以下で説明するように、ユーザ入力に対応する1つ又は複数のワードを識別するために、音情報に対して音声認識が実施される。 As mentioned above, the information captured by one or more hardware devices in step 301 of FIG. 3 may also include sound information captured by a microphone. FIG. 6 determines user input based at least in part on the captured information when the information captured by one or more hardware devices communicatively coupled to the system is sound information. It is a flowchart for. As described below, speech recognition is performed on the sound information to identify one or more words corresponding to user input.

ステップ601において、音データが受信される。音データは、前述したように、マイクロフォンなどのハードウェア・デバイスによってキャプチャされ、仮想ドライバによって受信され得る。ステップ602において、受信された音データは、音辞書と比較され得る。音辞書は、コマンド・ワード又はコマンド・モディファイアなどの1つ又は複数の認識されたワードの音シグネチャを含むことができる。ステップ603において、音データ中の1つ又は複数のワードが、比較に基づいて、ユーザ入力として識別される。次いで、識別された1つ又は複数のワードは、透明層コマンドに変換され、透明層に渡され得る。 In step 601 the sound data is received. Sound data can be captured by a hardware device such as a microphone and received by a virtual driver, as described above. In step 602, the received sound data can be compared with a sound dictionary. The sound dictionary can include sound signatures of one or more recognized words, such as command words or command modifiers. In step 603, one or more words in the sound data are identified as user input based on comparison. The identified word may then be converted to a transparent layer command and passed to the transparent layer.

前述したように、仮想ドライバによってエミュレートされるドライバ、ユーザ入力の予想されるタイプ、及びユーザ入力に基づいて生成されるコマンドは、すべて、1つ又は複数の設定又は前のユーザ入力に少なくとも部分的に基づいて決定され得る。 As mentioned above, the driver emulated by the virtual driver, the expected type of user input, and the commands generated based on the user input are all at least part of one or more settings or previous user input. Can be determined on the basis of.

図7は、透明層の一部でもあり得るツール・インターフェース701を示す。透明UIとは異なり、ツール・インターフェース701は、ユーザにとって可視であり、仮想ドライバのエミュレーション・モード、ユーザ入力に基づいて生成されるネイティブ・コマンドを変更する異なるオプション間で選択するか、又は追加の機能を実施するために、使用され得る。 FIG. 7 shows a tool interface 701 that can also be part of a transparent layer. Unlike the transparent UI, the tool interface 701 is visible to the user and can be selected between different options to change the virtual driver emulation mode, native commands generated based on user input, or additional Can be used to perform a function.

ボタン701Aは、ユーザ入力が入力座標(ユーザが手又はスタイラス/遠隔制御装置を用いてスクリーンにタッチすることに基づく座標など)であるとき、ユーザが、ユーザ・インターフェースをグラフィカルに修正するために使用される描画ツールのタイプを選択することを可能にする。様々な描画ツールは、異なるブラシ、色、ペン、ハイライタなどを含むことができる。これらのツールは、変動するスタイル、厚さ、色などのグラフィカルな変更を生じることがある。 Button 701A is used by the user to graphically modify the user interface when the user input is input coordinates (such as coordinates based on the user touching the screen with a hand or stylus / remote controller). Allows you to select the type of drawing tool that will be used. Various drawing tools can include different brushes, colors, pens, highlighters, and so on. These tools can make graphical changes in varying styles, thicknesses, colors, etc.

ボタン701Bは、入力座標がユーザ入力として受信されるとき、ユーザが、選択モード、ポインティング・モード、又は描画モードの間で切り替えることを可能にする。選択モードでは、入力座標は、「タッチ」として処理され、入力座標におけるオブジェクトの選択又はオブジェクトを開くことを生じ得る。ポインティング・モードでは、座標は、(マウス・ポインタなどの)ポインタ位置として処理され得、ユーザがマウスをエミュレートすることを効果的に可能にする。描画モードでは、座標は、ユーザ・インターフェース上に描画又は書込みの外観を提示するために、ユーザ・インターフェースのグラフィカル出力を変更するためのロケーションとして処理され得る。変更の性質は、ボタン701Aに関して説明したように、選択された描画ツールに依存することがある。ボタン701Bはまた、(動き追跡デバイスが使用される場合)画像入力及び/又は動き入力を予想し、それに応じて適切なドライバをエミュレートするように仮想ドライバにアラートすることができる。 Button 701B allows the user to switch between selection mode, pointing mode, or drawing mode when the input coordinates are received as user input. In selection mode, the input coordinates are treated as a "touch", which can result in selecting or opening an object in the input coordinates. In pointing mode, the coordinates can be treated as pointer positions (such as mouse pointers), effectively allowing the user to emulate the mouse. In drawing mode, the coordinates can be treated as a location for modifying the graphical output of the user interface to present the appearance of drawing or writing on the user interface. The nature of the changes may depend on the drawing tool selected, as described for Button 701A. Button 701B can also alert the virtual driver to anticipate image and / or motion input (if motion tracking devices are used) and emulate the appropriate driver accordingly.

ボタン701Cは、音声コマンドを予想するように仮想ドライバにアラートする。これは、図6に関して説明したように、仮想ドライバが、音声入力を受信し、音声入力をパースするための結合されたマイクロフォンに対応するドライバをエミュレートすることを引き起こすことができる。 Button 701C alerts the virtual driver to anticipate voice commands. This can cause the virtual driver to emulate the driver corresponding to the combined microphone for receiving the voice input and parsing the voice input, as described with respect to FIG.

ボタン701Dは、透明層の一部であり得、オペレーティング・システム内のアプリケーションを起動するために又はアプリケーション内の特定のコマンドを起動するために使用され得る、ローンチャ・アプリケーションを開く。ローンチャは、ユーザ入力に関連付けられたアプリケーションのためのカスタム音声コマンド、カスタム・ジェスチャ、カスタム・ネイティブ・コマンドなどの、透明層におけるオプションをカスタマイズするために、並びに/或いは(音声較正、動きキャプチャ・デバイス較正、及び/又はオブジェクト認識較正などの)ハードウェア・デバイス及びユーザ入力を較正するためにも使用され得る。 Button 701D opens a launcher application that can be part of a transparent layer and can be used to launch an application within the operating system or to launch a specific command within the application. Launchers are used to customize options in the transparency layer, such as custom voice commands, custom gestures, and custom native commands for applications associated with user input, and / or (voice calibration, motion capture devices). It can also be used to calibrate hardware devices and user inputs (such as calibration and / or object recognition calibration).

ボタン701Eは、ユーザ・インターフェースのスクリーンショットをキャプチャするために、及び画像としてスクリーンショットをエクスポートするために使用され得る。これは、ボタン701Bの描画モード及び701Aの描画ツールとともに使用され得る。ユーザが特定のユーザ・インターフェースをマーク・アップした後に、マーク・アップされたバージョンが画像としてエクスポートされ得とる。 Button 701E can be used to capture a screenshot of the user interface and to export the screenshot as an image. It can be used with the drawing mode of button 701B and the drawing tool of 701A. After the user marks up a particular user interface, the marked up version can be exported as an image.

また、ボタン701Fは、グラフィカルな編集を可能にし、ユーザがユーザ・インターフェース上に作成している描画の色又は描画の態様を変更するために使用され得る。ボタン701Bの描画モードと同様に、このボタンは、入力座標におけるグラフィカルな変更の性質を変更する。 Button 701F also allows graphical editing and can be used to change the color or mode of drawing that the user is creating on the user interface. Similar to the drawing mode of button 701B, this button changes the nature of the graphical changes in the input coordinates.

ボタン701Gは、ユーザ・インターフェース上の描画を消去する。このボタンの選択は、ユーザ・インターフェース上のすべてのグラフィカル・マーキングを除去し、下位UIを、ユーザが描画を作成するより前にそうであった状態にリセットすることができる。 Button 701G erases the drawing on the user interface. This button selection removes all graphical markings on the user interface and resets the underlying UI to what it was before the user created the drawing.

ボタン701Hは、ユーザが仮想ホワイトボード上に描画モードを使用して描画又は書込みを作成することを可能にする、ホワイトボード・アプリケーションを起動するために使用され得る。 Button 701H can be used to launch a whiteboard application that allows the user to create a draw or write on a virtual whiteboard using the draw mode.

ボタン701Iは、オペレーティング・システムUI又はアプリケーションUIにおいて示されるオブジェクトなどのオブジェクトにテキスト・ノートを追加するために使用され得る。テキスト・ノートは、音声信号から解釈されるか、又はキーボードを使用してユーザによってタイピングされ得る。 Button 701I can be used to add text notes to objects such as those shown in the operating system UI or application UI. Text notes can be interpreted from audio signals or typed by the user using the keyboard.

ボタン701Jは、ツール・インターフェース701を開くか又は閉じるために使用され得る。閉じられたとき、ツール・インターフェースは、最小化されるか又は下位ユーザ・インターフェースから完全に除去され得る。 Button 701J can be used to open or close the tool interface 701. When closed, the tool interface can be minimized or completely removed from the subordinate user interface.

前述したように、スタイラス又はリモート・ハードウェア・デバイスが、カメラ又はビデオ・カメラなどの他のハードウェア・デバイスとともに、本システムとともに使用され得る。図8は、本システムとともに使用され得るスタイラス801の一実例を示す。スタイラス801は、Bluetoothなどを通じて、ハードウェア受信機802と通信することができる。ハードウェア受信機は、USB802Bなどを介して、コンピュータ・システムに接続することができ、ハードウェア受信機を介してコンピュータ・システムに渡されたスタイラスからの信号は、図7に示されているツール・インターフェースと同様であるメニュー803を制御し、それと対話するために使用され得る。 As mentioned above, a stylus or remote hardware device can be used with the system, along with other hardware devices such as cameras or video cameras. FIG. 8 shows an example of a stylus 801 that can be used with this system. The stylus 801 can communicate with the hardware receiver 802 through Bluetooth or the like. The hardware receiver can be connected to the computer system via USB802B or the like, and the signal from the stylus passed to the computer system via the hardware receiver is the tool shown in FIG. It can be used to control and interact with menu 803, which is similar to the interface.

図8に示すように、スタイラス801は、物理ボタン801Aを含むことができる。これらの物理ボタン801は、スタイラスを電源投入し、メニュー803をナビゲートし、選択を行うために使用され得る。さらに、スタイラス801は、カメラによる画像においてキャプチャされ、仮想ドライバによって認識される、特徴的な先端801Bを含むことができる。これは、スタイラス801が、描画モードにあるとき、描画及び編集のために使用されることを可能にすることができる。スタイラス801は、入力座標又はジェスチャを与えるために使用されるとき、位置検出を助けるための加速度計及び/又はチルト・センサなどの動き追跡ハードウェアをも含むことができる。さらに、ハードウェア受信機802は、較正ボタン802Aを含むことができ、較正ボタン802Aは、押下されたとき、ユーザ・インターフェースにおいて較正ユーティリティを起動することができる。これは、スタイラスの較正を可能にする。 As shown in FIG. 8, the stylus 801 can include a physical button 801A. These physical buttons 801 can be used to power on the stylus, navigate menu 803, and make selections. In addition, the stylus 801 can include a characteristic tip 801B that is captured in the image taken by the camera and recognized by the virtual driver. This can allow the stylus 801 to be used for drawing and editing when in drawing mode. The stylus 801 can also include motion tracking hardware such as an accelerometer and / or a tilt sensor to assist in position detection when used to provide input coordinates or gestures. In addition, the hardware receiver 802 can include a calibration button 802A, which, when pressed, can activate the calibration utility in the user interface. This allows the stylus to be calibrated.

図3に戻ると、ステップ302において、ユーザ入力に対応するコンテキストが識別される。識別されたコンテキストは、オペレーティング・システム又はオペレーティング・システム上で実行するアプリケーションのうちの1つを備える。 Returning to FIG. 3, in step 302, the context corresponding to the user input is identified. The identified context comprises the operating system or one of the applications running on the operating system.

図9は、例示的な実施例による、ユーザ入力に対応するコンテキストを識別するためのフローチャートである。図9に示すように、オペレーティング・システム・データ901、アプリケーション・データ902、及びユーザ入力データ903が、すべて、コンテキスト904を決定するために使用され得る。 FIG. 9 is a flowchart for identifying a context corresponding to user input according to an exemplary embodiment. As shown in FIG. 9, operating system data 901, application data 902, and user input data 903 can all be used to determine context 904.

オペレーティング・システム・データ901は、例えば、オペレーティング・システムにおけるアクティブ・ウィンドウに関する情報を含むことができる。例えば、アクティブ・ウィンドウが計算器ウィンドウである場合、コンテキストが計算器アプリケーションであると決定され得る。同様に、アクティブ・ウィンドウがMicrosoft Wordウィンドウである場合、コンテキストがMicrosoft Wordアプリケーションであると決定され得る。一方、アクティブ・ウィンドウがファイル・フォルダである場合、アクティブ・コンテキストがオペレーティング・システムであると決定され得る。オペレーティング・システム・データは、どのアプリケーションが現在実行中であるか、最後に起動されたアプリケーション、及びコンテキストを決定するために使用され得る任意の他のオペレーティング・システム情報などの追加情報をも含むことができる。 Operating system data 901 can include, for example, information about the active window in the operating system. For example, if the active window is a calculator window, the context can be determined to be a calculator application. Similarly, if the active window is a Microsoft Word window, the context can be determined to be a Microsoft Word application. On the other hand, if the active window is a file folder, the active context can be determined to be the operating system. Operating system data should also include additional information such as which application is currently running, the last launched application, and any other operating system information that can be used to determine the context. Can be done.

アプリケーション・データ902は、例えば、実行している1つ又は複数のアプリケーションに関する情報及び/又は特定のアプリケーションをあるタイプのユーザ入力にマッピングする情報を含むことができる。例えば、音声コマンドが受信されるときはいつでも、コンテキストが第1のアプリケーションであると自動的に決定されるように、第1のアプリケーションが音声入力にマッピングされ得る。別の実例では、特定のジェスチャが入力として受信されたとき、第2のアプリケーションが、起動されるか又は閉じられるか、或いは第2のアプリケーション内の何らかのアクションが実施されるように、そのジェスチャが第2のアプリケーションに関連付けられ得る。 Application data 902 can include, for example, information about one or more applications running and / or information that maps a particular application to some type of user input. For example, a first application may be mapped to a voice input such that the context is automatically determined to be the first application whenever a voice command is received. In another example, when a particular gesture is received as input, the gesture causes the second application to be launched or closed, or to take some action within the second application. Can be associated with a second application.

ユーザ入力903は、様々なやり方でコンテキストを決定するためにも使用され得る。前述したように、あるタイプのユーザ入力が、あるアプリケーションにマッピングされ得る。上記の実例では、音声入力が第1のアプリケーションのコンテキストに関連付けられる。さらに、ユーザ入力の属性も、コンテキストを決定するために使用され得る。ジェスチャ又は動きが、アプリケーションに又はオペレーティング・システムにマッピングされ得る。音声コマンド中の特定のワードも、アプリケーションに又はオペレーティング・システムにマッピングされ得る。入力座標も、コンテキストを決定するために使用され得る。例えば、入力座標の位置にあるユーザ・インターフェースにおけるウィンドウが決定され得、そのウィンドウに対応するアプリケーションがコンテキストとして決定され得る。 User input 903 can also be used to determine context in various ways. As mentioned above, some type of user input can be mapped to an application. In the above example, the voice input is associated with the context of the first application. In addition, user-input attributes can also be used to determine the context. Gestures or movements can be mapped to applications or operating systems. Certain words in voice commands can also be mapped to applications or operating systems. Input coordinates can also be used to determine the context. For example, a window in the user interface at the location of the input coordinates can be determined, and the application corresponding to that window can be determined as the context.

図10は、コンテキストを決定するために入力座標を使用することの一実例を示す。図10に示すように、ディスプレイ・デバイス1001がユーザ・インターフェース1002を表示している。また、カメラ1004と、下位ユーザ・インターフェース1003上に重ね合わされた透明層1003とが示されている。ユーザは、ユーザ・インターフェース1002におけるロケーション1005を指すためにスタイラス1000を利用する。ロケーション1005は、アプリケーション1に対応するアプリケーション・ウィンドウ内にあるので、アプリケーション1は、アプリケーション2、アプリケーション3、又はオペレーティング・システムとは対照的に、ユーザ入力のためのコンテキストであると決定され得る。 FIG. 10 shows an example of using input coordinates to determine the context. As shown in FIG. 10, the display device 1001 displays the user interface 1002. Also shown are the camera 1004 and the transparent layer 1003 overlaid on the lower user interface 1003. The user utilizes the stylus 1000 to point to location 1005 in user interface 1002. Since location 1005 is in the application window corresponding to application 1, application 1 can be determined to be the context for user input, as opposed to application 2, application 3, or the operating system.

図3に戻ると、ステップ303において、ユーザ入力は、識別されたコンテキストに少なくとも部分的に基づいて、1つ又は複数の透明層コマンドに変換される。前述したように、透明層は、仮想ドライバとオペレーティング・システム及び/又はオペレーティング・システム上で実行するアプリケーションとの間をインターフェースするように構成されたアプリケーション・プログラミング・インターフェース(API)を備える。 Returning to FIG. 3, in step 303, the user input is transformed into one or more transparent layer commands based at least in part based on the identified context. As mentioned above, the transparent layer comprises an application programming interface (API) configured to interface between the virtual driver and the operating system and / or the application running on the operating system.

図11は、ユーザ入力を透明層コマンドに変換するためのフローチャートである。図11のステップ1104に示されているように、透明層コマンドは、識別されたコンテキスト1102及びユーザ入力1103に少なくとも部分的に基づいて決定され得る。透明層コマンドは、1つ又は複数の対応するコンテキストにおいて実行するように構成された1つ又は複数のネイティブ・コマンドを含むことができる。透明層コマンドは、仮想ドライバに及び(1つ又は複数の)ハードウェア・デバイス上に送信されるべき応答出力をも含むことができる。 FIG. 11 is a flowchart for converting user input into a transparent layer command. As shown in step 1104 of FIG. 11, the transparent layer command can be determined at least in part based on the identified context 1102 and user input 1103. A transparent layer command can include one or more native commands configured to execute in one or more corresponding contexts. The transparent layer command can also include a response output that should be sent to the virtual driver and on the hardware device (s).

識別されたコンテキスト1102は、どの透明層コマンドがユーザ入力にマッピングされるべきであるかを決定するために使用され得る。例えば、識別されたコンテキストが「オペレーティング・システム」である場合、スワイプ・ジェスチャ入力が、ユーザ・インターフェースが(1つの開いているウィンドウを最小化し、次の開いているウィンドウを最大化することによって)オペレーティング・システム内の現在開いているウィンドウをスクロールすることを生じる透明層コマンドにマッピングされ得る。代替的に、識別されたコンテキストが「ウェブ・ブラウザ・アプリケーション」である場合、同じスワイプ・ジェスチャ入力が、ウェブ・ページがスクロールされることを生じる透明層コマンドにマッピングされ得る。 The identified context 1102 can be used to determine which transparent layer command should be mapped to user input. For example, if the identified context is "operating system", swipe gesture input will cause the user interface to minimize one open window and maximize the next). It can be mapped to a transparent layer command that results in scrolling the currently open window in the operating system. Alternatively, if the identified context is a "web browser application", the same swipe gesture input can be mapped to a transparent layer command that causes the web page to scroll.

ユーザ入力1103は、ユーザ入力が1つ又は複数のコンテキスト内のあるネイティブ・コマンドに明確にマッピングされ、これらのネイティブ・コマンドが透明層コマンドの一部であるので、透明層コマンドをも決定する。例えば、音声コマンド「電子メールを開いて」が、電子メール・アプリケーションOutlookを起動するための特定のオペレーティング・システム・ネイティブ・コマンドにマッピングされ得る。認識されたワード「電子メールを開いて」を含む音声入力が受信されたとき、これは、Outlookを起動するためのネイティブ・コマンドを含む透明層コマンドが決定されることを生じる。 User input 1103 also determines transparent layer commands because user input is clearly mapped to native commands in one or more contexts, and these native commands are part of the transparent layer commands. For example, the voice command "Open Email" can be mapped to a specific operating system native command to launch the email application Outlook. When a voice input containing the recognized word "Open Email" is received, this results in a transparent layer command being determined, including a native command to launch Outlook.

図11に示すように、透明層コマンドはまた、1つ又は複数のユーザ設定1101及びAPIライブラリ1104に基づいて決定され得る。APIライブラリ1104は、識別されたコンテキスト及び特定のユーザ入力に対応するネイティブ・コマンドをルックアップするために使用され得る。スワイプ・ジェスチャ及びウェブ・ブラウザ・アプリケーション・コンテキストの実例では、ウェブ・ブラウザ・アプリケーションに対応するAPIライブラリは、ウェブ・ページのスクロールを引き起こすために、適切なAPI呼出しについて問い合わせられ得る。代替的に、APIライブラリ1104は、省略され得、ネイティブ・コマンドが、特定のユーザ入力及び識別されたコンテキストに向けてマッピングされ得る。 As shown in FIG. 11, the transparent layer command may also be determined based on one or more user settings 1101 and API library 1104. The API library 1104 can be used to look up native commands that correspond to an identified context and a particular user input. In the swipe gesture and web browser application context examples, the API library corresponding to the web browser application can be queried for the appropriate API call to cause web page scrolling. Alternatively, API library 1104 can be omitted and native commands can be mapped towards specific user inputs and identified contexts.

ユーザ入力が入力座標であると決定される状況では、透明層コマンドは、入力ロケーション座標及び識別されたコンテキストに少なくとも部分的に基づいて決定される。この場合、透明層コマンドは、識別されたコンテキストにおける少なくとも1つのネイティブ・コマンドを含むことができ、少なくとも1つのネイティブ・コマンドは、下位UI内の対応するロケーション座標におけるアクションを実施するように構成される。 In situations where user input is determined to be input coordinates, the transparent layer command is determined at least in part based on the input location coordinates and the identified context. In this case, the transparent layer command can contain at least one native command in the identified context, and at least one native command is configured to perform an action at the corresponding location coordinate in the underlying UI. NS.

特定のコンテキスト及びユーザ入力にマッピングされる2つ以上の可能なアクションがあるとき、設定1101は、対応する透明層コマンドを決定するために使用され得る。例えば、図7のボタン701Bは、入力座標がユーザ入力として受信されるとき、ユーザが、選択モード、ポインティング・モード、又は描画モードの間で選択することを可能にする。この設定は、透明層コマンドを決定するために、並びにひいては、どのネイティブ・コマンドが実施されるか及びどのアクションが実施されるかを決定するために使用され得る。この場合、可能なネイティブ・コマンドは、下位UI内の対応するロケーション座標に関連付けられたオブジェクトを選択するように構成された選択コマンド、ポインタを下位UI内の対応するロケーション座標に移動するように構成されたポインタ・コマンド、及び下位UI内の対応するロケーション座標におけるディスプレイ出力を変更するように構成されたグラフィカル・コマンドを含むことができる。 Setting 1101 can be used to determine the corresponding transparent layer command when there are two or more possible actions that are mapped to a particular context and user input. For example, button 701B of FIG. 7 allows the user to select between a selection mode, a pointing mode, or a drawing mode when the input coordinates are received as user input. This setting can be used to determine the transparent layer command and, by extension, which native command will be executed and which action will be performed. In this case, the possible native command is a selection command configured to select the object associated with the corresponding location coordinate in the lower UI, configured to move the pointer to the corresponding location coordinate in the lower UI. It can include pointer commands that have been made, and graphical commands that are configured to change the display output at the corresponding location coordinates in the underlying UI.

図12Aは、選択モードがトグルされるときの、入力座標を受信することの一実例を示す。図12Aに示すように、ユーザは、ディスプレイ・デバイス1201上の(重ね合わせられた透明UI1203を有する)オペレーティング・システムUI1202においてスタイラス1200をポイントした。前の実例と同様に、カメラ1204は、スタイラス1200についての位置及び配向情報並びに入力座標を決定するために使用され得る。選択モードがトグルされ、スタイラス1200がオペレーティング・システムUI1202内のフォルダ1205においてポイントされるので、決定された透明層コマンドは、入力座標に関連付けられたオブジェクト(この場合、フォルダ1205である)を選択するためのネイティブ・オペレーティング・システム・コマンドを含むことができる。別の実例では、ウィンドウが入力座標に位置する場合、これは、ウィンドウ全体の選択を生じるであろう。 FIG. 12A shows an example of receiving input coordinates when the selection mode is toggled. As shown in FIG. 12A, the user points to the stylus 1200 in operating system UI 1202 (with superposed transparent UI 1203) on display device 1201. Similar to the previous example, the camera 1204 can be used to determine the position and orientation information as well as the input coordinates for the stylus 1200. The determined transparent layer command selects the object associated with the input coordinates (in this case, folder 1205), as the selection mode is toggled and the stylus 1200 is pointed to in folder 1205 in operating system UI 1202. Can contain native operating system commands for. In another example, if the window is located in input coordinates, this will result in a selection of the entire window.

図12Bは、ポインティング・モードがトグルされるときの、入力座標を受信することの一実例を示す。この場合、決定された透明層コマンドは、マウス・ポインタ1206を入力座標のロケーションに移動するためのネイティブ・オペレーティング・システム・コマンドを含むことができる。 FIG. 12B shows an example of receiving input coordinates when the pointing mode is toggled. In this case, the determined transparent layer command can include a native operating system command to move the mouse pointer 1206 to the location of the input coordinates.

図12Cは、描画モードがトグルされ、ユーザが複数の入力座標にわたってスタイラス1200をスイープしたときの、入力座標を受信することの一実例を示す。この場合、決定された透明層コマンドは、入力座標の各々のロケーションにおけるディスプレイ出力を変更するためのネイティブ・オペレーティング・システム・コマンドを含むことができ、ユーザ・インターフェース1202上のユーザの描画ライン1207を生じる。描画モードにおいてもたらされた修正されたグラフィカル出力は、透明層1203の一部として、例えば、入力座標の経路に関係するメタデータとして記憶され得る。ユーザは、次いで、変更されたディスプレイ出力を画像としてエクスポートするためのオプションを選択することができる。 FIG. 12C shows an example of receiving input coordinates when the drawing mode is toggled and the user sweeps the stylus 1200 over a plurality of input coordinates. In this case, the determined transparent layer command can include a native operating system command to change the display output at each location of the input coordinates, and the user's drawing line 1207 on the user interface 1202. Occurs. The modified graphical output provided in the drawing mode can be stored as part of the transparent layer 1203, for example, as metadata related to the path of the input coordinates. The user can then select an option to export the modified display output as an image.

ユーザ入力がジェスチャとして識別される状況では、識別されたコンテキストに少なくとも部分的に基づいてユーザ入力を1つ又は複数の透明層コマンドに変換することは、識別されたジェスチャ及び識別されたコンテキストに少なくとも部分的に基づいて透明層コマンドを決定することを含むことができる。透明層コマンドは、識別されたコンテキストにおける少なくとも1つのネイティブ・コマンドを含むことができ、少なくとも1つのネイティブ・コマンドは、識別されたコンテキストにおける識別されたジェスチャに関連付けられたアクションを実施するように構成される。これの一実例は、ウェブ・ブラウザにおけるスクロール・アクションを実施するように構成されたネイティブ・コマンドを生じる、スワイプ・ジェスチャ及びウェブ・ブラウザ・アプリケーション・コンテキストに関して前述した。 In situations where user input is identified as a gesture, translating user input into one or more transparent layer commands based at least in part on the identified context is at least to the identified gesture and the identified context. It can include determining the transparent layer command on a partial basis. A transparent layer command can contain at least one native command in the identified context, and at least one native command is configured to perform the action associated with the identified gesture in the identified context. Will be done. An example of this has been described above with respect to swipe gestures and web browser application contexts that result in native commands configured to perform scrolling actions in a web browser.

(音声認識を使用することによってなど)ユーザ入力が1つ又は複数のワードとして識別される状況では、識別されたものに少なくとも部分的に基づいてユーザ入力を1つ又は複数の透明層コマンドに変換することは、識別された1つ又は複数のワード及び識別されたコンテキストに少なくとも部分的に基づいて透明層コマンドを決定することを含むことができる。透明層コマンドは、識別されたコンテキストにおける少なくとも1つのネイティブ・コマンドを含むことができ、少なくとも1つのネイティブ・コマンドは、識別されたコンテキストにおける識別された1つ又は複数のワードに関連付けられたアクションを実施するように構成される。 In situations where user input is identified as one or more words (such as by using speech recognition), convert user input to one or more transparent layer commands based at least in part on what is identified. What you do can include determining the Stratum lucidum command based at least in part on the identified word and the identified context. A transparent layer command can include at least one native command in the identified context, and at least one native command can perform an action associated with one or more identified words in the identified context. Configured to carry out.

図13は、入力音声データ中で識別された1つ又は複数のワードに基づいて決定される透明層コマンド1300の一実例を示す。識別されたワード1301は、「ホワイトボード」という句又は「ブランク・ページ」という句のうちの1つを含む。透明層コマンド1300は、コマンドの説明1302と、透明層コマンドの実行時に透明層によって仮想ドライバに及びハードウェア出力デバイスに送られた出力命令である応答命令1303とをも含む。さらに、透明層コマンド1300は、ホワイトボード機能を呼び出すために使用される実際のネイティブ・コマンド1304を含む。 FIG. 13 shows an example of the transparent layer command 1300 determined based on one or more words identified in the input voice data. The identified word 1301 includes one of the phrases "whiteboard" or "blank page". The transparent layer command 1300 also includes a description of the command 1302 and a response command 1303 which is an output command sent by the transparent layer to the virtual driver and to the hardware output device when the transparent layer command is executed. In addition, the transparent layer command 1300 includes the actual native command 1304 used to call the whiteboard function.

図14は、例示的な実施例による、入力音声データ中で識別された1つ又は複数のワードに基づいて決定される透明層コマンド1400の別の実例を示す。この実例では、1つ又は複数のワードは、「電子メールを開いて」である。図14に示すように、透明層コマンド1400は、ネイティブ・コマンド「outlook.exe」を含み、これは、outlookアプリケーションを起動する特定の実行ファイルを動作させるようにとの命令である。透明層コマンド1400は、音声コマンドを受信したことに応答して出力される「電子メールを開きました」という音声応答をも含む。 FIG. 14 shows another example of the transparent layer command 1400 determined based on one or more words identified in the input voice data according to an exemplary embodiment. In this example, one or more words are "open email". As shown in FIG. 14, the transparent layer command 1400 includes a native command "outlook.exe", which is an instruction to operate a specific executable file that starts an outlook application. The transparent layer command 1400 also includes a voice response "opened an email" that is output in response to receiving a voice command.

図3に戻ると、ステップ304において、1つ又は複数の透明層コマンドが透明層上で実行される。1つ又は複数の透明層コマンドの実行が、識別されたコンテキストにおける1つ又は複数のネイティブ・コマンドの実行を引き起こすように構成される。 Returning to FIG. 3, in step 304, one or more transparent layer commands are executed on the transparent layer. Execution of one or more transparent layer commands is configured to trigger execution of one or more native commands in the identified context.

図15は、例示的な実施例による、透明層上で1つ又は複数の透明層コマンドを実行するためのフローチャートである。ステップ1501において、透明層コマンドにおける少なくとも1つのネイティブ・コマンドが識別される。ネイティブ・コマンドは、例えば、透明層コマンドの構造内のネイティブ・コマンドとして指定され得、識別を可能にする。 FIG. 15 is a flowchart for executing one or more transparent layer commands on the transparent layer according to an exemplary embodiment. In step 1501, at least one native command in the transparent layer command is identified. Native commands can be specified, for example, as native commands within the structure of transparent layer commands, allowing identification.

ステップ1502において、少なくとも1つのネイティブ・コマンドが、識別されたコンテキストにおいて実行される。このステップは、そのコンテキストについて識別されたAPIを介して、識別されたコンテキストに少なくとも1つのネイティブ・コマンドを渡すことと、識別されたコンテキスト内でネイティブ・コマンドを実行することとを含むことができる。例えば、識別されたコンテキストがオペレーティング・システムである場合、ネイティブ・コマンドは、オペレーティング・システムAPIを介して実行のためにオペレーティング・システムに渡され得る。さらに、識別されたコンテキストがアプリケーションである場合、ネイティブ・コマンドは、アプリケーションAPIを介して実行のためにアプリケーションに渡され得る。 In step 1502, at least one native command is executed in the identified context. This step can include passing at least one native command to the identified context via the API identified for that context and executing the native command within the identified context. .. For example, if the identified context is the operating system, native commands may be passed to the operating system for execution via the operating system API. In addition, if the identified context is an application, native commands may be passed to the application for execution via the application API.

場合により、ステップ1503において、応答が(1つ又は複数の)ハードウェア・デバイスに送信され得る。前述したように、この応答は、透明層から仮想ドライバに及びハードウェア・デバイス上にルーティングされ得る。 Optionally, at step 1503, the response may be sent to the hardware device (s). As mentioned above, this response can be routed from the transparent layer to the virtual driver and onto the hardware device.

図16〜図19は、本明細書で開示されるシステムの追加の特徴を示す。図16は、例示的な実施例による、ユーザ入力に対応する新しいコマンドを追加するための例示的なインターフェースを示す。インターフェース1600におけるダッシュボードが、すでに追加され、所定のユーザ入力及びハードウェア・デバイス(例えば、音声コマンド)を使用して起動され得る、アプリケーション1601のアイコンを含む。ダッシュボードは、アプリケーション固有であり、あるユーザ入力にマッピングされる、他のコマンドをも示すことができる。追加ボタン1602の選択は、追加コマンド・メニュー1603を開く。このメニューは、ユーザが以下のオプション間で選択することを可能にする:アイテム・タイプ:下部バー・メニュー上に追加するための固定アイテム/ドラッグ・メニュー中に追加するための通常アイテム、アイコン:画像アイコンを選択する、背景:背景アイコン色を選択する、色:アイコン色を選択する、名前:新しいアイテム名を設定する、音声コマンド:新しいアプリケーションを開くための音声アクティベーション・コマンドを設定する、フィードバック応答:アプリケーション音声応答フィードバックを設定する、コマンド:起動すべきアプリケーション・タイプ又はカスタム・コマンド・タイプを選択する(例えば、アプリケーション・コマンドを起動する、アプリケーション・コマンド内のアクションを実施する、アプリケーション・コマンドを閉じるなど)、プロセス開始:新しいプロセス又はアプリケーションを起動する場合、プロセス又はアプリケーションの名前、及びパラメータ:新しいプロセス又はアプリケーションに渡すべき任意のパラメータ。 16-19 show additional features of the system disclosed herein. FIG. 16 shows an exemplary interface for adding new commands corresponding to user input, according to an exemplary embodiment. A dashboard at interface 1600 includes an icon for application 1601 that has already been added and can be launched using predetermined user input and hardware devices (eg, voice commands). The dashboard is application-specific and can also show other commands that are mapped to one user input. Selecting the add button 1602 opens the add command menu 1603. This menu allows the user to choose between the following options: Item Type: Fixed Items to Add on Bottom Bar Menu / Regular Items to Add in Drag Menu, Icon: Select image icon, Background: Select background icon color, Color: Select icon color, Name: Set new item name, Voice command: Set voice activation command to open new application, Feedback Response: Application Voice Response Set feedback, Command: Select the application type or custom command type to launch (eg, launch an application command, perform an action within an application command, application (Close command, etc.), Start process: When starting a new process or application, the name of the process or application, and parameters: Any parameters that should be passed to the new process or application.

図17は、例示的な実施例による、描画インターフェース1700及び描画モードの様々なコンポーネント及びオプションを示す。図18は、オブジェクトを認識するために使用され、ユーザがタッチ及びジェスチャを使用して入力を与えることを可能にする、ビデオ・カメラ・ハードウェア・デバイスのための較正及び設定インターフェース1800を示す。図19は、ユーザが、インターフェースの様々な態様をカスタマイズし、入力モードをトグルし、他の変更を行うことを可能にする、一般的な設定インターフェース1900を示す。インターフェース1900に示されているように、ユーザは、(「マジック・スタイラス」と呼ばれる)ハードウェア・スタイラスのための設定を較正及び調整するための設定ページにもアクセスすることができる。 FIG. 17 shows various components and options of drawing interface 1700 and drawing modes according to exemplary embodiments. FIG. 18 shows a calibration and configuration interface 1800 for a video camera hardware device that is used to recognize an object and allows the user to give input using touch and gesture. FIG. 19 shows a general configuration interface 1900 that allows the user to customize various aspects of the interface, toggle input modes, and make other changes. As shown in Interface 1900, the user can also access the settings page for calibrating and adjusting the settings for the hardware stylus (called the "magic stylus").

本明細書で開示されるシステムは、複数のネットワーク化されたコンピューティング・デバイス上で実装され、ネットワーク化された共同セッションを行うことを助けるために使用され得る。例えば、前述したホワイトボード機能性は、複数のコンピューティング・デバイス上の複数のユーザ間の共有ホワイトボードであり得る。 The systems disclosed herein can be implemented on multiple networked computing devices and used to assist in conducting networked collaborative sessions. For example, the whiteboard functionality described above can be a shared whiteboard among multiple users on multiple computing devices.

ホワイトボード及び共同空間は、議論の主題又は特定の会議の主題である画像を頻繁に含む。共同ワークスペース内の画像を編集し、それと対話することが何度も必要になる。例えば、グラフィック設計チームは、特定の設計を編集し、同僚に見直しを示唆することを望む場合がある。既存のホワイトボード又は他の共有共同スペースの問題のうちの1つは、その場で、すなわち、リアルタイムで、且つ共同ワークスペース内の他の参加者に変更が自動的に伝えられるやり方で、共同ワークスペースにおいて画像をクリップし、編集し、又は別の方法で見直すやり方が現在ないことである。例えば、画像を変更及びクリップするプロセスは、ユーザが、画像を他のアプリケーションに取り込んで編集及び修正し、次いでその画像を共同プログラムに再インポートしなければならないため、困難である。このプロセスは、特定のユーザが画像を編集プログラムにエクスポートし、必要な編集を行い、次いで画像を再インポートするのに時間がかかるなど、編集を実施する会議において生産性の損失を生じる。さらに、多くのユーザは、これらのタイプの動作を実施することに精通又は熟練していない。その上、画像をエクスポート及び再インポートするプロセスは、画像をエクスポート及びインポートするのに必要なリソース、エクスポートされた画像を記憶するのに必要なリソース、編集ソフトウェアを起動及び使用するのに必要なリソース、並びに編集された画像を記憶するのに必要なリソースなどのコンピューティング・リソースを浪費する。これは、共同セッション自体のために使用され得るコンピューテーショナル・リソースに加えて、ローカル・コンピューティング・デバイスに負担をかけている。 Whiteboards and communal spaces often contain images that are the subject of discussion or the subject of a particular conference. You will need to edit the images in the collaborative workspace and interact with them many times. For example, a graphic design team may want to edit a particular design and suggest a review to colleagues. One of the problems with existing whiteboards or other shared communal spaces is co-working on the fly, in real time, in a way that changes are automatically communicated to other participants in the co-workspace. There is currently no way to clip, edit, or otherwise review images in the workspace. For example, the process of modifying and clipping an image is difficult because the user must incorporate the image into another application for editing and modification, and then re-import the image into a collaborative program. This process causes a loss of productivity in the meeting where the editing is performed, such as it takes time for a particular user to export the image to an editing program, make the necessary edits, and then re-import the image. Moreover, many users are unfamiliar or unskilled in performing these types of operations. What's more, the process of exporting and re-importing images is the resources needed to export and import images, the resources needed to store the exported images, and the resources needed to launch and use editing software. , As well as wasting computing resources such as the resources needed to store edited images. This puts a strain on local computing devices, in addition to the computing resources that can be used for the collaborative session itself.

ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のための前述した方法及びシステムに加えて、出願人は、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を通じてクロップ画像を伝えることを可能にする方法、装置、及びコンピュータ可読媒体をさらに発見した。 In addition to the methods and systems described above for implementing universal hardware software interfaces, applicants can be allowed to convey cropped images through websocket connections in a networked collaborative workspace, Further discoveries of equipment and computer readable media.

図20は、例示的な実施例による、ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を通じてクロップ画像を伝えるためのフローチャートである。図20に示すステップのすべてが、サーバに接続されたクライアント・デバイスなどのローカル・コンピューティング・デバイス上で実施され得、複数のコンピューティング・デバイスを必要としない。 FIG. 20 is a flow chart for transmitting a cropped image through a websocket connection in a networked collaborative workspace, according to an exemplary embodiment. All of the steps shown in FIG. 20 can be performed on a local computing device, such as a client device connected to a server, and does not require multiple computing devices.

ステップ2001において、サーバ上にホストされた共同ワークスペースの表現が、ローカル・コンピューティング・デバイスのユーザ・インターフェース上で送信される。共同ワークスペースは、ウェブ・ソケット接続を通じて、複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能である。共同ワークスペースの表現は、共同セッションで議論又は利用されている画像などの1つ又は複数の画像を含むことができる。 In step 2001, a representation of the collaborative workspace hosted on the server is transmitted over the user interface of the local computing device. The collaborative workspace is accessible to multiple participants on multiple computing devices through WebSocket connections. Representations of a collaborative workspace can include one or more images, such as images discussed or utilized in a collaborative session.

図21Aは、例示的な実施例による、共同ワークスペースをホストし、送信するために使用されるネットワーク・アーキテクチャを示す。図21Aに示すように、サーバ2100は、コンピューティング・デバイス2101A〜2101Fに接続される。サーバ2100とコンピューティング・デバイス2101A〜2101Fとは、コンピューティング・デバイス2101A〜2101F(クライアント)とサーバ2100との間の双方向通信を可能にする、ウェブ・ソケット接続などのネットワーク接続を介して接続され得る。図21Aに示すように、コンピューティング・デバイスは、ラップトップ、デスクトップ、スマートフォン、又は他のモバイル・デバイスなどの任意のタイプのコンピューティング・デバイスであり得る。 FIG. 21A shows a network architecture used to host and transmit a collaborative workspace, according to an exemplary embodiment. As shown in FIG. 21A, the server 2100 is connected to computing devices 2101A-2101F. The server 2100 and the computing devices 2101A-2101F are connected via a network connection such as a web socket connection that enables bidirectional communication between the computing devices 2101A-2101F (client) and the server 2100. Can be done. As shown in FIG. 21A, the computing device can be any type of computing device, such as a laptop, desktop, smartphone, or other mobile device.

共同ワークスペースは、例えば、ウェブ・ソケット接続を通じて複数の参加者中の任意の参加者からの他の参加者に編集を伝えるように構成されたデジタル・ホワイトボードであり得る。図21Bは、例示的な実施例による、ネットワーク内で共同ワークスペースに対する編集を伝えるためのプロセスを示す。図21Bに示すように、コンピューティング・デバイス2101Bにおけるユーザが共同ワークスペースに対する編集又は変更を行う場合、この編集又は変更2102Bは、サーバ2100に送られ、ワークスペースのホストされたバージョンを更新するために使用される。編集又は変更は、次いで、サーバ2100によって、更新2102A、2102C、2102D、2102E、及び2102Fとして、他の接続されたコンピューティング・デバイス2101A、2101C、2101D、2101E、及び2101Fに伝えられる。 A collaborative workspace can be, for example, a digital whiteboard configured to convey edits from any participant in multiple participants to other participants through a websocket connection. FIG. 21B shows a process for communicating edits to a collaborative workspace within a network, according to an exemplary embodiment. As shown in FIG. 21B, when a user in computing device 2101B makes edits or changes to a collaborative workspace, the edits or changes 2102B are sent to server 2100 to update the hosted version of the workspace. Used for. The edit or modification is then transmitted by the server 2100 to the other connected computing devices 2101A, 2101C, 2101D, 2101E, and 2101F as updates 2102A, 2102C, 2102D, 2102E, and 2102F.

共同ワークスペースの各表現は、ローカル参加者に対してカスタマイズされた共同ワークスペースのバージョンであり得る。例えば、前述したように、共同ワークスペースの各表現は、サーバに接続された1つ又は複数のリモート・コンピューティング・デバイスに対応する1つ又は複数のリモート参加者オブジェクトを含むことができる。 Each representation of a collaborative workspace can be a customized collaborative workspace version for local participants. For example, as mentioned above, each representation of a collaborative workspace can include one or more remote participant objects that correspond to one or more remote computing devices connected to a server.

図22は、例示的な実施例による、共同ワークスペースの複数の表現を示す。図22に示すように、サーバ2200は、画像2202を含む共同ワークスペース2201をホストする。サーバ上にホストされた共同ワークスペースのバージョンが、前述したように、接続されたデバイスに伝えられる。図22は、3つの接続されたユーザ、ユーザ1、ユーザ2、及びユーザ3のための共同ワークスペースの表現をも示す。図示するように、各表現は、共同ワークスペース内のすべてのオブジェクト及び編集を含む。例えば、表現2201A、2201B、及び2201Cはすべて、画像2202の表現を含む。 FIG. 22 shows a plurality of representations of a collaborative workspace according to an exemplary embodiment. As shown in FIG. 22, server 2200 hosts a collaborative workspace 2201 that includes image 2202. The version of the collaborative workspace hosted on the server is communicated to the connected device as described above. FIG. 22 also shows a representation of a collaborative workspace for three connected users, user 1, user 2, and user 3. As shown, each representation includes all objects and edits in the collaborative workspace. For example, representations 2201A, 2201B, and 2201C all include representations of image 2202.

図20に戻ると、ステップ2002において、ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールが、共同ワークスペース内に示される1つ又は複数の画像中の画像の画像部分を選択するユーザ入力を検出する。このユーザ入力は、複数の座標に対応する。 Returning to FIG. 20, in step 2002, the cropping tool running on the local computing device enters the user input to select the image portion of the image in one or more images shown in the collaborative workspace. To detect. This user input corresponds to a plurality of coordinates.

図23A〜図23Cは、例示的な実施例による、この検出プロセスの一実例を示す。図23Aに示すように、ユーザ・インターフェース2301は、画像2306を含む共同ワークスペース2302の表現を含む。ユーザ・インターフェース2301は、共同ワークスペースをホストするサーバに接続されたローカル・コンピューティング・デバイスのユーザ・インターフェースに対応し得る。 23A-23C show an example of this detection process according to an exemplary embodiment. As shown in FIG. 23A, user interface 2301 includes a representation of collaborative workspace 2302 including image 2306. The user interface 2301 may correspond to the user interface of a local computing device connected to the server hosting the collaborative workspace.

ユーザ・インターフェース2301は、クロッピング・ツール・インターフェース2303をも含む。図示するように、クロッピング・ツール・インターフェース2303は、選択可能な複数の異なるクロッピング・ツールに対応するインジケータ又はアイコンを表示することができる。選択可能なクロッピング・ツール・インターフェースは、例えば、正方形、円形、矩形引用ボックス、楕円形引用ボックス、マニュアル・フリーハンド・クロッピング・ツール(はさみのアイコンで示されている)、又はマニュアル罫線クロッピング・ツール(鉛筆及び定規のアイコンで示されている)などの特定のクロッピング形状に対応するクロッピング・ツールを含むことができる。当然、様々な異なるクロッピング形状が利用可能であり、これらの実例は限定するものではない。 User interface 2301 also includes cropping tool interface 2303. As shown, the cropping tool interface 2303 can display indicators or icons corresponding to a plurality of different cropping tools that can be selected. Selectable cropping tool interfaces are, for example, square, circular, rectangular quoting box, oval quoting box, manual freehand cropping tool (indicated by scissors icon), or manual border cropping tool. It can include cropping tools that correspond to specific cropping shapes, such as (indicated by pencil and ruler icons). Of course, a variety of different cropping shapes are available, and these examples are not limited.

クロッピング・ツール・インターフェース2303は、共同ワークスペース・インターフェース2302の表現とは別個のインターフェースとして示されているが、クロッピング・ツール・インターフェースは、共同ワークスペースの各ユーザの表現がクロッピング・ツールのインターフェースを含むように、共同ワークスペース表現に統合され得ることを理解されたい。同様に、クロッピング・ツールは、共同ワークスペースに対応するプログラム(及び、インターネット・ブラウザ、ワード・プロセッシング・プログラム、グラフィカル編集プログラムなどの追加のプログラム)とインターフェースするように構成された別個のプログラムであり得るが、クロッピング・ツールは、共同ワークスペース・プログラムのモジュール又はコンポーネントとしても実装され得る。 The cropping tool interface 2303 is shown as an interface separate from the representation of the collaborative workspace interface 2302, whereas the cropping tool interface is where each user's representation of the collaborative workspace provides the interface of the cropping tool. It should be understood that it can be integrated into a collaborative workspace representation to include. Similarly, the cropping tool is a separate program configured to interface with programs that support collaborative workspaces (and additional programs such as Internet browsers, word processing programs, and graphical editing programs). Although obtained, the cropping tool can also be implemented as a module or component of a collaborative workspace program.

図23Bは、ユーザによる、クロッピング・ツール・インターフェース2303内の特定のクロッピング形状の選択を示す。図示するように、ユーザは、円形形状2304をクロッピング形状として選択した。選択は、図でマウス・ポインタにより示されるように、マウスなどのポインティング・デバイスを使用して行うことができる。選択は、前述したように、手のジェスチャ又はスタイラスを使用して行うこともできる。仮想ドライバ及び/又は透明層を伴う前述した技法を使用して、選択を検出することができる。 FIG. 23B shows the user's selection of a particular cropping shape within the cropping tool interface 2303. As shown, the user has selected the circular shape 2304 as the cropping shape. The selection can be made using a pointing device such as a mouse, as indicated by the mouse pointer in the figure. The selection can also be made using a hand gesture or stylus, as described above. Selections can be detected using the techniques described above with virtual drivers and / or transparent layers.

図23Cは、円形クロッピング形状2304の選択後、及びユーザがクロップすべき領域を選択した後のユーザ・インターフェース2301を示す。ユーザは、例えば、クロッピング形状をインターフェース2301内の特定のロケーションにドラッグ・アンド・ドロップすることによって、クロッピングのための領域を選択し得る。クロッピング形状の選択はまた、ユーザがインターフェース2301内の特定のロケーションに移動する又はドラッグ・アンド・ドロップすることのできる、選択された形状のクロッピング・エリアの輪郭をブリング・アップすることができる。ユーザは、マウスを使用して、ドラッグ・アンド・ドロップすることができる。ユーザはまた、前述したように、手のジェスチャ又はスタイラスを使用して、ドラッグ・アンド・ドロップすることができる。仮想ドライバ及び/又は透明なものを伴う前述した技法を使用して、ドラッグ・アンド・ドロップの動きを検出することができる。 FIG. 23C shows the user interface 2301 after selecting the circular cropping shape 2304 and after the user has selected the area to be cropped. The user may select an area for cropping, for example, by dragging and dropping the cropping shape to a specific location within interface 2301. The cropping shape selection can also bring up the contours of the cropping area of the selected shape, which the user can move or drag and drop to a specific location within interface 2301. The user can use the mouse to drag and drop. The user can also use the hand gesture or stylus to drag and drop, as described above. Drag-and-drop motion can be detected using the techniques described above with virtual drivers and / or transparent ones.

図23Cに示すように、ユーザは、クロッピング・ツールの円形クロッピング形状を使用して、画像2306内の円形エリア2305を選択した。前述したように、選択は、ポインティング・デバイスからのユーザ入力を使用して行うことができる。選択が行われると、クロッピング・ツールは、入力及びクロッピング選択に対応する複数の座標を検出する。これらの座標は、ユーザ・インターフェース2301の横軸(X)及び縦軸(Y)を使用して定義され得る。さらに、複数の座標は、選択されたクロッピング・エリアに対応することになる。図23Cに示す実例において、複数の座標は円形に対応する。座標自体は、ローカル・コンピューティング・デバイスのオペレーティング・システムからクロッピング・ツールによって取得され得る。例えば、クロッピング・ツール・アプリケーション(又は、クロッピング・ツールが共同ワークスペース・アプリケーションの一部である場合、共同ワークスペース・アプリケーション)は、破線の円2305の各点に対応する座標を要求するために、APIを介してオペレーティング・システムに問い合わせることができる。代替的に、クロッピング・ツールは、選択が行われたときのポインタのロケーションに基づいて複数の座標を決定するための機能性を含むことができる。例えば、クロッピング形状が円で、円の中心が、選択が行われたときのポインティング・デバイスのロケーションに対応する場合、クロッピング・アプリケーションは、(ポインタのロケーションについてオペレーティング・システムに問い合わせることなどにより)円の中心のスクリーン座標を決定することができ、それらの中心座標を使用して、クロッピング形状に対応する複数の座標を計算することができる。この場合、計算は、円の半径を使用して、中心点から外方へ360度、等しい長さのラインを投影し、結果として生じるラインの各々の端点を複数の座標として記録することができる。 As shown in FIG. 23C, the user used the circular cropping shape of the cropping tool to select circular area 2305 in image 2306. As mentioned above, the selection can be made using user input from the pointing device. Once the selection is made, the cropping tool detects multiple coordinates corresponding to the input and cropping selection. These coordinates can be defined using the horizontal axis (X) and vertical axis (Y) of user interface 2301. In addition, the coordinates will correspond to the selected cropping area. In the example shown in FIG. 23C, the plurality of coordinates correspond to a circle. The coordinates themselves can be obtained by cropping tools from the operating system of the local computing device. For example, a cropping tool application (or, if the cropping tool is part of a collaborative workspace application, the collaborative workspace application) wants to request the coordinates corresponding to each point in the dashed circle 2305. , You can contact the operating system via API. Alternatively, the cropping tool can include functionality for determining multiple coordinates based on the location of the pointer when the selection was made. For example, if the cropping shape is a circle and the center of the circle corresponds to the location of the pointing device when the selection was made, the cropping application will use the circle (for example, by asking the operating system for the location of the pointer). The screen coordinates of the center of the can be determined, and those center coordinates can be used to calculate multiple coordinates corresponding to the cropping shape. In this case, the calculation can use the radius of the circle to project lines of equal length 360 degrees outward from the center point and record each endpoint of the resulting line as multiple coordinates. ..

図20に戻ると、ステップ2003において、ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールは、クロッピング画像部分の境界に対応する複数の座標を、前述した透明層に送信する。前述したように、透明層は、ローカル・コンピューティング・デバイス上で実行し、オペレーティング・システム又はオペレーティング・システム上で実行するように構成された1つ又は複数のアプリケーションのうちの1つ又は複数とインターフェースするように構成されたアプリケーション・プログラミング・インターフェース(API)を備える。この場合、透明層は、クロッピング・ツール・アプリケーションとインターフェースするように構成される。しかしながら、クロッピング・ツールが共同ワークスペース・アプリケーションの一部である場合、ローカル・コンピューティング・デバイス上で実行する共同ワークスペース・アプリケーションのローカル・インスタンスは、複数の座標を透明層に送信することもできる。 Returning to FIG. 20, in step 2003, the cropping tool running on the local computing device transmits a plurality of coordinates corresponding to the boundaries of the cropped image portion to the aforementioned transparent layer. As mentioned above, the transparent layer is with one or more of one or more applications that run on a local computing device and are configured to run on an operating system or operating system. It has an application programming interface (API) configured to interface. In this case, the transparent layer is configured to interface with the cropping tool application. However, if the cropping tool is part of a collaborative workspace application, a local instance of the collaborative workspace application running on a local computing device can also send multiple coordinates to the transparent layer. can.

ステップ2004において、ローカル・コンピューティング・デバイス上で実行する透明層は、受信した複数の座標の少なくとも一部に基づいて、画像部分をキャプチャする。ステップ2004は、ローカル・コンピューティング・デバイス上で実行する透明層によって、オペレーティング・システム又はローカル・コンピューティング・デバイス上で実行するアプリケーションのうちの1つ又は複数に対する、複数の座標により定義された画像部分のスクリーン・キャプチャのための要求を送信すること、ローカル・コンピューティング・デバイス上で実行する透明層によって、複数の座標により定義された画像部分のスクリーン・キャプチャを受信すること、及びローカル・コンピューティング・デバイス上で実行する透明層によって、ローカル・コンピューティング・デバイスのランダム・アクセス・メモリなどのメモリに画像部分を記憶させることを含むことができる。ステップ2004は、当然、他のやり方で実施され得る。例えば、ステップ2004は、ローカル・コンピューティング・デバイス上で実行する透明層によって、オペレーティング・システム又はローカル・コンピューティング・デバイス上で実行するアプリケーションのうちの1つ又は複数に対する、(「スクリーン印刷」コマンドをオペレーティング・システムに送ることなどによる)スクリーン全体のスクリーン・キャプチャのための要求を送信すること、透明層の一部である機能を使用して、複数の座標の少なくとも一部に基づいて、スクリーン・キャプチャから画像部分を抽出すること、及び、次いでローカル・コンピューティング・デバイスのランダム・アクセス・メモリなどのメモリに画像部分を記憶させることによって実施され得る。 In step 2004, the transparent layer running on the local computing device captures an image portion based on at least a portion of the received coordinates. Step 2004 is an image defined by multiple coordinates for one or more of the operating system or applications running on the local computing device by a transparent layer running on the local computing device. Sending a request for a screen capture of a part, receiving a screen capture of an image part defined by multiple coordinates by a transparent layer running on a local computing device, and local computing. A transparent layer running on the wing device can include storing the image portion in memory such as the random access memory of the local computing device. Step 2004 can, of course, be performed in other ways. For example, step 2004 is a (“screen print” command) for one or more of the operating systems or applications running on the local computing device by a transparent layer running on the local computing device. Sending a request for a screen capture of the entire screen (by sending to the operating system, etc.), using features that are part of the transparency layer, based on at least some of the multiple coordinates of the screen It can be performed by extracting the image portion from the capture and then storing the image portion in a memory such as a random access memory of the local computing device.

図24は、図20のステップ2003及び2004のプロセス・フローの一実例を示す。図示するように、ユーザは、ユーザ・インターフェース2400内の共同ワークスペース2401内に表示されている、画像2406内の境界2402によって定義された画像部分をキャプチャした。簡略化するために、クロッピング・ツール・インターフェースはこの図には示されていないが、クロッピング・ツール・インターフェースもユーザ・インターフェース2400に表示されることを理解されたい。クロッピング・ツール・アプリケーション2403は、クロッピング境界(円2402に対応する)の座標を検出し、それらの座標を透明層2404に送る。次いで、透明層2404は、複数の座標を使用して、クロップされた画像部分をキャプチャし、結果として生じる画像部分をストレージ2405(例えば、ランダム・アクセス・メモリであり得る)に記憶させる。 FIG. 24 shows an example of the process flow of steps 2003 and 2004 of FIG. As shown, the user has captured the image portion defined by the boundary 2402 in the image 2406, which is displayed in the collaborative workspace 2401 in the user interface 2400. For simplicity, the cropping tool interface is not shown in this figure, but it should be understood that the cropping tool interface is also displayed in user interface 2400. The cropping tool application 2403 detects the coordinates of the cropping boundary (corresponding to the circle 2402) and sends those coordinates to the transparent layer 2404. The transparent layer 2404 then uses the plurality of coordinates to capture the cropped image portion and stores the resulting image portion in storage 2405 (eg, which may be random access memory).

図20に戻ると、ステップ2005において、ローカル・コンピューティング・デバイス上で実行する透明層は、選択された画像部分を共同ワークスペース内のロケーションにドラッグするための第2のユーザ入力を検出する。この第2のユーザ入力は、ドラッグ・アンド・ドロップの動きであり得、ポインティング・デバイスを使用する入力、或いは前述した手のジェスチャ又はスタイラスを使用する入力であり得る。仮想ドライバ及び/又は透明なものを伴う前述した技法を使用して、ドラッグ・アンド・ドロップの動きを検出することもできる。 Returning to FIG. 20, in step 2005, the transparent layer running on the local computing device detects a second user input for dragging the selected image portion to a location in the collaborative workspace. This second user input can be a drag-and-drop movement, an input using a pointing device, or an input using the hand gesture or stylus described above. Drag-and-drop motion can also be detected using the techniques described above with virtual drivers and / or transparent ones.

以下で説明するように、共同ワークスペース内のロケーションは、「ホワイトボード」又は他の共有ディスプレイ及び編集エリア内の空間を含むことができ、共同ワークスペースの一部である任意のインターフェース又はツールバーをも含むことができる。 Locations within the collaborative workspace can include spaces within the "whiteboard" or other shared displays and editing areas, as described below, with any interface or toolbar that is part of the collaborative workspace. Can also be included.

ステップ2005は、ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールによって、選択された画像部分を共同ワークスペース内の新しい位置にドラッグするための第2のユーザ入力を検出することを含むことができる。新しい位置は、例えば、第2のユーザ入力が検出されたときにオペレーティング・システムに問い合わせることによって決定され得る。ステップ2005はまた、ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールによって、ローカル・コンピューティング・デバイス上で実行する透明層に新しい位置を送信する(それにより、透明層を第2の入力及び第2の入力のロケーションに変更する)ことを含むことができる。 Step 2005 may include detecting a second user input for dragging the selected image portion to a new location in the collaborative workspace by a cropping tool running on the local computing device. can. The new location can be determined, for example, by querying the operating system when a second user input is detected. Step 2005 also sends a new location to the transparent layer running on the local computing device by a cropping tool running on the local computing device (thus making the transparent layer a second input and). It can include changing to the location of the second input).

代替的に、検出は、座標が透明層に送信されたときにクロッピング・ツールから送信された変数又は値に基づいて、透明層により直接実施され得る。例えば、クロッピング・ツールが座標を透明層に送信すると、透明層は、次の入力と次の入力のロケーションとの両方(この場合、画像部分をドラッグした後にユーザにより実施される「ドロップ」入力)を検出するように透明層に命令するフラグを設定することができる。透明層は、例えば、第2の入力が検出されたときにオペレーティング・システムに問い合わせることによって、ロケーションを決定することができる。 Alternatively, detection can be performed directly by the transparent layer based on the variables or values sent by the cropping tool when the coordinates are sent to the transparent layer. For example, if the cropping tool sends the coordinates to the transparent layer, the transparent layer will have both the location of the next input and the location of the next input (in this case, the "drop" input made by the user after dragging the image portion). You can set a flag that tells the transparent layer to detect. The transparent layer can determine its location, for example, by querying the operating system when a second input is detected.

図25は、ユーザが画像部分を共同ワークスペース内のロケーションにドラッグすることの一実例を示す。インターフェース2501に示すように、ユーザは、クロッピング・ツール・インターフェース2503の円形クロッピング・ツールを使用して、画像2302の画像部分2305を共同ワークスペース2502内の新しいロケーションにドラッグした。インターフェース2501は、ユーザが画像部分をドラッグした後であるが、ユーザが画像部分の最終位置を選択する(すなわち、「ドラッグ・アンド・ドロップ」の「ドロップ」部分を完了することによる)前のインターフェース2501を示す。したがって、図25は、第2の入力の受信前であるが第1の入力後のインターフェース2501を示す。ユーザがドロップ入力を完了することによって画像部分をリリースすれば、画像部分2305に対応する現在のロケーションが、透明層により(直接又はクロッピング・ツールを介して)検出されることになる。このロケーションは、画像がリリースされた(すなわち、ドロップされた)瞬間のポインタのロケーションに対応する点によって表され得る。 FIG. 25 shows an example of a user dragging an image portion to a location within a collaborative workspace. As shown in interface 2501, the user has used the circular cropping tool of the cropping tool interface 2503 to drag image portion 2305 of image 2302 to a new location within the co-workspace 2502. Interface 2501 is an interface after the user drags the image portion, but before the user selects the final position of the image portion (ie, by completing the "drop" portion of the "drag and drop"). 2501 is shown. Therefore, FIG. 25 shows the interface 2501 before the reception of the second input but after the first input. If the user releases the image portion by completing the drop input, the current location corresponding to the image portion 2305 will be detected by the transparent layer (either directly or via a cropping tool). This location can be represented by a point that corresponds to the location of the pointer at the moment the image was released (ie, dropped).

図20に戻ると、ステップ2006において、ローカル・コンピューティング・デバイス上で実行する透明層は、サーバ上にホストされた共同ワークスペースに複数のコマンドを送信する。複数のコマンドは、画像(すなわち、オリジナル画像の残りの部分)を共同ワークスペースから除去させ、さらに、ステップ2005において検出された第2の入力のロケーションに少なくとも部分的に基づいて、画像部分を共同ワークスペースに挿入させるように構成される。共同ワークスペースはウェブ・ソケット接続を通じてローカル・コンピューティング・デバイスと通信するため、透明層は、ウェブ・ソケット接続を通じて複数のコマンドを送信することができる。 Returning to FIG. 20, in step 2006, the transparent layer running on the local computing device sends multiple commands to the collaborative workspace hosted on the server. Multiple commands remove the image (ie, the rest of the original image) from the collaborative workspace and further collaborate on the image portion based at least in part based on the location of the second input detected in step 2005. It is configured to be inserted into the workspace. Since the collaborative workspace communicates with local computing devices through websocket connections, the transparent layer can send multiple commands through websocket connections.

図26は、例示的な実施例による、サーバ上にホストされた共同ワークスペースに複数のコマンドを送信するためのフローチャートである。図26に示すステップは、第2の入力を検出した後に、透明層によって実施される。 FIG. 26 is a flowchart for sending a plurality of commands to a collaborative workspace hosted on a server according to an exemplary embodiment. The step shown in FIG. 26 is performed by the transparent layer after detecting the second input.

ステップ2601において、第1のコマンドが、透明層から共同ワークスペースをホストするサーバに送信され、第1のコマンドは、画像を共同ワークスペースから除去させるように構成される。画像を除去させるために使用される特定の命令は、共同ワークスペースの構成及びパラメータに依存し得る。第1のコマンドは、例えば、画像に対応する共同ワークスペース内のオブジェクトを参照し、そのオブジェクトを削除するように共同ワークスペースに命令することができる。共同ワークスペースが画像をオブジェクトとして記憶していない場合には、透明層は、スクリーン・キャプチャから(第1の入力に基づいて)画像の境界検出を実施して、画像の境界を定義する座標を決定し、コマンドを共同ワークスペースに送信して、(座標により特定されたように)境界により定義されたエリアをホワイトスペースに置き換えることができる。多くの変形形態が可能であり、これらの実例は限定するものではない。 In step 2601, a first command is sent from the transparent layer to the server hosting the co-workspace, and the first command is configured to remove the image from the co-workspace. The specific instructions used to remove the image may depend on the configuration and parameters of the collaborative workspace. The first command can, for example, refer to an object in the collaborative workspace that corresponds to the image and instruct the collaborative workspace to delete that object. If the collaborative workspace does not remember the image as an object, the transparent layer performs image boundary detection (based on the first input) from the screen capture to determine the coordinates that define the image boundaries. You can decide and send commands to the collaborative workspace to replace the area defined by the boundary (as identified by the coordinates) with whitespace. Many variants are possible and these examples are not limited.

ステップ2602において、透明層は、第2の入力のロケーションに関連付けられたコンテキストを決定する。前述したように、共同ワークスペースは、様々なツールバー及び/又はインターフェース・セクションを含むことができる。したがって、コンテキストは、例えば、すべてのユーザに対して表示される情報を入力するために使用される、ワークスペースの編集インターフェース、又はすべてのユーザにとってアクセス可能な(且つ、場合により、各ユーザに対してローカルにカスタマイズされた)ツールバー・インターフェースであり得る。 In step 2602, the transparent layer determines the context associated with the location of the second input. As mentioned above, the collaborative workspace can include various toolbars and / or interface sections. Thus, the context is, for example, the editing interface of the workspace used to enter information that is displayed to all users, or accessible to all users (and optionally to each user). Can be a locally customized toolbar interface.

ステップ2603において、第2のコマンドは、透明層から共同ワークスペースをホストするサーバに送信され、第2のコマンドは、第2の入力のロケーションに関連付けられたコンテキストに基づく。第2のコマンドは、ロケーションが共同ワークスペースの編集エリア内にあるかどうか、又はロケーションが共同ワークスペースのツールバーに関連付けられたロケーションであるかどうかなどのコンテキストに依存し得る。 In step 2603, the second command is sent from the transparent layer to the server hosting the collaborative workspace, and the second command is based on the context associated with the location of the second input. The second command may depend on the context, such as whether the location is within the editing area of the collaborative workspace, or whether the location is the location associated with the collaborative workspace toolbar.

図27A、図27Bは、例示的な実施例による、2つの異なるコンテキストについての、サーバ上にホストされた共同ワークスペースに複数のコマンドを送信するためのフローチャートである。 27A, 27B are flowcharts for sending multiple commands to a collaborative workspace hosted on a server for two different contexts, according to an exemplary embodiment.

図27Aのフローチャートは、第2の入力のロケーションが編集インターフェースに関連付けられたロケーション(図25に示すホワイトボード・インターフェース2502など)に対応するときの、編集インターフェースのコンテキストに対応する。ステップ2701において、第1のコマンドは、透明層から共同ワークスペースをホストするサーバに送信され、第1のコマンドは、画像を共同ワークスペースから除去させるように構成される。ステップ2702において、第2のコマンドは、透明層から共同ワークスペースをホストするサーバに送信され、第2のコマンドは、ロケーションにおいて共同ワークスペースに画像部分を挿入させるように構成される。画像部分がランダム・アクセス・メモリなどのメモリに記憶されているとき、透明層は、画像部分をメモリから取得し、画像部分を、ロケーションにおける挿入のためにサーバに送信することができる。代替的に、透明層は、画像部分のメモリ・ロケーションを第2のコマンドの一部としてサーバに送信することができ、サーバは、メモリ・ロケーションを使用して、ローカル・コンピューティング・デバイスから画像部分を取得することができる。 The flowchart of FIG. 27A corresponds to the context of the editing interface when the location of the second input corresponds to the location associated with the editing interface (such as the whiteboard interface 2502 shown in FIG. 25). In step 2701, the first command is sent from the transparent layer to the server hosting the co-workspace, and the first command is configured to remove the image from the co-workspace. In step 2702, a second command is sent from the transparent layer to the server hosting the co-workspace, and the second command is configured to insert an image portion into the co-workspace at the location. When the image portion is stored in memory such as random access memory, the transparent layer can retrieve the image portion from memory and send the image portion to the server for insertion at the location. Alternatively, the transparent layer can send the memory location of the image portion to the server as part of a second command, which uses the memory location to send the image from the local computing device. You can get the part.

図27Bのフローチャートは、第2の入力のロケーションが編集インターフェースに関連付けられたロケーションに対応するときの、ツールバー・インターフェースのコンテキストに対応する。ステップ2703において、第1のコマンドが、透明層から共同ワークスペースをホストするサーバに送信され、第1のコマンドは、画像を共同ワークスペースから除去させるように構成される。ステップ2704において、第2のコマンドは、透明層から共同ワークスペースをホストするサーバに送信され、第2のコマンドは、ツールバー・インターフェースに関連付けられたツールバーに画像部分を記憶させるように構成される。ツールバーが共同ワークスペースに接続された各ユーザに対してカスタマイズされているとき、ローカル・コンピューティング・デバイス上のツールバーのローカル・バージョンが画像部分を記憶することができる。この場合、サーバは、画像部分をローカル・メモリにローカルに記憶させるように、ローカル・コンピューティング・デバイスに命令することができる。代替的に、ツールバーが各ユーザに対してカスタマイズされておらず、共同ワークスペース内のすべてのユーザにわたって均一である場合、サーバは画像部分をサーバのメモリに記憶させることができ、共同ワークスペース内のすべてのユーザが、ツールバー・インターフェースを使用して、ウェブ・ソケット接続を介して画像部分にアクセス可能である。 The flowchart in FIG. 27B corresponds to the context of the toolbar interface when the location of the second input corresponds to the location associated with the editing interface. In step 2703, a first command is sent from the transparent layer to the server hosting the co-workspace, and the first command is configured to remove the image from the co-workspace. In step 2704, a second command is sent from the transparent layer to the server hosting the collaborative workspace, and the second command is configured to store the image portion in the toolbar associated with the toolbar interface. When the toolbar is customized for each user connected to the collaborative workspace, the local version of the toolbar on the local computing device can remember the image portion. In this case, the server can instruct the local computing device to store the image portion locally in local memory. Alternatively, if the toolbar is not customized for each user and is uniform across all users in the collaborative workspace, the server can store the image portion in the server's memory and within the collaborative workspace. All users of the image can access the image portion via a web socket connection using the toolbar interface.

図28A〜図28Cは、例示的な実施例による、ユーザが画像部分を共同ワークスペースの編集インターフェースにドラッグすること及び画像部分を編集インターフェースにドラッグした結果の一実例を示す。 28A-28C show an example of the result of a user dragging an image portion to the editing interface of a collaborative workspace and dragging the image portion to the editing interface, according to an exemplary embodiment.

図28Aに示すように、ユーザは、共同ワークスペースの編集インターフェース2801内の画像2802の円形クロッピング2803を選択した。クロッピング・ツールはこの図には示されていないが、ユーザ・インターフェースはクロッピング・ツールを含むであろうことを理解されたい。さらに、この実例において、共同ワークスペースは編集インターフェース2801のみを含むものとして示されているが、前述したように、共同ワークスペースは追加のインターフェース及びツールバーを含むことができる。 As shown in FIG. 28A, the user has selected circular cropping 2803 for image 2802 in the editing interface 2801 of the collaborative workspace. Cropping tools are not shown in this figure, but it should be understood that the user interface will include cropping tools. Further, in this example, the collaborative workspace is shown to include only the editing interface 2801, but as mentioned above, the collaborative workspace can include additional interfaces and toolbars.

図28Bは、ユーザが画像部分2803を共同ワークスペースの編集インターフェース2801内のロケーションにドラッグした後であるが、ユーザがリリースする(画像部分をドロップする)前の編集インターフェース2801を示す。残りの画像2802とごみ箱のアイコン2804との間の破線の矢印は、ユーザがドラッグ・アンド・ドロップを完了したとき(すなわち、第2の入力が検出されたとき)、前述したように、残りの画像2802が共同ワークスペースから削除されることになることを示す。ごみ箱のアイコン2804は、ユーザ・インターフェース又は共同ワークスペースの一部ではなく、ユーザによる画像部分2803のドラッグ・アンド・ドロップの結果を示すために図に提示されている。 FIG. 28B shows an editing interface 2801 after the user drags the image portion 2803 to a location within the editing interface 2801 of the collaborative workspace, but before the user releases (drops the image portion). The dashed arrow between the remaining image 2802 and the trash can icon 2804 indicates that when the user completes the drag and drop (ie, when a second input is detected), the rest, as described above. Image 2802 shows that it will be removed from the collaborative workspace. The trash can icon 2804 is presented in the figure to show the result of drag and drop of image portion 2803 by the user rather than as part of the user interface or collaborative workspace.

図28Cは、ユーザがドラッグ・アンド・ドロップの動きを完了した後(すなわち、第2の入力が検出された後)の共同ワークスペースの編集インターフェース2801を示す。図示するように、画像部分2803は、ドロップ・ロケーションにおいて共同ワークスペースの編集インターフェース2801に挿入され、オリジナル画像の残り(図28Bの2802)は、共同ワークスペースの編集インターフェース2801から除去されている。 FIG. 28C shows the collaborative workspace editing interface 2801 after the user has completed the drag-and-drop movement (ie, after the second input has been detected). As shown, the image portion 2803 has been inserted into the collaborative workspace editing interface 2801 at the drop location, and the rest of the original image (2802 in FIG. 28B) has been removed from the collaborative workspace editing interface 2801.

図28Cに示す共同ワークスペースの編集インターフェースに対する変更が、共同ワークスペースに接続されたすべてのユーザのための共同ワークスペースのすべてのインスタンスにわたって伝えられることに留意することが重要である。言い換えると、共同ワークスペースに対する変更は、ローカル・デバイス又は共同ワークスペース・アプリケーションのローカル・インスタンスで生じるだけでなく、遠隔ユーザにより使用されている遠隔デバイス上の共同ワークスペースのインスタンスでも生じる。前述したように、これは、透明層が、オリジナル画像を除去して画像部分をロケーションにおいて挿入するためのコマンドを、ウェブ・ソケット接続を通じて、共同ワークスペースをホストするサーバに送り、次いで、サーバが、これらの変更を、ウェブ・ソケット接続を通じて、すべての接続されたデバイスに伝えるからである。 It is important to note that changes to the collaborative workspace editing interface shown in Figure 28C are propagated across all instances of the collaborative workspace for all users connected to the collaborative workspace. In other words, changes to the collaborative workspace occur not only on the local device or the local instance of the collaborative workspace application, but also on the instance of the collaborative workspace on the remote device being used by the remote user. As mentioned earlier, this is because the transparent layer sends a command to remove the original image and insert the image part at the location through a websocket connection to the server hosting the collaborative workspace, and then the server , Because these changes are communicated to all connected devices through websocket connections.

図29A〜図29Eは、例示的な実施例による、ユーザが画像部分を共同ワークスペースのツールバー・インターフェースにドラッグすること及び画像部分をツールバー・インターフェースにドラッグした結果の一実例を示す図である。 29A-29E are diagrams showing an example of the result of a user dragging an image portion onto the toolbar interface of a collaborative workspace and dragging the image portion onto the toolbar interface, according to an exemplary embodiment.

図29Aに示すように、ユーザは、共同ワークスペースの編集インターフェース2901内の画像2902の円形クロッピング2903を選択した。クロッピング・ツールはこの図には示されていないが、ユーザ・インターフェースはクロッピング・ツールを含むであろうことを理解されたい。編集インターフェース2901に加えて、共同ワークスペースはツールバー・インターフェース2904を含む。ツールバー・インターフェース2904は、編集インターフェース2904内のコンテンツを編集又はマーク・アップするためにユーザがアクセス可能な様々なツールを含むことができる。以下で説明するように、ツールバー・インターフェースは、再使用のために画像を記憶する機能性をも含むことができる。 As shown in FIG. 29A, the user has selected circular cropping 2903 of image 2902 in the editing interface 2901 of the collaborative workspace. Cropping tools are not shown in this figure, but it should be understood that the user interface will include cropping tools. In addition to the editing interface 2901, the collaborative workspace includes a toolbar interface 2904. Toolbar interface 2904 can include various tools accessible to the user to edit or mark up the content within editing interface 2904. As described below, the toolbar interface can also include the functionality of storing images for reuse.

図29Bは、ユーザが画像部分2903を共同ワークスペースのツールバー・インターフェース2904に関連付けられたロケーションにドラッグした後であるが、ユーザがリリースする(画像部分をドロップする)前の共同ワークスペースを示す。残りの画像2902とごみ箱のアイコン2906との間の破線の矢印は、ユーザがドラッグ・アンド・ドロップを完了したとき(すなわち、第2の入力が検出されたとき)、前述したように、残りの画像2902が共同ワークスペースから削除されることになることを示す。ごみ箱のアイコン2904は、ユーザ・インターフェース又は共同ワークスペースの一部ではなく、ユーザによる画像部分2903のドラッグ・アンド・ドロップの結果を示すために図に提示されている。 FIG. 29B shows a collaborative workspace after the user drags the image portion 2903 to the location associated with the toolbar interface 2904 of the collaborative workspace, but before the user releases (drops the image portion). The dashed arrow between the remaining image 2902 and the trash can icon 2906 indicates that when the user completes the drag and drop (ie, when a second input is detected), the rest, as described above. Image 2902 shows that it will be removed from the collaborative workspace. The trash can icon 2904 is presented in the figure to show the result of drag and drop of image portion 2903 by the user rather than as part of the user interface or collaborative workspace.

図29Bは、ユーザがツールバー・インターフェース2904を通じて画像部分2903をドラッグしたときに、ツールバー・インターフェース2904内に出現し得る新しいアイコン2905をさらに示す。アイコン2905(「S」として示される)は、画像部分をツールバー・インターフェース上にドロップすることにより、ユーザによるその後の再使用のために画像がツールバーに保存されることを、ユーザに示すことができる。 FIG. 29B further shows a new icon 2905 that may appear within the toolbar interface 2904 when the user drags the image portion 2903 through the toolbar interface 2904. Icon 2905 (indicated as "S") can indicate to the user that the image portion is dropped onto the toolbar interface and the image is saved on the toolbar for subsequent reuse by the user. ..

図29Cは、ユーザがドラッグ・アンド・ドロップの動きを完了した後(すなわち、第2の入力が検出された後)の共同ワークスペースを示す。図示するように、画像部分(図29Bの2903)も残りの画像(図29Bの2902)も共同ワークスペースに出現していない。これは、透明層が、オリジナル画像を共同ワークスペースから除去するようにサーバ上の共同アプリケーションに命令する第1のコマンドを、共同ワークスペースをホストするサーバに送り、ツールバー・インターフェース2904に関連付けられたツールバー内に画像部分を記憶させるように共同アプリケーションに命令する第2のコマンドを、共同ワークスペースをホストするサーバに送ったことの結果である。ツールバー・インターフェース2904は、記憶された画像がツールバーに保存され、ツールバー・インターフェース2904を通してアクセス可能であることをユーザにアラートするアイコン2905の存在によって、これを示す。 FIG. 29C shows a collaborative workspace after the user has completed the drag-and-drop movement (ie, after the second input has been detected). As shown, neither the image portion (2903 in FIG. 29B) nor the remaining image (2902 in FIG. 29B) appears in the communal workspace. This was associated with toolbar interface 2904, where the transparent layer sent a first command to the co-application on the server to remove the original image from the co-workspace to the server hosting the co-workspace. This is the result of sending a second command to the collaborative application hosting the collaborative workspace to instruct the collaborative application to store the image portion in the toolbar. Toolbar interface 2904 indicates this by the presence of icon 2905, which alerts the user that the stored image is stored on the toolbar and is accessible through toolbar interface 2904.

図29Cに示す共同ワークスペースに対する変更が、共同ワークスペースに接続されたすべてのユーザのための共同ワークスペースのすべてのインスタンスにわたって伝えられ得る。言い換えると、共同ワークスペースに対する変更は、すべてのユーザのための共同ワークスペースのすべてのインスタンスで生じ得る。前述したように、これは、透明層が、オリジナル画像を除去して画像部分をロケーションにおいて挿入するためのコマンドを、ウェブ・ソケット接続を通じて、共同ワークスペースをホストするサーバに送り、次いで、サーバが、これらの変更を、ウェブ・ソケット接続を通じて、すべての接続されたデバイスに伝えるからである。この場合、記憶された画像は、次いでサーバに記憶又はホストされ、共同ワークスペースに接続されたすべてのユーザにより、ツールバー・インターフェース(ウェブ・ソケット接続を通じて画像部分を取得することができる)のそれぞれのインスタンスを通してアクセスされ得る。代替的に、サーバは、画像部分をローカル・メモリにローカルに記憶させるようにローカル・コンピューティング・デバイスに命令して、ローカル・コンピューティング・デバイスのみが画像部分にアクセス可能であるようにすることができる。 Changes to the collaborative workspace shown in FIG. 29C can be communicated across all instances of the collaborative workspace for all users connected to the collaborative workspace. In other words, changes to the collaborative workspace can occur on all instances of the collaborative workspace for all users. As mentioned earlier, this is because the transparent layer sends a command to remove the original image and insert the image part at the location through a websocket connection to the server hosting the collaborative workspace, and then the server , Because these changes are communicated to all connected devices through websocket connections. In this case, the stored image is then stored or hosted on a server, and by all users connected to the collaborative workspace, each of the toolbar interfaces (image parts can be retrieved through a web socket connection). Can be accessed through the instance. Alternatively, the server instructs the local computing device to store the image portion locally in local memory so that only the local computing device can access the image portion. Can be done.

図29Dは、前に記憶した画像部分を取得するためのツールバー・インターフェース2904の使用を示す。図29Dに示すように、ユーザがツールバー・インターフェース内のアイコン2905を選択したことにより、記憶画像インターフェース2907がユーザに提示されている。記憶画像インターフェース2907は、前に保存したすべての画像又は画像部分の表現を表示することができる。例えば、表現2908は図29Bの画像部分2903に対応する。 FIG. 29D shows the use of the toolbar interface 2904 to obtain a previously stored image portion. As shown in FIG. 29D, the stored image interface 2907 is presented to the user by the user selecting the icon 2905 in the toolbar interface. The storage image interface 2907 can display a representation of all previously stored images or image portions. For example, representation 2908 corresponds to image portion 2903 of FIG. 29B.

図29Eは、前に保存した画像を挿入するためのツールバー・インターフェースの使用を示す。図29Eに示すように、ユーザが表現2908を記憶画像インターフェースから編集インターフェース2901上にドラッグしたことにより、画像部分2903が共同ワークスペースの編集インターフェース2901に再挿入されている。 FIG. 29E shows the use of a toolbar interface for inserting previously saved images. As shown in FIG. 29E, the image portion 2903 is reinserted into the editing interface 2901 of the collaborative workspace by the user dragging the representation 2908 from the storage image interface onto the editing interface 2901.

前述した技法のうちの1つ又は複数が、1つ又は複数のコンピュータ・システムにおいて実装されるか、又は1つ又は複数のコンピュータ・システムを伴い得る。図30は、専用コンピューティング環境3000の一実例を示す。コンピューティング環境3000は、説明される(1つ又は複数の)実施例の使用又は機能性の範囲に関するいかなる限定をも示唆するものではない。 One or more of the techniques described above may be implemented in one or more computer systems or may involve one or more computer systems. FIG. 30 shows an example of the dedicated computing environment 3000. Computing Environment 3000 does not imply any limitation on the use or scope of functionality of the described (s) examples.

図30を参照すると、コンピューティング環境3000は、少なくとも1つの処理ユニット3010と、メモリ3020とを含む。処理ユニット3010は、コンピュータ実行可能命令を実行し、現実プロセッサ又は仮想プロセッサであり得る。多重処理システムでは、処理能力を増加させるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ3020は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリなど)、又はその2つの何らかの組合せであり得る。メモリ3020は、説明される技法を実装するソフトウェア3080を記憶することができる。 Referring to FIG. 30, the computing environment 3000 includes at least one processing unit 3010 and memory 3020. The processing unit 3010 executes computer-executable instructions and can be a real processor or a virtual processor. In a multiplex processing system, a plurality of processing units execute computer-executable instructions in order to increase the processing capacity. The memory 3020 can be a volatile memory (eg, register, cache, RAM), a non-volatile memory (eg, ROM, EEPROM, flash memory, etc.), or any combination thereof. Memory 3020 can store software 3080 that implements the techniques described.

コンピューティング環境は、追加の特徴を有することができる。例えば、コンピューティング環境3000は、ストレージ3040と、1つ又は複数の入力デバイス3050と、1つ又は複数の出力デバイス3060と、1つ又は複数の通信接続3090とを含む。バス、コントローラ、又はネットワークなどの相互接続機構3070が、コンピューティング環境3200のコンポーネントを相互接続する。一般に、オペレーティング・システム・ソフトウェア又はファームウェア(図示せず)が、コンピューティング環境3000において実行する他のソフトウェアのための動作環境を提供し、コンピューティング環境3000のコンポーネントのアクティビティを協調させる。 The computing environment can have additional features. For example, the computing environment 3000 includes storage 3040, one or more input devices 3050, one or more output devices 3060, and one or more communication connections 3090. An interconnect mechanism 3070, such as a bus, controller, or network, interconnects the components of the computing environment 3200. In general, operating system software or firmware (not shown) provides an operating environment for other software running in computing environment 3000, coordinating the activities of the components of computing environment 3000.

ストレージ3040は、リムーバブル又は非リムーバブルであり得、磁気ディスク、磁気テープ又はカセット、CD−ROM、CD−RW、DVD、或いは情報を記憶するために使用され得、コンピューティング環境3000内でアクセスされ得る任意の他の媒体を含む。ストレージ3040は、ソフトウェア3080のための命令を記憶することができる。 Storage 3040 can be removable or non-removable and can be used to store magnetic disks, magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, or information and can be accessed within the computing environment 3000. Includes any other medium. Storage 3040 can store instructions for software 3080.

(1つ又は複数の)入力デバイス3050は、キーボード、マウス、ペン、トラックボール、タッチ・スクリーン、又はゲーム・コントローラなどのタッチ入力デバイス、音声入力デバイス、走査デバイス、デジタル・カメラ、遠隔制御装置、或いはコンピューティング環境3000への入力を与える別のデバイスであり得る。(1つ又は複数の)出力デバイス3060は、ディスプレイ、テレビジョン、モニタ、プリンタ、スピーカー、又はコンピューティング環境3000からの出力を与える別のデバイスであり得る。 The (one or more) input device 3050 is a touch input device such as a keyboard, mouse, pen, trackball, touch screen, or game controller, voice input device, scanning device, digital camera, remote control device, etc. Alternatively, it may be another device that provides input to the computing environment 3000. The output device (s) 3060 can be a display, television, monitor, printer, speaker, or another device that provides output from the computing environment 3000.

(1つ又は複数の)通信接続3090は、通信媒体を通じた別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号中で、コンピュータ実行可能命令、オーディオ又はビデオ情報、或いは他のデータなどの情報を伝達する。変調されたデータ信号は、信号の特性のうちの1つ又は複数が、信号中の情報を符号化するような様式で設定又は変更された信号である。限定ではなく実例として、通信媒体は、電気、光、RF、赤外線、音響、又は他のキャリアを用いて実装される有線又は無線技法を含む。 The communication connection (s) 3090 allows communication to another computing entity through the communication medium. The communication medium transmits information such as computer executable instructions, audio or video information, or other data in the modulated data signal. A modulated data signal is a signal in which one or more of the characteristics of the signal are set or modified in such a way that the information in the signal is encoded. By way of example, but not by limitation, communication media include wired or wireless techniques implemented using electrical, optical, RF, infrared, acoustic, or other carriers.

実装形態が、コンピュータ可読媒体のコンテキストにおいて説明され得る。コンピュータ可読媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な媒体である。限定ではなく実例として、コンピューティング環境3000内で、コンピュータ可読媒体は、メモリ3020、ストレージ3040、通信媒体、及び上記のいずれかの組合せを含む。 Implementations can be described in the context of computer readable media. A computer-readable medium is any available medium that can be accessed within a computing environment. As an example, but not limited to, within a computing environment 3000, a computer-readable medium includes memory 3020, storage 3040, a communication medium, and any combination of the above.

当然、図30は、単に識別しやすいように、別個のデバイスとして、コンピューティング環境3000、ディスプレイ・デバイス3060、及び入力デバイス3050を示す。コンピューティング環境3000、ディスプレイ・デバイス3060、及び入力デバイス3050は、別個のデバイス(例えば、ワイヤによってモニタ及びマウスに接続されたパーソナル・コンピュータ)であり得、単一のデバイス(例えば、スマートフォン又はタブレットなどのタッチ・ディスプレイをもつモバイル・デバイス)、或いはデバイスの任意の組合せ(例えば、タッチスクリーン・ディスプレイ・デバイスに動作可能に結合されたコンピューティング・デバイス、単一のディスプレイ・デバイス及び入力デバイスに取り付けられた複数のコンピューティング・デバイスなど)に統合され得る。コンピューティング環境3000は、セットトップ・ボックス、パーソナル・コンピュータ、或いは1つ又は複数のサーバ、例えば、ネットワーク化されたサーバのファーム、クラスタリングされたサーバ環境、又はコンピューティング・デバイスのクラウド・ネットワークであり得る。 Of course, FIG. 30 shows the computing environment 3000, the display device 3060, and the input device 3050 as separate devices for easy identification. The computing environment 3000, display device 3060, and input device 3050 can be separate devices (eg, personal computers connected to monitors and mice by wires) and single devices (eg, smartphones or tablets, etc.). Attached to any combination of devices (eg, a mobile device with a touch display), or a computing device operably coupled to a touchscreen display device, a single display device and an input device. Can be integrated into multiple computing devices, etc.). A computing environment 3000 is a set-top box, personal computer, or one or more servers, such as a farm of networked servers, a clustered server environment, or a cloud network of computing devices. obtain.

説明される実施例に関して本発明の原理を説明及び図示したが、説明される実施例は、そのような原理から逸脱することなく構成及び詳細において修正され得ることを認識されよう。ソフトウェアにおいて示されている説明される実施例の要素は、ハードウェアにおいて実装され得、その逆も同様である。 Although the principles of the invention have been described and illustrated with respect to the embodiments described, it will be appreciated that the embodiments described may be modified in configuration and detail without departing from such principles. The elements of the illustrated examples shown in software can be implemented in hardware and vice versa.

本発明の原理が適用され得る多くの可能な実施例に鑑みて、本発明として、以下の特許請求の範囲及びその等価物の範囲及び趣旨内に入り得るようなすべての実施例を主張する。 In view of the many possible embodiments to which the principles of the invention may apply, the invention claims all embodiments that may fall within the scope and intent of the following claims and their equivalents.

Claims (21)

ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を通じてクロップ画像を伝えるための方法であって、
ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を通じて複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信するステップであって、前記共同ワークスペースが1つ又は複数の画像を含む、ステップと、
前記ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールによって、前記1つ又は複数の画像中の画像の画像部分を選択するユーザ入力を検出するステップであって、前記ユーザ入力が複数の座標に対応する、ステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記ローカル・コンピューティング・デバイス上で実行する透明層に前記複数の座標を送信するステップであって、前記透明層が、オペレーティング・システム又は前記オペレーティング・システム上で実行するように構成された1つ又は複数のアプリケーションのうちの1つ又は複数とインターフェースするように構成されたアプリケーション・プログラミング・インターフェース(API)を備える、ステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標に少なくとも部分的に基づいて、前記画像部分をキャプチャするステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記選択された画像部分を前記共同ワークスペース内のロケーションにドラッグするための第2のユーザ入力を検出するステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信するステップであって、前記複数のコマンドが、前記画像を前記共同ワークスペースから除去させ、さらに、前記ロケーションに少なくとも部分的に基づいて、前記画像部分を前記共同ワークスペースに挿入させるように構成される、ステップと
を含む方法。
A way to convey cropped images through websocket connections in a networked collaborative workspace.
On the user interface of a local computing device, the step of sending a representation of a collaborative workspace hosted on a server and accessible to multiple participants on multiple computing devices through a websocket connection. A step and a step in which the collaborative workspace contains one or more images.
A step of detecting a user input for selecting an image portion of an image in the one or more images by a cropping tool running on the local computing device, wherein the user input is at multiple coordinates. Corresponding steps and
A step of transmitting the plurality of coordinates to a transparent layer running on the local computing device by the cropping tool running on the local computing device, wherein the transparent layer is operating. A step and a step comprising an application programming interface (API) configured to interface with one or more of one or more applications configured to run on the system or said operating system.
A step of capturing the image portion by the transparent layer running on the local computing device, at least partially based on the plurality of coordinates.
A step of detecting a second user input for dragging the selected image portion to a location in the collaborative workspace by the transparent layer running on the local computing device.
A step of sending a plurality of commands to the server hosting the collaborative workspace by the transparent layer running on the local computing device, wherein the plurality of commands transmit the image to the collaborative workspace. A method comprising a step, which is configured to be removed from, and further to insert the image portion into the collaborative workspace, at least in part based on the location.
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標に少なくとも部分的に基づいて、前記画像部分をキャプチャするステップが、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記オペレーティング・システム又は前記ローカル・コンピューティング・デバイス上で実行するアプリケーションのうちの1つ又は複数に対する、前記複数の座標により定義された前記画像部分のスクリーン・キャプチャのための要求を送信するステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標により定義された前記画像部分の前記スクリーン・キャプチャを受信するステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記ローカル・コンピューティング・デバイスのランダム・アクセス・メモリに前記画像部分を記憶させるステップと
を含む、請求項1に記載の方法。
The step of capturing the image portion by the transparent layer running on the local computing device, at least partially based on the plurality of coordinates.
Defined by the plurality of coordinates with respect to one or more of the operating system or the application running on the local computing device by the transparent layer running on the local computing device. The step of sending a request for a screen capture of the image portion,
The step of receiving the screen capture of the image portion defined by the plurality of coordinates by the transparent layer running on the local computing device.
The method of claim 1, comprising the step of storing the image portion in the random access memory of the local computing device by the transparent layer running on the local computing device.
前記複数のコマンドが前記ウェブ・ソケット接続を通じて送信される、請求項1に記載の方法。 The method of claim 1, wherein the plurality of commands are transmitted through the web socket connection. 前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記選択された画像部分を前記共同ワークスペース内の新しい位置にドラッグするための第2のユーザ入力を検出するステップが、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記選択された画像部分を前記共同ワークスペース内の新しい位置にドラッグするための前記第2のユーザ入力を検出するステップと、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記ローカル・コンピューティング・デバイス上で実行する前記透明層に前記新しい位置を送信するステップと
を含む、請求項1に記載の方法。
The step of detecting a second user input for dragging the selected image portion to a new position in the collaborative workspace by the transparent layer running on the local computing device.
The step of detecting the second user input for dragging the selected image portion to a new position in the collaborative workspace by the cropping tool running on the local computing device.
The method of claim 1, comprising the step of transmitting the new location to the transparent layer running on the local computing device by the cropping tool running on the local computing device. ..
前記ロケーションが、編集インターフェースに関連付けられたロケーションに対応し、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信するステップが、
前記透明層から前記共同ワークスペースをホストする前記サーバに第1のコマンドを送信するステップであって、前記第1のコマンドが、前記画像を前記共同ワークスペースから除去させるように構成される、ステップと、
前記透明層から前記共同ワークスペースをホストする前記サーバに第2のコマンドを送信するステップであって、前記第2のコマンドが、前記ロケーションにおいて前記編集ワークスペースに前記画像部分を挿入させるように構成される、ステップと
を含む、請求項1に記載の方法。
The location corresponds to the location associated with the editing interface.
The step of sending a plurality of commands to the server hosting the collaborative workspace by the transparent layer running on the local computing device.
A step of transmitting a first command from the transparent layer to the server hosting the collaborative workspace, wherein the first command is configured to remove the image from the collaborative workspace. When,
A step of transmitting a second command from the transparent layer to the server hosting the collaborative workspace, wherein the second command is configured to insert the image portion into the editing workspace at the location. The method of claim 1, comprising:
前記画像部分が、前記透明層によってランダム・アクセス・メモリに記憶され、前記第2のコマンドが、前記ランダム・アクセス・メモリにおける前記画像部分のストレージ・ロケーションを含む、請求項5に記載の方法。 The method of claim 5, wherein the image portion is stored in random access memory by the transparent layer and the second command comprises a storage location for the image portion in the random access memory. 前記ロケーションが、ツールバー・インターフェースに関連付けられたロケーションに対応し、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信するステップが、
前記透明層から前記共同ワークスペースをホストする前記サーバに第1のコマンドを送信するステップであって、前記第1のコマンドが、前記画像を前記共同ワークスペースから除去させるように構成される、ステップと、
前記透明層から前記共同ワークスペースをホストする前記サーバに第2のコマンドを送信するステップであって、前記第2のコマンドが、前記ツールバー・インターフェースに関連付けられたツールバーに前記画像部分を記憶させるように構成される、ステップと
を含む、請求項1に記載の方法。
The location corresponds to the location associated with the toolbar interface.
The step of sending a plurality of commands to the server hosting the collaborative workspace by the transparent layer running on the local computing device.
A step of transmitting a first command from the transparent layer to the server hosting the collaborative workspace, wherein the first command is configured to remove the image from the collaborative workspace. When,
A step of transmitting a second command from the transparent layer to the server hosting the collaborative workspace, such that the second command causes the toolbar associated with the toolbar interface to store the image portion. The method of claim 1, wherein the method comprises:
ネットワーク化された共同ワークスペースにおいてウェブ・ソケット接続を通じてクロップ画像を伝えるためのローカル・コンピューティング・デバイスであって、
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサのうちの少なくとも1つに動作可能に結合され、前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されたとき、前記1つ又は複数のプロセッサのうちの少なくとも1つに、
前記ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を通じて複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信することであって、前記共同ワークスペースが1つ又は複数の画像を含む、送信することと、
前記ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールによって、前記1つ又は複数の画像中の画像の画像部分を選択するユーザ入力を検出することであって、前記ユーザ入力が複数の座標に対応する、検出することと、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記ローカル・コンピューティング・デバイス上で実行する透明層に前記複数の座標を送信することであって、前記透明層が、オペレーティング・システム又は前記オペレーティング・システム上で実行するように構成された1つ又は複数のアプリケーションのうちの1つ又は複数とインターフェースするように構成されたアプリケーション・プログラミング・インターフェース(API)を備える、送信することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標に少なくとも部分的に基づいて、前記画像部分をキャプチャすることと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記選択された画像部分を前記共同ワークスペース内のロケーションにドラッグするための第2のユーザ入力を検出することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信することであって、前記複数のコマンドが、前記画像を前記共同ワークスペースから除去させ、さらに、前記ロケーションに少なくとも部分的に基づいて、前記画像部分を前記共同ワークスペースに挿入させるように構成される、送信することと
を行わせる命令を記憶した、1つ又は複数のメモリと
を備える、ローカル・コンピューティング・デバイス。
A local computing device for delivering cropped images over websocket connections in a networked collaborative workspace.
With one or more processors
At least one of the one or more processors when operably coupled to at least one of the one or more processors and executed by at least one of the one or more processors. For one,
On the user interface of the local computing device, it sends a representation of a collaborative workspace hosted on a server and accessible to multiple participants on multiple computing devices through a websocket connection. That is, to transmit, where the collaborative workspace contains one or more images.
A cropping tool running on the local computing device detects a user input that selects an image portion of an image in the one or more images, the user input being in multiple coordinates. Corresponding, detecting and
By transmitting the plurality of coordinates to the transparent layer running on the local computing device by the cropping tool running on the local computing device, the transparent layer is operating. Sending, including an application programming interface (API) configured to interface with one or more of one or more applications configured to run on the system or said operating system. When,
Capturing the image portion, at least partially based on the plurality of coordinates, by the transparent layer running on the local computing device.
The transparent layer running on the local computing device detects a second user input for dragging the selected image portion to a location in the collaborative workspace.
The transparent layer running on the local computing device sends a plurality of commands to the server hosting the collaborative workspace, wherein the plurality of commands transfer the image to the collaborative workspace. One or more memorized commands to be removed from, and to transmit, configured to insert the image portion into the collaborative workspace, at least in part based on the location. A local computing device with memory.
前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されたとき、前記1つ又は複数のプロセッサのうちの少なくとも1つに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標に少なくとも部分的に基づいて、前記画像部分をキャプチャすることを行わせる前記命令が、前記1つ又は複数のプロセッサのうちの少なくとも1つに、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記オペレーティング・システム又は前記ローカル・コンピューティング・デバイス上で実行するアプリケーションのうちの1つ又は複数に対する、前記複数の座標により定義された前記画像部分のスクリーン・キャプチャのための要求を送信することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標により定義された前記画像部分の前記スクリーン・キャプチャを受信することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記ローカル・コンピューティング・デバイスのランダム・アクセス・メモリに前記画像部分を記憶させることと
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。
When executed by at least one of the one or more processors, the transparent layer running on the local computing device to at least one of the one or more processors. The instruction that causes the image portion to be captured based on at least a portion of the plurality of coordinates causes at least one of the one or more processors to capture the image portion.
Defined by the plurality of coordinates with respect to one or more of the operating system or the application running on the local computing device by the transparent layer running on the local computing device. Sending a request for a screen capture of the image portion and
Receiving the screen capture of the image portion defined by the plurality of coordinates by the transparent layer running on the local computing device.
The local according to claim 8, wherein the transparent layer running on the local computing device further causes the random access memory of the local computing device to store the image portion. -Computing device.
前記複数のコマンドが前記ウェブ・ソケット接続を通じて送信される、請求項8に記載のローカル・コンピューティング・デバイス。 The local computing device according to claim 8, wherein the plurality of commands are transmitted through the web socket connection. 前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されたとき、前記1つ又は複数のプロセッサのうちの少なくとも1つに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記選択された画像部分を前記共同ワークスペース内の新しい位置にドラッグするための第2のユーザ入力を検出することを行わせる前記命令が、前記1つ又は複数のプロセッサのうちの少なくとも1つに、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記選択された画像部分を前記共同ワークスペース内の新しい位置にドラッグするための前記第2のユーザ入力を検出することと、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記ローカル・コンピューティング・デバイス上で実行する前記透明層に前記新しい位置を送信することと
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。
When executed by at least one of the one or more processors, the transparent layer running on the local computing device to at least one of the one or more processors. The instruction that causes the detection of a second user input for dragging the selected image portion to a new position in the collaborative workspace is given to at least one of the one or more processors. ,
The cropping tool running on the local computing device detects the second user input for dragging the selected image portion to a new position in the collaborative workspace.
8. The cropping tool running on the local computing device further causes the new location to be transmitted to the transparent layer running on the local computing device. Local computing device.
前記ロケーションが、編集インターフェースに関連付けられたロケーションに対応し、
前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されたとき、前記1つ又は複数のプロセッサのうちの少なくとも1つに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信することを行わせる前記命令が、前記1つ又は複数のプロセッサのうちの少なくとも1つに、
前記透明層から前記共同ワークスペースをホストする前記サーバに第1のコマンドを送信することであって、前記第1のコマンドが、前記画像を前記共同ワークスペースから除去させるように構成される、送信することと、
前記透明層から前記共同ワークスペースをホストする前記サーバに第2のコマンドを送信することであって、前記第2のコマンドが、前記ロケーションにおいて前記編集ワークスペースに前記画像部分を挿入させるように構成される、送信することと
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。
The location corresponds to the location associated with the editing interface.
When executed by at least one of the one or more processors, the transparent layer running on the local computing device to at least one of the one or more processors. The instruction, which causes the server hosting the collaborative workspace to send a plurality of commands, causes at least one of the one or a plurality of processors to send a plurality of commands.
Sending a first command from the transparent layer to the server hosting the collaborative workspace, wherein the first command is configured to remove the image from the collaborative workspace. To do and
The transparent layer is to send a second command from the transparent layer to the server hosting the collaborative workspace, the second command being configured to insert the image portion into the editing workspace at the location. The local computing device according to claim 8, which further causes the transmission to be performed.
前記画像部分が、前記透明層によってランダム・アクセス・メモリに記憶され、前記第2のコマンドが、前記ランダム・アクセス・メモリにおける前記画像部分のストレージ・ロケーションを含む、請求項12に記載のローカル・コンピューティング・デバイス。 12. The local according to claim 12, wherein the image portion is stored in a random access memory by the transparent layer and the second command includes a storage location of the image portion in the random access memory. Computing device. 前記ロケーションが、ツールバー・インターフェースに関連付けられたロケーションに対応し、
前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されたとき、前記1つ又は複数のプロセッサのうちの少なくとも1つに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信することを行わせる前記命令が、前記1つ又は複数のプロセッサのうちの少なくとも1つに、
前記透明層から前記共同ワークスペースをホストする前記サーバに第1のコマンドを送信することであって、前記第1のコマンドが、前記画像を前記共同ワークスペースから除去させるように構成される、送信することと、
前記透明層から前記共同ワークスペースをホストする前記サーバに第2のコマンドを送信することであって、前記第2のコマンドが、前記ツールバー・インターフェースに関連付けられたツールバーに前記画像部分を記憶させるように構成される、送信することと
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。
The location corresponds to the location associated with the toolbar interface.
When executed by at least one of the one or more processors, the transparent layer running on the local computing device to at least one of the one or more processors. The instruction, which causes the server hosting the collaborative workspace to send a plurality of commands, causes at least one of the one or a plurality of processors to send a plurality of commands.
Sending a first command from the transparent layer to the server hosting the collaborative workspace, wherein the first command is configured to remove the image from the collaborative workspace. To do and
Sending a second command from the transparent layer to the server hosting the collaborative workspace so that the second command causes the toolbar associated with the toolbar interface to store the image portion. The local computing device according to claim 8, wherein the local computing device is configured to further perform transmission and transmission.
ローカル・コンピューティング・デバイスによって実行されたとき、前記ローカル・コンピューティング・デバイスに、
前記ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を通じて複数のコンピューティング・デバイス上の複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信することであって、前記共同ワークスペースが1つ又は複数の画像を含む、送信することと、
前記ローカル・コンピューティング・デバイス上で実行するクロッピング・ツールによって、前記1つ又は複数の画像中の画像の画像部分を選択するユーザ入力を検出することであって、前記ユーザ入力が複数の座標に対応する、検出することと、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記ローカル・コンピューティング・デバイス上で実行する透明層に前記複数の座標を送信することであって、前記透明層が、オペレーティング・システム又は前記オペレーティング・システム上で実行するように構成された1つ又は複数のアプリケーションのうちの1つ又は複数とインターフェースするように構成されたアプリケーション・プログラミング・インターフェース(API)を備える、送信することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標に少なくとも部分的に基づいて、前記画像部分をキャプチャすることと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記選択された画像部分を前記共同ワークスペース内のロケーションにドラッグするための第2のユーザ入力を検出することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信することであって、前記複数のコマンドが、前記画像を前記共同ワークスペースから除去させ、さらに、前記ロケーションに少なくとも部分的に基づいて、前記画像部分を前記共同ワークスペースに挿入させるように構成される、送信することと
を行わせるコンピュータ可読命令を記憶する、少なくとも1つの非一時的コンピュータ可読媒体。
When executed by a local computing device, the local computing device,
On the user interface of the local computing device, it sends a representation of a collaborative workspace hosted on a server and accessible to multiple participants on multiple computing devices through a websocket connection. That is, to transmit, where the collaborative workspace contains one or more images.
A cropping tool running on the local computing device detects a user input that selects an image portion of an image in the one or more images, the user input being in multiple coordinates. Corresponding, detecting and
By transmitting the plurality of coordinates to the transparent layer running on the local computing device by the cropping tool running on the local computing device, the transparent layer is operating. Sending, including an application programming interface (API) configured to interface with one or more of one or more applications configured to run on the system or said operating system. When,
Capturing the image portion, at least partially based on the plurality of coordinates, by the transparent layer running on the local computing device.
The transparent layer running on the local computing device detects a second user input for dragging the selected image portion to a location in the collaborative workspace.
The transparent layer running on the local computing device sends a plurality of commands to the server hosting the collaborative workspace, wherein the plurality of commands transfer the image to the collaborative workspace. Stores at least one computer-readable command that is configured to insert the image portion into the collaborative workspace, and to perform transmission, based on the location, at least in part, from the location. Non-temporary computer readable medium.
前記ローカル・コンピューティング・デバイスによって実行されたとき、前記ローカル・コンピューティング・デバイスに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標に少なくとも部分的に基づいて、前記画像部分をキャプチャすることを行わせる前記命令が、前記ローカル・コンピューティング・デバイスに、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記オペレーティング・システム又は前記ローカル・コンピューティング・デバイス上で実行するアプリケーションのうちの1つ又は複数に対する、前記複数の座標により定義された前記画像部分のスクリーン・キャプチャのための要求を送信することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記複数の座標により定義された前記画像部分の前記スクリーン・キャプチャを受信することと、
前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記ローカル・コンピューティング・デバイスのランダム・アクセス・メモリに前記画像部分を記憶させることと
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
When executed by the local computing device, the transparent layer running on the local computing device to the local computing device, at least partially based on the coordinates. The instruction that causes the image portion to be captured gives the local computing device.
Defined by the plurality of coordinates with respect to one or more of the operating system or the application running on the local computing device by the transparent layer running on the local computing device. Sending a request for a screen capture of the image portion and
Receiving the screen capture of the image portion defined by the plurality of coordinates by the transparent layer running on the local computing device.
At least according to claim 15, the transparent layer running on the local computing device further causes the random access memory of the local computing device to store the image portion. One non-temporary computer readable medium.
前記複数のコマンドが前記ウェブ・ソケット接続を通じて送信される、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。 The at least one non-transitory computer-readable medium according to claim 15, wherein the plurality of commands are transmitted through the web socket connection. 前記ローカル・コンピューティング・デバイスによって実行されたとき、前記ローカル・コンピューティング・デバイスに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記選択された画像部分を前記共同ワークスペース内の新しい位置にドラッグするための第2のユーザ入力を検出することを行わせる前記命令が、前記ローカル・コンピューティング・デバイスに、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記選択された画像部分を前記共同ワークスペース内の新しい位置にドラッグするための前記第2のユーザ入力を検出することと、
前記ローカル・コンピューティング・デバイス上で実行する前記クロッピング・ツールによって、前記ローカル・コンピューティング・デバイス上で実行する前記透明層に前記新しい位置を送信することと
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
When executed by the local computing device, the selected image portion is brought to the local computing device by the transparent layer running on the local computing device in the collaborative workspace. The instruction that causes the local computing device to detect a second user input for dragging to a new position in
The cropping tool running on the local computing device detects the second user input for dragging the selected image portion to a new position in the collaborative workspace.
15. The cropping tool, which runs on the local computing device, further causes the new location to be transmitted to the transparent layer, which runs on the local computing device. At least one non-temporary computer-readable medium.
前記ロケーションが、編集インターフェースに関連付けられたロケーションに対応し、
前記ローカル・コンピューティング・デバイスによって実行されたとき、前記ローカル・コンピューティング・デバイスに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信することを行わせる命令が、前記ローカル・コンピューティング・デバイスに、
前記透明層から前記共同ワークスペースをホストする前記サーバに第1のコマンドを送信することであって、前記第1のコマンドが、前記画像を前記共同ワークスペースから除去させるように構成される、送信することと、
前記透明層から前記共同ワークスペースをホストする前記サーバに第2のコマンドを送信することであって、前記第2のコマンドが、前記ロケーションにおいて前記編集ワークスペースに前記画像部分を挿入させるように構成される、送信することと
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
The location corresponds to the location associated with the editing interface.
Multiple to the server hosting the collaborative workspace by the transparent layer running on the local computing device to the local computing device when executed by the local computing device. An instruction that causes the local computing device to send a command
Sending a first command from the transparent layer to the server hosting the collaborative workspace, wherein the first command is configured to remove the image from the collaborative workspace. To do and
The transparent layer is to send a second command from the transparent layer to the server hosting the collaborative workspace, the second command being configured to insert the image portion into the editing workspace at the location. At least one non-transitory computer-readable medium according to claim 15, which further causes the transmission to be performed.
前記画像部分が、前記透明層によってランダム・アクセス・メモリに記憶され、前記第2のコマンドが、前記ランダム・アクセス・メモリにおける前記画像部分のストレージ・ロケーションを含む、請求項19に記載の少なくとも1つの非一時的コンピュータ可読媒体。 At least one of claim 19, wherein the image portion is stored in random access memory by the transparent layer and the second command includes a storage location for the image portion in the random access memory. Two non-temporary computer-readable media. 前記ロケーションが、ツールバー・インターフェースに関連付けられたロケーションに対応し、
前記ローカル・コンピューティング・デバイスによって実行されたとき、前記ローカル・コンピューティング・デバイスに、前記ローカル・コンピューティング・デバイス上で実行する前記透明層によって、前記共同ワークスペースをホストする前記サーバに複数のコマンドを送信することを行わせる前記命令が、前記ローカル・コンピューティング・デバイスに、
前記透明層から前記共同ワークスペースをホストする前記サーバに第1のコマンドを送信することであって、前記第1のコマンドが、前記画像を前記共同ワークスペースから除去させるように構成される、送信することと、
前記透明層から前記共同ワークスペースをホストする前記サーバに第2のコマンドを送信することであって、前記第2のコマンドが、前記ツールバー・インターフェースに関連付けられたツールバーに前記画像部分を記憶させるように構成される、送信することと
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。
The location corresponds to the location associated with the toolbar interface.
Multiple to the server hosting the collaborative workspace by the transparent layer running on the local computing device to the local computing device when executed by the local computing device. The command, which causes the command to be sent, causes the local computing device to send the command.
Sending a first command from the transparent layer to the server hosting the collaborative workspace, wherein the first command is configured to remove the image from the collaborative workspace. To do and
Sending a second command from the transparent layer to the server hosting the collaborative workspace, such that the second command causes the toolbar associated with the toolbar interface to store the image portion. The at least one non-transitory computer-readable medium according to claim 15, which further comprises transmitting and performing.
JP2020564175A 2018-05-18 2019-05-16 Methods, devices, and computer-readable media for delivering cropped images through websocket connections in a networked collaborative workspace. Pending JP2021523484A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/983,747 US11334220B2 (en) 2017-08-24 2018-05-18 Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace
US15/983,747 2018-05-18
PCT/EP2019/062687 WO2019219848A1 (en) 2018-05-18 2019-05-16 Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace

Publications (1)

Publication Number Publication Date
JP2021523484A true JP2021523484A (en) 2021-09-02

Family

ID=66690298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020564175A Pending JP2021523484A (en) 2018-05-18 2019-05-16 Methods, devices, and computer-readable media for delivering cropped images through websocket connections in a networked collaborative workspace.

Country Status (6)

Country Link
EP (1) EP3794432A1 (en)
JP (1) JP2021523484A (en)
KR (1) KR20210010567A (en)
CN (1) CN112424738A (en)
BR (1) BR112020023519A2 (en)
WO (1) WO2019219848A1 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070124737A1 (en) * 2005-11-30 2007-05-31 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media
US8582919B2 (en) * 2007-09-24 2013-11-12 Microsoft Corporation Altering the appearance of a digital image using a shape
US8806331B2 (en) * 2009-07-20 2014-08-12 Interactive Memories, Inc. System and methods for creating and editing photo-based projects on a digital network
US20140101571A1 (en) * 2012-10-04 2014-04-10 Lucid Dream Software, Inc. Shared collaborative environment
US20140310613A1 (en) * 2013-04-15 2014-10-16 Microsoft Corporation Collaborative authoring with clipping functionality
CN105659286B (en) * 2013-09-18 2021-09-28 英特尔公司 Automated image cropping and sharing
US20150135137A1 (en) * 2013-11-12 2015-05-14 Microsoft Corporation User Experience for Processing and Cropping Images

Also Published As

Publication number Publication date
KR20210010567A (en) 2021-01-27
CN112424738A (en) 2021-02-26
EP3794432A1 (en) 2021-03-24
BR112020023519A2 (en) 2021-02-09
WO2019219848A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
US11483376B2 (en) Method, apparatus, and computer-readable medium for transmission of files over a web socket connection in a networked collaboration workspace
US20220382505A1 (en) Method, apparatus, and computer-readable medium for desktop sharing over a web socket connection in a networked collaboration workspace
US11416205B2 (en) Systems and methods for initiating and interacting with a companion-display mode for an electronic device with a touch-sensitive display
US9965039B2 (en) Device and method for displaying user interface of virtual input device based on motion recognition
JP5442727B2 (en) Display of teaching videos on the user interface display
US20140354553A1 (en) Automatically switching touch input modes
US20220068032A1 (en) Headset-based interface and menu system
JP6433923B2 (en) Providing a specific object location to the device
JP2020532007A (en) Methods, devices, and computer-readable media that provide a general-purpose interface between hardware and software
JP2021517302A (en) Methods, devices, and computer-readable media for sending files over websocket connections in a networked collaborative workspace.
US11334220B2 (en) Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace
CN112204512A (en) Method, apparatus and computer readable medium for desktop sharing over web socket connections in networked collaborative workspaces
JP2021523484A (en) Methods, devices, and computer-readable media for delivering cropped images through websocket connections in a networked collaborative workspace.
JP2021533456A (en) Methods, devices and computer-readable media for communicating expanded note data objects over websocket connections in a networked collaborative workspace.
KR20210011046A (en) A device and method for displaying a user interface(ui) of virtual input device based on motion rocognition