JP2020035373A - 電子機器及びその制御方法及びプログラム及び情報処理システム - Google Patents

電子機器及びその制御方法及びプログラム及び情報処理システム Download PDF

Info

Publication number
JP2020035373A
JP2020035373A JP2018163620A JP2018163620A JP2020035373A JP 2020035373 A JP2020035373 A JP 2020035373A JP 2018163620 A JP2018163620 A JP 2018163620A JP 2018163620 A JP2018163620 A JP 2018163620A JP 2020035373 A JP2020035373 A JP 2020035373A
Authority
JP
Japan
Prior art keywords
information
request
files
external device
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018163620A
Other languages
English (en)
Other versions
JP7262191B2 (ja
JP2020035373A5 (ja
Inventor
正和 土橋
Masakazu Tsuchihashi
正和 土橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018163620A priority Critical patent/JP7262191B2/ja
Priority to US16/541,593 priority patent/US11269809B2/en
Publication of JP2020035373A publication Critical patent/JP2020035373A/ja
Publication of JP2020035373A5 publication Critical patent/JP2020035373A5/ja
Application granted granted Critical
Publication of JP7262191B2 publication Critical patent/JP7262191B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00281Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal
    • H04N1/00307Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal with a mobile telephone apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/0044Display of information to the user, e.g. menus for image preview or review, e.g. to help the user position a sheet
    • H04N1/00442Simultaneous viewing of a plurality of images, e.g. using a mosaic display arrangement of thumbnails
    • H04N1/00453Simultaneous viewing of a plurality of images, e.g. using a mosaic display arrangement of thumbnails arranged in a two dimensional array
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00464Display of information to the user, e.g. menus using browsers, i.e. interfaces based on mark-up languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0048Type of connection
    • H04N2201/006Using near field communication, e.g. an inductive loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Studio Devices (AREA)

Abstract

【課題】 複数の情報ファイルを効率的に提供もしくは取得する。【解決手段】 複数のファイルを記憶可能な記憶部を有する電子機器であって、外部装置と通信するための通信部と、通信部を介して、記憶部に記憶されたファイルの閲覧に関する要求を外部装置から受信した場合、当該要求の種類に応じた情報を生成し、外部装置に応答として送信すする応答部と有する。ここで、応答部は、受信した要求が、記憶部に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定部と、該判定部により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した1つのチャンクを生成する生成部と、該生成部で生成したチャンクを、要求の応答として送信する送信部とを含む。【選択図】 図7A

Description

本発明は、電子機器間でのコンテンツデータの通信技術に関するものである。
近年、パーソナルコンピュータ、デジタルカメラ、ゲーム機、タブレット端末、携帯電話機など、多くの電子機器にカメラ機能および通信機能が搭載され、これら電子機器間でのデータ送受信が実現されている。例えば、特許文献1には、そのデジタルカメラが有するコンテンツデータ(画像データ、音声データなど)の識別情報を、そのデジタルカメラから取得し、取得した識別情報を用いて所望のコンテンツデータをデジタルカメラから取得する技術が開示されている。
特開2008−250820号公報
しかしながら、従来、ある電子機器(送信機器)が有する複数のコンテンツデータについて、別の電子機器(受信機器)がサムネイルとファイル名などの基本情報を一覧表示しようとした場合、受信機器は、
(1)コンテンツデータの識別情報を取得
(2)識別情報を用いて1つずつ基本情報を取得
(3)識別情報を用いて1つずつサムネイルを取得
(4)一覧表示
という手順を踏む必要があった。例えば100個のコンテンツデータについてこのような一覧表示を行う場合、(2)と(3)の手順を100回繰り返す必要がある。
この時、受信機器から送信機器には(2)と(3)の処理を100回ずつ合計200回ものコンテンツデータ取得要求が送信されることになり、送信機器の処理能力によっては、これら要求の処理に負荷がかかる。加えて、大量の取得要求により通信のトラフィックが増大し通信遅延が発生する。コンテンツ一覧画面などのコンテンツや情報の数が多い画面を作成する場合は、これら大量の取得要求が画面生成完了までの処理時間に与える影響が大きく、取得要求の数を削減することが求められる。
本発明はかかる問題に鑑みなされたものであり、コンテンツデータを効率的に提供もしくは取得可能な技術を提供しようとするものである。
この課題を解決するため、例えば本発明の電子機器は以下の構成を備える。すなわち、
本発明によれば、複数の情報ファイルを効率的に提供もしくは取得することが可能になる。
実施形態におけるデジタルカメラのブロック構成図。 実施形態におけるスマートフォンのブロック構成図。 実施形態におけるデジタルカメラが提供するAPIの例を示す図。 実施形態におけるデジタルカメラが送信するChunkデータの例を示す図。 第1の実施形態におけるスマートフォンが表示するGUI画面の例を示す図。 第1の実施形態におけるデジタルカメラとスマートフォンの相互処理の例を示すシーケンス図。 第1の実施形態のデジタルカメラの処理を示すフローチャート。 第1の実施形態のデジタルカメラのチャンク送信処理を示すフローチャート。 第1の実施形態におけるスマートフォンの処理手順を示すフローチャート。 第1の実施形態におけるスマートフォンのレスポンス受信待ちの処理手順を示すフローチャート。 第2の実施形態におけるデジタルカメラの処理手順を示すフローチャート。 第2の実施形態におけるスマートフォンの処理手順を示すフローチャート。 第2の実施形態におけるデジタルカメラとスマートフォンの相互処理の例を示すシーケンス図。 第3の実施形態におけるスマートフォンのGUI画面の例を示す図。 第3の実施形態におけるスマートフォンの処理手順を示すフローチャート。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
[第1の実施形態]
<デジタルカメラ100の内部構成>
図1は、本実施形態の通信装置の一例であるデジタルカメラ100のブロック構成図である。なお、ここでは通信装置の一例としてデジタルカメラについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部101は入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部102は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子としては、一般的には、CMOS(ComplementaryMetalOxideSemiconductor)や、CCD(ChargeCoupledDevice)が利用される。撮像部102は、制御部101の制御下にて、撮像部102に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行い、デジタル画像データ(以降、単に画像データ)として出力する。本実施形態のデジタルカメラ100では、画像データのファイルは、DCF(DesignRuleforCameraFilesystem)の規格に従って、記録媒体110に記録される。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラムや各種パラメータ等が格納される。
作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
操作部105は、デジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、操作部105は、後述の接続部111を介した外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、操作部105は、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、レリーズスイッチは、第1スイッチ、第2スイッチの2つを有する。レリーズスイッチが、いわゆる半押し状態となることにより、第1スイッチがONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、第2スイッチがONとなる。これにより、制御部101は、撮影を行うための指示として受け付けることになる。
表示部106は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、メニューなどの対話的な操作のための文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100は内部又は外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体110は、ファイルを記憶保持するための不揮発性で、かつ、書き込み可能な記憶媒体である。この記憶媒体110は、撮像部102から出力された画像データをファイルとして複数記憶可能な容量を有する。記録媒体110は、デジタルカメラ100にメモリカードなどように着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体110にアクセスする手段を有していればよい。
接続部111は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ100は、接続部111を介して、外部装置とデータのやりとりを行うことができる。例えば、撮像部102で生成した画像データを、接続部111を介して外部装置に送信することができる。なお、本実施形態では、接続部111は外部装置とIEEE802.11の規格に従った、いわゆる無線LANで通信するためのインターフェースを含む。制御部101は、接続部111を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではなく、例えば赤外通信方式も含む。接続部111は第1の無線通信手段の一例である。
近距離無線通信部112は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近距離無線通信部112は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することによりIEEE802.15の規格(いわゆるBluetooth(登録商標))に従った近距離無線通信を実現する。本実施形態においてBluetooth(登録商標)通信は、低消費電力であるBluetooth(登録商標) Low Energyのバージョン4.0を採用する。このBluetooth(登録商標)通信は、無線LAN通信と比べて通信可能な範囲が狭い(つまり、通信可能な距離が短い)。また、Bluetooth(登録商標)通信は、無線LAN通信と比べて通信速度が遅い。その一方で、Bluetooth(登録商標)通信は、無線LAN通信と比べて消費電力が少ない。本実施形態のデジタルカメラ100は、近距離無線通信部112を介して、外部装置とデータのやりとりを行うことができる。例えば外部装置から撮影の命令を受信した場合は撮像部102を制御し、撮影動作を行い、無線LAN通信によるデータの授受を行うための命令を受信した場合は接続部111を制御し、無線LAN通信を開始する。
近接無線通信部113は、例えば無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。近接無線通信部113は、変調した無線信号をアンテナから出力し、またアンテナで受信した無線信号を復調することでISO/IEC 18092の規格(いわゆるNFC:NearFieldCommunication)に従った非接触近接通信を実現する。本実施形態の近接無線通信部113は、デジタルカメラ100の側部に配される。
外部装置とは、互いの近接無線通信部を近接させることにより通信を開始して接続される。なお、近接無線通信部113を用いて接続させる場合、必ずしも近接無線通信部同士を接触させる必要はない。近接無線通信部は一定の距離だけ離れていても通信することができるため、互いの機器を接続するためには、近接無線通信可能な範囲まで近づければよい。以下の説明では、この近接無線通信可能な範囲まで近づけることを、近接させる、とも記載する。
また、互いの近接無線通信部が近接無線通信不可能な範囲にあれば、通信は開始されない。また、互いの近接無線通信部が近接無線通信可能な範囲にあって、デジタルカメラ100同士が通信接続されている際に、互いの近接無線通信部113が近接無線通信不可能な範囲に離れてしまった場合は、通信接続が解除される。なお、近接無線通信部113が実現する非接触近接通信はNFCに限られるものではなく、他の無線通信を採用してもよい。例えば、近接無線通信部113が実現する非接触近接通信として、ISO/IEC 14443の規格に従った非接触近接通信を採用してもよい。
本実施形態では、接続部111により実現される通信の通信速度は、後述の近接無線通信部113により実現される通信の通信速度よりも速い。また、接続部111により実現される通信は、近接無線通信部113による通信よりも、通信可能な範囲が広い。その代わり、近接無線通信部113による通信では、通信可能な範囲の狭さにより通信相手を限定することができるため、接続部111により実現される通信で必要な暗号鍵の交換等の処理を必要としない。すなわち、接続部111を用いるよりも手軽に通信することができる。
なお、本実施形態におけるデジタルカメラ100の接続部111は、インフラストラクチャモードにおけるアクセスポイントとして動作するAPモードと、インフラストラクチャモードにおけるクライアントとして動作するCLモードとを有している。そして、接続部111をCLモードで動作させることにより、本実施形態におけるデジタルカメラ100は、インフラストラクチャモードにおけるCL機器として動作することが可能である。デジタルカメラ100がCL機器として動作する場合、周辺のAP機器に接続することで、AP機器が形成するネットワークに参加することが可能である。また、接続部111をAPモードで動作させることにより、本実施形態におけるデジタルカメラ100は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。デジタルカメラ100が簡易APとして動作すると、デジタルカメラ100は自身でネットワークを形成する。デジタルカメラ100の周辺の装置は、デジタルカメラ100をAP機器と認識し、デジタルカメラ100が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ100を動作させるためのプログラムは不揮発性メモリ103に保持されているものとする。
なお、本実施形態におけるデジタルカメラ100はAPの一種であるものの、CL機器から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。以上、実施形態におけるデジタルカメラ100の構成を説明した。
<スマートフォン200の内部構成>
図2は、本実施形態の通信装置の一例であるスマートフォン200のブロック構成図である。なお、ここでは通信装置の一例としてスマートフォンについて述べるが、通信装置はこれに限られない。例えば通信装置は携帯型のメディアプレーヤや、いわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
図示の参照符号201〜213は、デジタルカメラ100の参照符号101〜113にと同等であり、名称も同じにしている。それ故、その説明は省略する。
公衆網通信部214は、公衆無線通信を行う際に用いられるインターフェースである。スマートフォン200は、公衆網通信部214を介して、他の機器と通話することができる。この際、制御部201はマイク215およびスピーカ216を介して音声信号の入力と出力を行うことで、通話を実現する。本実施形態では、公衆網通信部214はアンテナであり、制御部201は、アンテナを介して、公衆網に接続することができる。なお、通信部211および公衆網通信部214は、一つのアンテナで兼用することも可能である。以上がスマートフォン200の構成を説明した。そして、デジタルカメラ100とスマートフォン200が、実施形態における情報処理システムを構成することになる。
<デジタルカメラを外部装置から制御するAPI(要求コマンド)の構成>
図3は、外部装置からデジタルカメラ100を制御するためのアプリケーションプログラミングインターフェース(API)の例を示す図である。本実施形態のデジタルカメラ100は、スマートフォン200などの外部装置から利用可能なAPIを公開しているものとする。外部装置の設計者は、公開されたAPIを用いてデジタルカメラ100に要求を送信するよう実装することにより、デジタルカメラ100の動作制御や、デジタルカメラ100からのデバイス情報やコンテンツデータファイルの取得を実現できる。
デジタルカメラ100の不揮発性メモリ103にはAPIがプログラムとして予め保存されている。通信部111を介して外部装置との通信が確立すると、制御部101はAPIを作業用メモリ104に展開し、外部装置からAPIがリクエストされるのを待つ。制御部101が外部装置からAPIがリクエストされたことを検知すると、リクエストされたAPIの種類に応じた処理を実行し、その結果をレスポンスとして外部装置に返す。なお、APIはデジタルカメラ100が規定した通信プロトコル上で実行され、外部装置は規定された通信プロトコルを用いてデジタルカメラ100と通信を行い、APIをリクエストする。なお、本実施形態では、HTTPを用いてAPIのリクエストおよび応答が実行されることを想定して説明するが他の通信プロトコルを用いても実施可能である。なお、HTTPは公知の通信プロトコルであるため、その詳細についての説明は割愛する。
HTTPを用いたAPIのリクエストは、外部装置がHTTPリクエストボディにAPI名と必要な引数をテキストで記述し、GETメソッドもしくはPOSTメソッドを用いてデジタルカメラ100に送信することで実現できる。また、リクエストされたAPIの実施結果の返送は、制御部101がHTTPレスポンスボディに付加して外部装置に返送することで実現できる。
図3に示すAPIリスト300は、デジタルカメラ100が提供(公開)するAPIの種類とその内容を示している。なお、図3では便宜上6つのAPIについて示しているが、公開APIの数は6つに限定されるものではなく、制限はない。
API301:“RequestProductInfo”は、デジタルカメラ100の製品情報を外部装置が取得できるようにするためのAPIである。外部装置は、このAPIを引数なしでデジタルカメラ100にリクエストすることにより、デジタルカメラ100の製品名、製造者名、ファームウェアバージョン、シリアルナンバーがレスポンスとして取得できる。なお、製品名とは、デジタルカメラ100の製品名、製造者名とはデジタルカメラ100のメーカー名である。ファームウェアバージョンとは、不揮発性メモリ103に保存された、デジタルカメラ100を制御するためのプログラムのバージョン番号である。シリアルナンバーとは、デジタルカメラ100の個体識別が可能な一意の番号である。
API302:“RequestMemoryInfo”は、デジタルカメラ100の保存領域の情報を外部装置が取得できるようにするためのAPIである。外部装置は、このAPI302を引数なしでデジタルカメラ100にリクエストすることにより、デジタルカメラ100の保存領域ID、保存可能容量、空き容量、保存済みのコンテンツファイル数をレスポンスとして取得できる。複数のメモリカードが装着されている場合など、保存領域が複数存在する場合は、保存領域毎に上記の各項目が取得される。なお、保存領域IDとは、デジタルカメラ100で生成されるコンテンツデータファイルが保存可能な領域にそれぞれ割り振られた識別情報(ID(Identification))であり、例えば、記録媒体110には保存領域IDが割り振られる。保存可能容量とは、コンテンツファイルが保存できる保存領域に保存可能なサイズの上限である。空き容量とは、保存領域のうち、コンテンツデータファイルが保存されていない領域のサイズである。保存済みのコンテンツ数とは、保存領域に保存されているコンテンツデータファイルの総数である。
API303:“RequestContentInfo”は、デジタルカメラ100の保存領域に保存されているコンテンツIDとコンテンツデータファイルの基本情報(エントリ情報)を外部装置が取得できるようにするAPIである。外部装置は、先に示したAPI302:“RequestMemoryInfo”で取得した保存領域ID、取得したいコンテンツの枚数およびコンテンツフォーマットの種類、コンテンツのソート条件を引数に指定して、このAPI303をリクエストする。これにより、外部装置は、デジタルカメラ100の保存領域に保存されているコンテンツデータファイルごとのコンテンツIDと、エントリ情報(ファイル名、ファイルサイズ、ファイル生成日時など)との両方がレスポンスとして取得できる。なお、コンテンツIDとは、コンテンツデータファイルを個々に識別するために割り振られた識別情報である。複数のコンテンツを要求した場合は、指定したソート条件順に並べられた一覧として取得できる。指定できるソート条件の例としては、ソートの種類(ファイル名順(拡張子を含む)、撮影日時順、データサイズ順など)、ソートの向き(昇順、降順)、などが挙げられる。
API304:“RequestChunkedContentData”は、デジタルカメラ100の保存領域に保存されているコンテンツデータファイルを外部装置が取得できるようにするAPIであるが、後述するAPI305(“RequestConent”)とは異なり、一度に複数のコンテンツデータファイルを要求することが可能である。
外部装置は、基準となる(1番目に取得する)コンテンツID、取得したいコンテンツの枚数およびコンテンツフォーマットの種類、コンテンツのソート条件を引数に指定する。コンテンツファイルデータのサイズ(サムネイルサイズ、オリジナルサイズなど)も指定可能である。デジタルカメラ100の制御部101は、指定された基準となるコンテンツIDのコンテンツデータファイルおよび、それを基準として、指定された枚数分のコンテンツデータファイルを、指定されたソート条件に応じて並び替え、Chunk(チャンク)形式の応答情報を生成し、断続的に送信し続ける。Chunkデータの詳細については図4を用いて後述する。
外部装置は受信したChunk形式のデータを、パース処理により個々のコンテンツデータファイルに変換し、コンテンツデータファイルを取得する。指定できるソート条件としては、先述したAPI303と同様である。また、コンテンツデータファイルのほかに、コンテンツの詳細情報の取得の有無も、APIの引数によって外部装置から指定が可能である。取得可能な詳細情報の内容に特に制限は無いが、例えばコンテンツデータが静止画データの場合、Exif(Exchangeableimagefileformat)情報、撮影パラメータなどが挙げられる。先述したAPI303で取得したコンテンツの基本情報を指定することも可能である。これらの情報を指定した場合、デジタルカメラ100の制御部101は、Chunkデータを生成する際、コンテンツデータファイルと次のコンテンツデータファイルの間にこれらの情報を挿入する。外部装置は受信したChunk形式のデータを、パース処理により個々のコンテンツデータファイルおよびコンテンツ情報に変換し、コンテンツデータファイルおよびコンテンツ情報を取得する。
API305:“RequestConent”は、デジタルカメラ100の保存領域に保存されているコンテンツデータファイルを外部装置が取得できるようにするAPIである。外部装置は、引数にコンテンツIDとコンテンツサイズを指定してこのAPIをリクエストすることにより、デジタルカメラ100の保存領域から、指定したコンテンツデータファイルを取得できる。コンテンツファイルのデータサイズ(サムネイルサイズ、オリジナルサイズ)の指定も可能である。制御部101は、このAPI305に対して、1コンテンツのデータファイルのみを返すことになる。
API306:“RequestContentDetailInfo”は、デジタルカメラ100の保存領域に保存されているコンテンツデータの詳細情報を外部装置が取得できるようにするAPIである。外部装置は、コンテンツIDを引数としてこのAPI306をリクエストすると、指定したコンテンツIDに対応するコンテンツデータの詳細情報がレスポンスとして取得できる。制御部101は、このAPI306に対し、1コンテンツのデータ詳細情報のみを返すことになる。
API305(RequestConent)およびAPI306(RequestContentDetailInfo)は本提案の実施形態では不使用だが、コンテンツを1枚表示するときなどに利用できる。コンテンツ一覧画面のサムネイル上にコンテンツ1枚表示画面へのボタンを設け、ユーザの操作によりサムネイルが選択されると、そのサムネイルに対応するコンテンツの1枚表示画面へ遷移する。このとき、選択されたコンテンツのオリジナルサイズのコンテンツデータファイル取得するためにAPI305(RequestConent)を使用する。また、1枚表示画面に詳細な情報を表示する場合には、API306(RequestContentDetailInfo)を用いて詳細情報を取得すればよい。
なお、ここで説明したAPIはデジタルカメラ100が公開するAPIの一例であり、ここで説明した以外のAPIが公開されたり、説明したAPIの1つ以上が公開されなくてもよい。
また、デジタルカメラ100とスマートフォン200の通信をHTTP(HypertextTransferProtocol)で実現する場合、引数の受け渡しはクエリストリングによって実現可能である。クエリストリングは、URL(UniformResourceLocator)にデータを付加できる手法で、URLの末尾に”?”と”変数=パラメータ”で記述する。
<Chunkデータの構成>
Chunk送信はHTTP/1.1で定義されている方式である。特徴を簡単に説明すると、ヘッダーにはデータのサイズを指定する記述(Content-Length)は入れず、エンコード方式をChunkと指定する記述(Transfer-Encoding:chunked)を入れる。メッセージボディには、Chunkごとに、データサイズ、改行、実データ、改行、を繰り返し記述する。そしてChunkデータの最後は"0"のみからなる行と空行で示す、というものである。本第1の実施形態のデジタルカメラ100は、このChunkデータを使用して、コンテンツデータファイルおよびコンテンツ情報を送信を行う。Chunkデータは複数のデータを1度に送信できるため、リクエストの回数は1度だけで済む。
図4は本第1の実施形態でコンテンツデータの送信に使用するChunkデータの例である。図4では、例として、基準となるコンテンツを“IMG_0010.JPG”、ソート条件をファイル名順に降順、取得要求枚数を3枚、取得するコンテンツデータ情報としてファイル名を指定した場合について説明する。
メッセージボディにデータの記述を行う。参照符号401には基準となる“IMG_0010.JPG”の実データサイズを、参照符号402には“IMG_0010.JPG”の実データを記述する。図4の参照符号401にある“12345”は“IMG_0010.JPG”の実データサイズが12345バイトであることを表している。図4の参照符号402にある“aaaaaaaaa…aaaaaa”はファイル“IMG_0010.JPG”の実データを表している。また、コンテンツデータ情報を要求された場合は、この後に実データサイズ、実データと記述する。この例では参照符号403で“IMG_0010.JPG”のファイル名の実データサイズを記述し、参照符号404で“IMG_0010.JPG”のファイル名を記述している。ここまでが1コンテンツに関するデータとなる。
複数コンテンツの要求があった場合は、改行して参照符号401から404と同様に記述していく。この例では、降順で“IMG_0010.JPG”の次のファイルにあたる“IMG_0009.JPG”、“IMG_0008.JPG”について、同様に記述されている。制御部101は、要求されたコンテンツ分のデータを記述したあと、最後に参照符号405でChunkデータの最後を意味する"0"と空行を記述することで、送信すべきデータの作成を完成する。
<コンテンツ一覧画面の構成>
次に、スマートフォン200におけるコンテンツ一覧の表示について説明する。図5(a)は、スマートフォン200の表示部206に表示されるコンテンツ一覧画面の例を示し、同図(b)はコンテンツ一覧画面の表示設定画面を示している。
コンテンツ一覧画面501には、デジタルカメラ100から取得したコンテンツデータファイルやコンテンツ情報を表示する。また、コンテンツ一覧画面501には、表示設定ボタン502が設置されている。このボタン502へのユーザによる押下操作(タッチ)を検出した場合、スマートフォン200の制御部201は図5(b)の表示設定画面503へ遷移する。表示設定画面503では、コンテンツ一覧画面501の表示設定を変更することが出来る。設定項目の例としては、コンテンツのソートの種類(ファイル名順、撮影日時順、データサイズ順など)、ソートの向き(昇順、降順)、コンテンツのサイズ(サムネイル、縮小、オリジナル)などが挙げられる。また、コンテンツ情報の有無も設定が可能である。この画面の設定に応じて、制御部201は、先述したAPI303(RequestContentInfo)およびAPI304(RequestChunkedContentData)の引数を決定し、デジタルカメラ100に対してコンテンツの取得要求を出す。そして、制御部201は、デジタルカメラ100からの応答されたコンテンツデータを元に、コンテンツ一覧画面501作成し、表示部206に表示する。
デジタルカメラ100内のコンテンツ数がサムネイル表示数以上の場合は、一覧画面を複数ページに分割してもよい。この場合は、参照符号504のようなページ変更ボタンを操作して、表示範囲を変更する。また、コンテンツ一覧画面の大きさが、表示部206の表示範囲より大きい場合は、一覧画面にスクロールバーなどを設置して、表示範囲を変更することもできる。
<コンテンツ一覧画面作成時の通信シーケンス>
次に、スマートフォン200がデジタルカメラ100と接続して、デジタルカメラ100の記録媒体110に保存されたコンテンツデータの一覧を表示部206に表示する際の動作を、図6のシーケンス図を参照して説明する。なお、本実施形態では、コンテンツデータが画像ファイルである場合を説明するが、音声ファイルなど、他の種類のファイルであっても同様に処理できる。
まず、S601において、デジタルカメラ100とスマートフォン200は無線ローカルエリアネットワーク(LAN)接続を確立し、通信システムを形成する。ここでは、デジタルカメラ100の通信部111をAPモードで動作させ、デジタルカメラ100が形成するネットワークにスマートフォン200を参加させる方法で無線LAN接続を確立するものとする。例えば、操作部105の接続ボタンが押下され、APモードでの動作が指定されると、デジタルカメラ100の制御部101は、自身が形成するネットワークに外部装置が接続するために必要なSSID(ServiceSetIdentifier)と暗号化キーを生成する。その後、制御部101は、SSIDと暗号化キーを用いて通信部111をAPモードで動作させることにより無線LANネットワークを生成し、接続に必要な情報を含んだビーコン信号の周期的なブロードキャストを開始する。なお、スマートフォン200からSSIDを直接入力させる場合には、ビーコン信号のブロードキャストは行わなくてもよい。なお、制御部101は生成したSSIDと暗号化キーを表示部106に表示し、スマートフォン200のユーザが無線LANネットワークに参加できるようにする。なお、SSIDとは、IEEE802.11シリーズの無線LANにおけるアクセスポイントの識別子であり、混信を避けるために付けられる名前である。暗号化キーとは、SSIDに不正アクセスされないよう無線LANの暗号化を行うためのキーである。次に、制御部101は、DHCP(DynamicHostConfigurationProtocol)サーバアプリケーションを実行し、デジタルカメラ100が形成したネットワークに参加する外部装置に対してIPアドレスを割り振る準備をする。一方、スマートフォン200の制御部201は、通信部211の無線LAN機能が有効でなければ有効とし、通信部211を用いて通信可能範囲に存在するアクセスポイントを探索する。そして、見つかったアクセスポイントのSSIDの一覧を、表示部206に表示する。制御部201は、表示部206に表示されたSSID一覧から操作部205を通じて選択指示が与えられると、選択されたSSIDに応じて暗号化キーの入力画面を表示部206に表示する。そして、制御部201は、選択されたSSIDと操作部205を通じて入力された暗号化キーを通信部211に通知し、選択されたSSIDへの接続を試みる。従って、スマートフォン200のユーザは、まず、表示部206に一覧表示されたSSIDからデジタルカメラ100の表示部106に表示されたSSIDを操作部205を用いて選択する。デジタルカメラ100が形成している無線LANネットワークは暗号化されているため、制御部201は暗号化キーの入力画面を表示部206に表示する。そして、ユーザは、暗号化キーの入力画面に、デジタルカメラ100の表示部106に表示された暗号化キーを、操作部205を用いて入力する。暗号化キーが正しく入力されれば、スマートフォン200がデジタルカメラ100(簡易AP)に認証され、スマートフォン200からの接続要求に対してデジタルカメラ100が接続許可を応答することで接続が完了する。スマートフォン200は、デジタルカメラ100から割り当てられたIPアドレスを用いて、デジタルカメラ100と通信することが可能になる。なお、ここではデジタルカメラ100が簡易APとして動作する例を説明したが、他のAP(無線ルータなど)が構築するLANに、クライアントとして動作するデジタルカメラ100とスマートフォン200がそれぞれ接続する形態であってもよい。
次に、S602において、デジタルカメラ100とスマートフォン200が互いの存在や提供するサービスを認識するディスカバリ処理を行い、スマートフォン200が無線LANを介してデジタルカメラ100が提供するAPIを使用する準備を行う。なお、ディスカバリ処理は、公知のプロトコル、例えば、SSDP(SingleServiceDiscoveryProtocol)やMulticastDNSなどを用いて行うことができる。ディスカバリ処理の一例を説明すると、デジタルカメラ100の制御部101は、自らが構築したネットワークに対してアドバタイズ通知を送信し、自身の存在をネットワークに接続している機器に通知する。スマートフォン200の制御部201は、このアドバタイズ通知を受信すると、デジタルカメラ100から、機器情報(DeviceDescription)を取得し、APIサービスを提供しているか否か(APIを公開しているか否か)を判定する。制御部201は、例えば機器情報に含まれるサービスリストに記述されたURLにアクセスしてサービスの情報を取得し、デジタルカメラ100がAPIサービスを提供しているかどうかを判定することができる。また、APIサービスが提供されている場合、公開されているAPIの名称、機能、およびAPIサービスのアクセス方法(例えばURL)に関する情報を得ることができる。制御部201は、デジタルカメラ100がAPIサービスを提供していると判断した場合、公開されているAPIを使用してデジタルカメラ100から画像ファイルを取得するためのプログラムを、不揮発性メモリ203から作業用メモリ204に展開し、実行する。
次に、S603において、制御部201は、通信部211を介して、製品情報を取得するAPI301(RequestProductInfo)のリクエストをデジタルカメラ100に送信する。
S604で、デジタルカメラ100の制御部101は、通信部111を介してAPI301のリクエストを受信したことを検知する。制御部101は、リクエストされたAPI301に対応するプログラムを実行することにより、製品情報を収集してレスポンス用データセットに含め、通信部111を介してスマートフォン200に送信(応答)する。製品情報の例としては、デジタルカメラ100の製品名、製造者名、ファームウェアバージョン、シリアルナンバーなどであり、例えば不揮発性メモリ103から取得することができる。スマートフォン200は、通信部211を通じてデジタルカメラ100の製品情報を受信する。
S605において、スマートフォン200の制御部201は、通信部211を介してAPI302(RequestMemoryInfo)をデジタルカメラ100にリクエストする。
S606において、デジタルカメラ100の制御部101は、通信部111を介してAPI302のリクエストを受信したことを検知する。制御部101は、リクエストされたAPI302に対応するプログラムを実行することにより、保存領域ID、保存可能容量、空き容量、保存済みコンテンツ数を、作業用メモリ104や記録媒体110より取得する。そして、制御部101はこれらの情報をレスポンス用データセットに成形して、通信部111を介してスマートフォン200に送信する。スマートフォン200の制御部201は、通信部211を通じてデジタルカメラ100の保存領域の情報を受信する。
API301(RequestProductInfo)およびAPI302(RequestMemoryInfo)を用いてデジタルカメラ100の情報を取得したら、S607において制御部201は、デジタルカメラ100と連携した動作をユーザに指定させるメニュー画面を表示部206に表示する。メニュー画面には例として「カメラ内の画像を見る」、「リモート撮影する」、「カメラの設定をする」という連携動作を指定するためのボタンが含まれている。これらの連係動作は例示であり、他の連係動作を指定するためのボタンが含まれていてもよい。操作部205(特にはタッチパネル)を介して、ユーザからいずれかのボタンが選択されると、制御部201は選択されたボタンに対応する連係動作を実現するプログラムを実行する。ここでは、「カメラ内の画像を見る」が選択された場合のシーケンスについて説明する。なお、本実施形態では、デジタルカメラ100の保存領域(記録媒体110)にはコンテンツデータファイルとして、静止画データファイルが既に100枚分保存されているものとして説明する。
S607で表示したメニュー画面を通じて、ユーザによる、デジタルカメラ100との連係動作「カメラ内の画像を見る」の実行指示(コンテンツ一覧表示の指示)がS608でなされたとする。この指示に応答して、スマートフォン200の制御部201はS609において、通信部211を介して、保存領域IDと取得要求枚数、コンテンツフォーマットの種類とソート条件を引数とするAPI303(RequestContentInfo)をデジタルカメラ100にリクエストする。ここでは、領域IDには記録媒体110を示すID、取得要求枚数には保存済みコンテンツデータの総数である“100”、コンテンツフォーマットの種類には画像の種類(静止画)、ソート条件には、図5(b)の表示設定で指定している条件をそれぞれ指定する。これらの引数は、API302(RequestMemoryInfo)で取得した情報に基づいて指定することができる。なお、取得要求枚数として、記録媒体110に保存された「すべて」という指定を行ってもよいし、表示部206に一度に表示する最大数を指定してもよい。
S610においてデジタルカメラ100の制御部101は、通信部111を介してAPI303(RequestContentInfo)のリクエストを受信したことを検知する。制御部101は、リクエストされたAPIに対応するプログラムを実行することにより、APIの引数として指定された保存領域に保存された、指定された種類のコンテンツデータファイルの情報を、指定された数だけ、記録媒体110より取得する。
コンテンツデータファイルの情報は対応するディレクトリエントリに記録されている。従って、API303(RequestContentInfo)の実行時、制御部101は、指定された保存領域IDに応じて、
・作業用メモリ104に一時保存されたコンテンツデータファイルの管理情報、
・記録媒体110に保存されたコンテンツデータファイルの管理情報を記録したファイル、
・記録媒体110のファイルシステムに応じた、コンテンツデータファイルのディレクトリエントリ、
のいずれかを参照し、コンテンツデータファイルについて、IDと基本情報(ファイル名、ファイルサイズ、ファイルの生成日時など)を取得し、それら取得した情報を作業用メモリ104に一時保存する。そして、制御部101は、取得要求枚数分(100枚)のコンテンツデータ情報から情報リストを生成する。制御部101は情報リストを作業用メモリ104に保存し終えた後、スマートフォン200から指定されたソート条件に従って、作業用メモリ104内でコンテンツデータ情報をソートする。
S611において、制御部101は、作業用メモリ104に一時保存した、ソート済みのコンテンツデータ情報リストからレスポンス用データを生成し、通信部111を介してスマートフォン200に送信する。このように、本実施形態においてコンテンツデータの送信装置は、取得要求数分のコンテンツデータ情報をまとめて応答する。例えば、コンテンツデータの送信プロトコルとして従来用いられているPTP(PictureTransferProtocol)を用いた場合、コンテンツデータごとに情報を要求する必要がある。従って、コンテンツデータの数に等しい回数、要求の送信と応答の受信を繰り返さなければならない。また、従来のプロトコルにおいて、コンテンツID(PTPではオブジェクトハンドル)は、コンテンツデータファイルが生成されるごとに割り当てられるため、基本的には古いコンテンツデータから順に割り当てられる。従って、指定するソート順に情報を取得したい場合、クライアント(要求装置)側で要求する順序を決定しなければならない。これに対し、本実施形態では、要求装置からは取得要求数のみを指定してコンテンツデータの情報を1回要求するだけで、指定したソート順に、かつ取得要求数分の情報(IDおよび基本情報)が取得できる。そのため、複数のコンテンツデータファイルの情報を取得するために必要な処理負荷および時間を大幅に削減することができる。
S612において、スマートフォン200の制御部201は、S611のレスポンスによって取得したコンテンツデータ情報リストを参照し、表示対象のコンテンツデータを特定する情報(ID)を取得する。そして、制御部201は、引数のIDに、表示対象のコンテンツデータファイルのIDを指定したコンテンツデータファイルの取得API304(RequestChunkedContentData)をリクエストする。本実施形態では、スマートフォン200の表示部206に、ファイル名順の昇順にコンテンツデータのサムネイル一覧を表示するものとする。そのため、制御部201は、リクエストするAPIの引数のコンテンツサイズに、サムネイル画像を取得するためのパラメータを指定する。
S613においてデジタルカメラ100の制御部101は、通信部111を介してAPI304(RequestChunkedContentData)のリクエストを受信したことを検知する。制御部101は、S610と同様に、コンテンツ情報から情報リストを生成し、スマートフォン300から指定されたソート条件に従って、作業用メモリ104内でコンテンツデータ情報をソートする。ここで、S610のソート結果を流用してソート処理を省略してもよい。制御部101は、S610のソート結果に管理IDを割り振り、その管理IDをS611でスマートフォン200へ通知する。S612でAPIの引数にソート結果の管理IDを指定できるようにすることで、ソート結果を流用することが可能である。
S614において、制御部101は、リクエストされたAPIに対応するプログラムを実行することにより、APIの引数を参照し、指定された基準となるコンテンツIDのコンテンツデータファイルおよび、指定されたコンテンツデータの詳細情報をレスポンス用のChunkデータ形式で記述し、通信部111を介してスマートフォン200に送信する。
ここで、APIの引数に指定されたコンテンツサイズのコンテンツデータ(サムネイル画像)がコンテンツデータファイルに内包されている場合、制御部101はその部分のみを抽出する。一方、サムネイル画像がコンテンツデータファイルに含まれていない場合、制御部101はコンテンツデータを指定されたサイズに加工して使用する。
複数枚の要求がある場合、制御部101は、S613で作成したソート結果から、次に送信するコンテンツIDを取得し、同様にコンテンツデータファイルおよびコンテンツデータの詳細情報をレスポンス用のChunkデータ形式で記述し、通信部111を介してスマートフォン200に送信していく。制御部101は、この処理を取得要求枚数分繰り返し、最後にChunk送信の終了を表す"0"をレスポンス用データに記述し送信し、この処理を終了する。
S615において、スマートフォン200は通信部211を介してChunkデータを受信する。受信したデータは制御部201によって個々のコンテンツデータファイルおよびコンテンツデータ情報に分割され、分割したデータは作業用メモリ204で一時的に保持する。制御部201は保持したコンテンツデータを使用し、コンテンツ一覧画面の生成を行う。そして、制御部201は、生成したコンテンツ一覧画面を表示部206に表示させる。
なお、本実施形態では、スマートフォン200はS614におけるデジタルカメラ100からのコンテンツデータの受信完了を待たずに、S614においてコンテンツ一覧画面の表示を開始してもよい。
また、本実施形態では、S609でコンテンツ一覧の要求、S612でコンテンツデータの要求と処理を2つに分けたが、2つの機能を合わせたAPIを用意して1度の要求でコンテンツデータの取得まで行えるようにしてもよい。こうすることで、スマートフォン200からデジタルカメラ100に送られるリクエストの数をより減らすことができる。本実施形態でS609とS612に分けた理由としては、コンテンツ一覧を事前に取得することで、コンテンツ一覧画面の構成を作成しやすくするためである。事前にコンテンツの並びや配置を想定できるため、仮ファイルなどで先に画面を形成できる。そのあとで、S612で要求したコンテンツデータファイルを受信してから、該当する位置に差し替えることでコンテンツ一覧画面は完成する。
<デジタルカメラ100の動作>
図7A,7Bは、図6シーケンスチャートにおけるデジタルカメラ100の処理を取り出して示したフローチャートである。なお、以下の説明において、図6の説明と重複する説明は省略する。
S701において、制御部101は、通信部111を通じてスマートフォン200の通信部211と通信し、無線ローカルエリアネットワーク(LAN)接続を確立する。本処理はS601におけるデジタルカメラ100の処理に相当する。
S702において制御部101は、ディスカバリ処理を行う。本処理は、S402におけるデジタルカメラ100の処理に相当する。
S703において制御部101は、通信部111を介してAPIのリクエストを受信したか否かを判定し、受信していれば処理をS704に進め、受信していなければS703の処理を繰り返す。
S704において制御部101は、API301(RequestProductInfo)のリクエストを受信したか否かを判定し、受信していれば処理をS705に進め、受信していなければ処理をS708に進める。
S705において制御部101は、API301に対応する処理を実行する。本処理は、S604におけるデジタルカメラ100の処理に相当する。
S706において制御部101は、API301の実行により取得された情報・データを、スマートフォン200へレスポンスとして送信するための所定のデータ形式にしたのち、通信部111を通じてスマートフォン200に送信する。
S707において制御部101は、APIサービスを終了する指示を受信したか否かを判定し、受信していればAPIサービスを実行するためのプログラムを終了する。APIサービスを終了する指示を受信していなければ、制御部101は処理をS703に戻して次のAPIリクエストの受信を待機する。
S708において制御部101は、API302(RequestMemoryInfo)のリクエストを受信したか否かを判定し、受信していれば処理をS709に進め、受信していなければ処理をS710に進める。S709において制御部101は、API302の処理を実行する。本処理は、S606におけるデジタルカメラ100の処理に相当する。
S710において制御部101は、API303(RequestContentInfo)のリクエストを受信したか否かを判定し、受信していれば処理をS711に進め、受信していなければ処理をS714に進める。S711において制御部101は、API303のリクエスト引数を確認する。S712において制御部101は、確認した引数に基づいてコンテンツデータの情報を取得する。そして、S713において制御部101は、取得したコンテンツデータ情報を、リクエストされたソート順に並べ替える。このS711,S712,S713の処理は図6のS610におけるデジタルカメラ100の処理に相当する。
S714において制御部101は、API305(RequestContent)のリクエストを受信したか否かを判定し、受信していれば処理をS715に進め、受信していなければ処理をS717に進める。S715において制御部101は、API305のリクエスト引数を確認する。S716において制御部101は、リクエスト引数に基づいてコンテンツデータファイルを記録媒体110から取得し、作業用メモリ104に展開する。また、制御部101は、必要に応じて、リクエスト引数で指定されたサイズにコンテンツデータを加工する。
S717において制御部101は、API306(RequestContentDetailInfo)のリクエストを受信したか否かを判定し、受信していれば処理をS718に進め、受信していなければ処理をS720に進める。S718において制御部101は、API306のリクエスト引数を確認する。S719において制御部101は、リクエスト引数に基づいてコンテンツデータの詳細情報を例えばコンテンツデータファイルのヘッダから取得し、作業用メモリ104に展開する。
S720において制御部101は、API304(RequestChunkedContentData)のリクエストを受信したか否かを判定し、受信していれば処理をS721に進め、受信していなければ処理をS722に進める。このS721の詳細は後述する。
S722において制御部101は、デジタルカメラ100がAPIサービスとして用意していないAPIをスマートフォン200がリクエストしたと判定し、エラーである旨をレスポンスとして通信部111を通じてスマートフォン200に送信する。
図7Bは、API304(RequestChunkedContentData)のリクエストを受信したときのデジタルカメラ100の処理(S721)を表したフロー図である。
S731において制御部101は、API304のリクエスト引数を確認する。S732において制御部101は、確認した引数に基づいてコンテンツデータの情報を取得する。S733において制御部101は、確認した引数に基づいてコンテンツデータをソートする。これらS731,S732,S733は図6のS613におけるデジタルカメラ100の処理に相当する。
S734において制御部101は、未送信コンテンツがあるか確認をする。未送信コンテンツがある場合は処理をS735へ進め、未送信コンテンツがない場合つまり取得要求枚数分コンテンツデータをすべて送信した場合は、処理をS740へ進める。
S735において制御部101は、ソート結果に基づき、コンテンツデータファイルを読み込む。S736において制御部101は、読み込んだコンテンツデータファイルをレスポンス用のChunkデータ形式で記述し、通信部111を介してスマートフォン200に送信する。
S737において制御部101は、コンテンツデータの詳細情報の取得の要求に対して、未送信な詳細情報があるかを確認する。未送信な詳細情報がある場合は、処理をS738へ進める。未送信な詳細情報がない場合は、処理をS734へ進め、再び未送信コンテンツの有無について確認をする。
S738において制御部101は、要求されたコンテンツデータの詳細情報を読み込む。S739において制御部101は、読み込んだコンテンツデータの詳細情報をレスポンス用のChunkデータ形式で記述し、通信部111を介してスマートフォン200に送信する。送信後、処理をS737へ進め、再び未送信なコンテンツデータの詳細情報の有無を確認する。
S740において制御部101は、Chunk送信の終了を表す"0"をレスポンス用データに記述し、通信部111を介してスマートフォン200に送信し、処理を終了する。S734からS740までの処理は、図6のS614におけるデジタルカメラ100の処理に相当する。
なお、本実施形態では、図3で説明したAPI301〜304をAPIサービスとして提供することを前提に説明したが、APIサービスで提供するAPIの種類はこれらに限定されない。例えば、「リモート撮影をする」および「カメラの設定をする」等の連係動作を実現するためのAPIが提供されてもよい。新たなAPIの提供はデジタルカメラ100で実行するAPIプログラムの追加により実現可能である。
<スマートフォン200の動作>
図8Aは、図6のシーケンスチャートにおけるスマートフォン200の処理を取り出して示したフローチャートである。以下の説明において、図6の説明と重複する説明は省略する。以下の動作は、スマートフォン200の制御部201が不揮発性メモリ203にインストールされている、デジタルカメラ100との連係動作用アプリケーション(通信アプリ)を実行することにより実現される。
S801において、制御部201は、通信部211を通じてデジタルカメラ100の通信部111と通信し、無線ローカルエリアネットワーク(LAN)接続を確立する。本処理はS601におけるスマートフォン200の処理に相当する。
S802において制御部201は、ディスカバリ処理を行う。本処理は、S602におけるスマートフォン200の処理に相当する。
S803において制御部201は、API301(RequestProductInfo)のリクエストをデジタルカメラ100に送信する。本処理は、S603におけるスマートフォン200の処理に相当する。
S804において制御部201は、リクエストしたAPIのレスポンスの受信を待機する。図8Bは、このレスポンス待機処理のフローチャートである。
S821にて制御部201は、APIのレスポンスを受信したか否か判定し、受信していればS822に、受信していなければS823に、それぞれ処理を進める。
S822において制御部201は、受信したレスポンスを解析し、必要に応じて作業用メモリ204に保存し、その後のAPIリクエストに用いる引数として参照したり、UI表示時の情報として利用したりする。なお、受信したレスポンスがエラーを示すものであれば、制御部201はAPIの再リクエストを行うか、デジタルカメラ100との連携動作のためのアプリケーションプログラムを終了する。
S823において制御部201は、予め設定されたタイムアップの時間が経過したか否かを判定する。本実施形態では、APIリクエストの送信からレスポンスを受信するまでの待ち時間の上限がタイムアップ時間として予め設定され、デジタルカメラ100のからレスポンスを受信する前にタイムアップ時間が経過すると、制御部201は処理をS824に進める。APIリクエストからタイムアップ時間が経過していなければ、制御部201は処理をS821に戻す。
S824で制御部201は、表示部206にエラーメッセージを表示し、APIリクエストが正常に実行されなかったことをユーザに報知する。この場合、エラーメッセージの表示画面からデジタルカメラ100との連携動作の再試行をユーザが指定できるようにし、再試行指示があればS803に処理を戻してもよい。また、処理を中止する旨の指示があれば、図8Aの処理を終了してもよい。なお、上記は、S804におけるレスポンス待機処理として説明したが、レスポンス待機処理はS804だけでなく、制御部201がデジタルカメラ100に要求を送信した場合のその応答を待つ処理であるので、S804のみではなく、後述するS806、S810などでも同様のものとなる点に注意されたい。
図8Aの説明に戻る。次に、S805において制御部201は、API302(RequestMemoryInfo)のリクエストをデジタルカメラ100に送信する。本処理は、S605におけるスマートフォン200の処理に相当する。そして、S806において制御部201は、S804と同様に、リクエストしたAPIのレスポンス受信を待機する。ここでの待機処理では、S824で再試行指示があった場合、S805から再試行する。
S807において制御部201は、表示部206にメニュー画面を表示する。本処理はS607におけるスマートフォン200の処理に相当する。
S808において制御部201は、ユーザ操作によりコンテンツ一覧表示を指示されたか否かを判定する。本実施形態において制御部201は、メニュー画面の「カメラ内の画像を見る」ボタンが選択されたか否かを判定し、選択された場合には処理をS809に進め、選択されていなければ選択されるまで待機する。
S809において制御部201は、API303(RequestContentInfo)のリクエストをデジタルカメラ100に送信する。本処理は、図6のS609におけるスマートフォン200の処理に相当する。
S810において制御部201は、S804と同様に、リクエストしたAPIのレスポンス受信を待機する。ここでの待機処理では、S824で再試行指示があった場合、S809から再試行する。
S811において制御部201は、API304(RequestChunkedContentData)のリクエストをデジタルカメラ100に送信する。本処理は、図6のS612におけるスマートフォン200の処理に相当する。
S812において制御部201は、S804と同様に、リクエストしたAPIのレスポンス受信を待機する。ここでの待機処理では、S824で再試行指示があった場合、S811から再試行する。
S813において制御部201は、S812で受信したレスポンスのデータがChunk送信の終了を表す"0"であるかを確認する。"0"であった場合、処理を終了する。"0"でなかった場合、処理をS814へ進める。
S814において制御部201は、S812で受信したレスポンスのデータからコンテンツデータファイルを取得し、作業用メモリ204へ保存する。
S815において制御部201は、作業用メモリ204へ保存したコンテンツデータファイルを用いてコンテンツデータ一覧画面を更新し、表示部206に表示する。
S816において制御部201は、コンテンツデータの詳細情報の取得の要求に対して、未取得な詳細情報があるかを確認する。未取得な詳細情報がある場合は、処理をS817へ進める。未取得な詳細情報がない場合は、処理をS813へ進め、再びレスポンスデータがChunk送信の終了を表す"0"であるかを確認する。
S817において制御部201は、レスポンスデータからコンテンツデータの詳細情報を取得し、作業用メモリ204へ保存する。S818において制御部201は、作業用メモリ204へ保存したコンテンツデータの詳細情報を用いてコンテンツデータ一覧画面を更新し、表示部206に表示する。更新後は処理をS816へ進め、再び未取得なコンテンツデータの詳細情報があるかを確認する。
S812からS818の処理は、図6のS615におけるスマートフォン200の処理に相当する。
以上説明したように本実施形態によれば、コンテンツデータを有し、提供する側の電子機器(実施形態ではデジタルカメラ100)が、1つのAPIリクエストに応じて、複数のコンテンツデータのIDおよび基本情報をまとめて取得可能なサービスを外部装置に提供するようにした。そのため、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。
コンテンツ一覧画面は表示内容の変更が頻繁に行われることが多く、外部装置がコンテンツ要求を行う回数も多い。コンテンツ一覧画面のデータ送信をChunkに変更することによるリクエスト回数の削減効果は大きいと考えられる。
コンテンツ一覧画面が表示内容を変更する場合について、第2の実施形態で説明する。また、コンテンツ一覧画面が表示部より大きく、スクロール移動などの操作が必要な場合について、第3の実施形態にて説明する。
[第2の実施形態]
次に、第2の実施形態について説明する。上記の第1の実施形態では、スマートフォン200から複数コンテンツの取得要求を出し、コンテンツ一覧画面を表示するまでの流れについて説明した。本第2の実施形態では、スマートフォン200から表示設定変更を行った場合の流れについて説明する。
表示設定の変更の例としては、図5(a)の画面にてボタン504を操作することで表示される図5(b)のメニュー画面にて、ユーザが必要とする項目に対して値や状態を設定することが挙げられる。スマートフォン200は、通常、表示設定変更に基づく引数を持つAPIを、デジタルカメラ100へコンテンツデータの再取得要求として送信する。この時、再取得するコンテンツデータを最小限にすることで、データ取得の時間を短くでき、コンテンツ一覧画面作成までの時間を早めることができる。既に取得したコンテンツデータを再利用することで、新たに取得するコンテンツデータ量を抑えることができる。
表示していた情報を非表示に変更するなど、表示形式の設定変更により、新たにコンテンツデータファイルおよびコンテンツデータ情報が必要ない場合は、デジタルカメラ100に対し、改めてコンテンツデータの取得要求を出す必要はない。具体的には、図5(b)において、ファイル名表示、ファイルサイズ表示、撮影日時表示、位置情報表示などのコンテンツデータの詳細情報を「入」から「切」に変更したときがこのケースに該当する。また、サムネイル表示数を少なく変更した場合もこのケースに該当する。
表示するコンテンツ一覧の範囲の変更や表示する情報の追加など、表示設定変更により、新たにコンテンツデータファイルおよびコンテンツデータ情報が必要になる場合は、デジタルカメラ100に対して、改めてコンテンツデータの取得要求を出す必要がある。具体的には、受信したコンテンツデータに含まれない項目(例えばファイル名)についてその項目に対して「切」から「入」に変更したケース、サムネイル表示数を大きく変更したケース、更には、図5(a)のボタン504を用いた表示ページの移動したケースなどがこれに該当する。
図5(b)で表示方法をファイル名順から撮影日時順に変更した場合など、コンテンツ一覧のソート結果自体に変更が発生する場合は、コンテンツデータの再取得の前に、コンテンツ一覧の再取得も必要である。
また、コンテンツ一覧画面作成途中の状態の時に、コンテンツデータの取得要求を出す場合、スマートフォン200はデジタルカメラ100対し、取得中のコンテンツデータのキャンセル処理を行う必要がある。キャンセルを行うことで、コンテンツデータの取得完了を待つ必要がなくなり、表示設定変更後のコンテンツ一覧画面作成までの時間を短縮することができる。
デジタルカメラ100およびスマートデバイス200の構成については第1の実施形態と共通でよいため説明を省略する。
<デジタルカメラ100の動作>
本第2の実施形態におけるデジタルカメラ100側の処理を図9Aのフローチャートに示す。第1の実施形態の図7Bと異なるのは、S900が追加された点であり、これ以外は第1の実施形態と同じである。それ故、S900以外については、図7Bと同参照符号を付し、その説明は省略する。
図9Aのフローチャートに示によれば、デジタルカメラ100の制御部201は、コンテンツデータをスマートフォン200に転送中、S900にて、スマートフォン200からのキャンセル要求を受信したか否かを判定する。そして制御部201は、キャンセル要求を受信したと判定した場合、処理をS740に進め、否の場合には処理をS737に進める。
<スマートフォン200の表示設定変更時の動作>
図9Bは、第2の実施形態における、コンテンツ一覧画面の表示設定を変更したときのスマートフォン200の処理を取り出して示したフローチャートである。以下に説明する処理は、制御部201が、スマートフォン200にインストールされている、デジタルカメラ100との連係動作用アプリケーション(通信アプリ)を実行することにより実現される。
S901において、制御部201は、表示コンテンツ変更の有無を確認する。表示コンテンツの変更の例としては、図5(a)の次ページの一覧表示を行うためのボタン504を用いた表示ページの移動や、図5(b)表示設定変更画面の操作などが挙げられる。表示コンテンツの変更がない場合、処理を終了する。変更がある場合、処理をS902へ進める。
S902において、制御部201は、表示コンテンツのソート変更の有無を確認する。ソートの変更とは、コンテンツのソートをファイル名順や撮影日時順など変更することを意味する。変更がある場合は、API303(RequestContentInfo)を用いてコンテンツ一覧(ソート結果)を取得しなおす必要がある。またここで、事前に取得しているコンテンツ一覧をスマートフォン200自身でソートし直すことで、コンテンツ一覧の再取得処理を省略してもよい。表示順番(昇順、降順)の変更のみの場合は、コンテンツ一覧の再取得を省略したほうが、処理の負荷は少ない。
表示コンテンツのソート変更がない場合は、制御部201は処理をS903へ進める。また、表示コンテンツのソート変更がある場合は、制御部201は処理をS906へ進める。
S903おいて、制御部201は、表示設定変更前と後を比較して、デジタルカメラ100に要求していないコンテンツデータの有無を判定する。未要求のコンテンツデータがある場合は、制御部201は処理をS904へ進める。未要求のコンテンツデータがない場合は、制御部201は処理をS913へ進め、画面を更新して処理を終了する。
S904おいて、制御部201は、デジタルカメラ100からコンテントデータを取得中か否かを確認する。取得中でない場合は、処理をS910へ進める。取得中である場合は、処理をS905へ進め、コンテントデータの取得のキャンセルするため、キャンセル要求をデジタルカメラ100に送信した後、処理をS910へ進める。
S906おいて、制御部201は、デジタルカメラ100からコンテントデータを取得中か否かを確認する。取得中でない場合は、処理をS908へ進める。取得中である場合は、処理をS907へ進め、コンテントデータの取得をキャンセルするため、キャンセル要求をデジタルカメラ100に送信した後、処理をS908へ進める。
S908において、制御部201は、API303(RequestContentInfo)のリクエストをデジタルカメラ100に送信する。S908は図8のS809と同様なため説明を省略する。この送信後、制御部201は処理をS909へ進める。
S909において、制御部201は、リクエストしたAPIのレスポンス受信を待機する。S909は図8のS810と同様なため説明は省略する。受信後、制御部201は処理をS910へ進める。
S910において制御部201は、API304(RequestChunkedContentData)のリクエストをデジタルカメラ100に送信する。このS910は図8のS811と同様なため説明を省略する。このリクエストの送信後、制御部201は、処理をS911へ進める。
S911において、制御部201は、リクエストしたAPIのレスポンス受信を待機する。S911は図8のS812と同様なため、説明は省略する。受信後、制御部201は、処理をS912へ進める。
S912において、制御部201は、受信したレスポンスデータをパースし、コンテンツデータファイルおよびコンテンツデータ情報を取得する。さらに取得したデータを用いてコンテンツ一覧画面を更新する。S912の処理は、図8のS813からS818に該当する。ここでの説明は省略する。
<コンテンツ一覧画面作成時の通信シーケンス>
コンテンツデータ受信中に、コンテンツ一覧画面の表示設定を変更したときの動作を、図10のシーケンス図を参照して以下に説明する。なお、本第2の実施形態では、コンテンツデータが画像ファイルである場合を説明するが、音声ファイルなど、他の種類のファイルであっても同様に処理できる。
本シーケンスはコンテンツデータの取得中の状態から始まる。
図10のS1001からS1004は、図6のS612からS615に該当し、スマートフォン200からデジタルカメラ100へのコンテンツデータの要求および、デジタルカメラ100からスマートフォン200へのコンテンツデータ送信、スマートフォン200の画面更新のシーケンスを表している。これらは図6と同様なため、ここでの説明は省略する。また、本第2の実施形態では、S1004においてコンテンツデータの取得は完了していないものとする。
S1005において、スマートフォン200の制御部201は、表示コンテンツの変更の指示を検知する。本処理は図9BのS901に相当する。ここでは、図5(b)の表示設定画面の操作により、表示方法を変更したものとして説明を続ける。
S1006において、スマートフォン200の制御部201は、表示コンテンツのソート変更有無を確認する。本処理は図9BのS902に相当する。制御部201は表示設定変更前の設定内容と、法事設定変更後の設定内容を比較し、表示方法の変更があったことを検知する。表示方法の変更によりソート変更必要ありとして、コンテンツ一覧の再取得を試みる。
S1007において、スマートフォン200の制御部201は、コンテンツデータの受信処理中の有無を確認し、受信中である場合は、コンテンツデータ送信処理のキャンセル要求をデジタルカメラ100に送信する。この処理は図9BのS906およびS907に相当する。
S1008において、デジタルカメラ100の制御部101は、スマートフォン200から通知された送信キャンセルを検知し、データ転送を終了する。この処理は図9AのS900がYES→S740に相当する。
S1009において、デジタルカメラ100の制御部101は、Chunk送信の終了を表す"0"をレスポンス用データに記述し、通信部111を介してスマートフォン200に送信し、処理を終了する。
スマートフォン200の制御部201は、コンテンツデータの送信がキャンセルされたことを確認し、S1010において、API、RequestContentInfo303をデジタルカメラ100に再リクエストする。S1010以降の処理は、図6のS609以降の処理と同様なため説明は省略する。
以上説明したように本第2の実施形態によれば、コンテンツ一覧画面が表示内容を変更する場合についても、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。
引き続き、コンテンツ一覧画面が表示部より大きく、スクロール移動などの操作が必要な場合に対処した例を、第3の実施形態として説明する。
[第3の実施形態]
実施形態におけるスマートフォン200の表示部206のサイズは当然ながら有限であり、一度に表示できるコンテンツ数に上限がある。それ故、スマートフォン200がデジタルカメラ100に対して、その上限を超える数のコンテンツを要求した場合、全受信コンテンツの一部を、スクロールバー付きのコンテンツ一覧として表示する。実施形態によれば、コンテンツデータは要求したソート条件に従って順番に送られてくるため、取得要求枚数が多い場合、順番が遅いコンテンツデータの取得開始にはある程度の遅延が生じる。通信速度やスクロールバーの移動速度によっては、表示位置のコンテンツデータが未取得の状態になっていることも考えられる。この場合、未取得のコンテンツは非表示状態となり、利用者はコンテンツの内容を閲覧することができない。この問題を解決する公知な手法として、一定以上のスクロールの移動距離を検知してデータ取得をキャンセルし、スクロールの移動が停止したことを検知して、そのスクロール位置の表示に必要なデータから取得を再開するという手法が知られている。本実施形態では、この手法に、本提案のChunkを用いたデータ送信方法を利用し、スマートフォン200からデジタルカメラ100への取得要求の数を抑える。
<コンテンツ一覧画面の動作>
図11(a)乃至(c)は、コンテンツ一覧画面をスクロール操作したときの様子を表した図である。
図11(a)は、コンテンツ一覧画面のスクロールバーの操作を開始した様子を表している。この例では、コンテンツデータはファイル名順に昇順で取得されている例を示している。IMG_0001.JPGからIMG_0004.JPGのコンテンツデータファイルは取得済みであるため、コンテンツ一覧画面1101上にサムネイルとして表示されている。IMG_0005.JPG以降は、コンテンツデータファイルが未取得な状態であるため、非表示状態を表すアイコン1102を表示している。図11(a)の画面の右端にはスクロールバー1103が設置されている。
図11(b)は、スクロールバーを下に移動した状態を表している。表示範囲にあるコンテンツデータはすべて未取得(未受信)な状態であり、サムネイルはすべて非表示状態である。このとき、制御部201は、スクロールバーの移動距離が予め設定された閾値以上になったか否かを判定する。
例えば、現在、取得したコンテンツが100個中の4つまでであり、スクロール後の一覧表示する左上隅の位置に最も近いコンテンツがN番目であった場合、制御部201は、『N−4』を移動距離として認定する。そして、スマートフォン200の制御部201は、この「N−4」と予め設定された正の閾値とを比較することで、移動距離が閾値以上になったか否かを判定する。スクロールの移動距離が閾値以上となった場合、制御部201は、デジタルカメラ100に対して、コンテンツデータの送信をキャンセルする。
図11(c)は、スクロールバーの操作を終了した状態を表している。スマートフォンの制御部201はスクロールバーの操作停止を検知し、表示範囲に位置するコンテンツを特定する。この表示範囲に位置するコンテンツをはじめに取得要求することで、表示範囲にいち早くサムネイルを表示することができる。またこの時、事前のスクロール操作の方向について考慮するとよい。この例では事前にスクロールを下方向に操作しており、今後も下方向に操作される可能性が高い。コンテンツ表示画面の上から下に向かって順番にコンテンツを取得することで、表示範囲にあるコンテンツが再び未取得状態になることを防げる。この例の場合、制御部201は、ファイル名順に昇順、“IMG_0091.JPG”を基準(複数ファイルのうちの最初のファイル)として、その基準ファイル以降のファイルのコンテンツ取得要求を送信する。また、スクロールを上方向に移動した場合は、表示範囲の下から上に向かってコンテンツデータの取得要求を出せば同様の効果を得られる。
<コンテンツ一覧画面作成時の通信シーケンス>
本第3の実施形態は、第2の実施形態と共通のシーケンスで実現可能である。コンテンツデータ送信中に、後述するスマートフォン200のスクロール操作があった場合は、スマートフォン200からデジタルカメラ100に転送キャンセルを要求する。この場合、図10のS1005は「スクロール操作による表示コンテンツの変更指示の検知」を意味することになる。また、コンテンツ再取得要求に関しては、S1010以降の処理と同様である。
<デジタルカメラ100の動作>
本第3の実施形態におけるデジタルカメラ100の処理は、第2の実施形態で示した図9Aと同じでよい。つまり、デジタルカメラ100の制御部201は、コンテンツデータをスマートフォン200に転送中、S900にて、スマートフォン200からのキャンセル要求を受信したか否かを判定する。そして制御部201は、キャンセル要求を受信したと判定した場合、処理をS740に進め、否の場合には処理をS737に進め、送信処理を終了する。
<スマートフォン200のスクロール操作時の動作>
図12は、第3の実施形態における、コンテンツ一覧画面のスクロールバーの操作をしたときのスマートフォン200の処理を示すフローチャートである。以下の動作は、制御部201がスマートフォン200にインストールされている、デジタルカメラ100との連係動作用アプリケーション(通信アプリ)を実行することにより実現される。
S1201において、スマートフォン200の制御部201は、スクロールバー操作の検知を行う。本処理は図10のS1005に相当する。スクロールバーの移動距離が所定の閾値以上だった場合、制御部201は処理をS1202へ進める。閾値未満の場合、処理を終了する。移動距離判定のための閾値は経験から静的に固定値を設定してもいいし、その時の通信速度などを考慮して、動的に変更してもよい。スクロール後の表示部206に表示されるべき、コンテンツのアイコンの全てが未取得状態になったことを条件としてもよい。
S1202において、制御部201は、コンテンツデータを取得中か否かを判定する。コンテンツデータを取得中の場合は、制御部201は、処理をS1203へ進め、コンテンツデータの取得をキャンセルするため、キャンセル要求をデジタルカメラ100に送信する。また、取得中でない場合は、制御部201は、処理をS1204へ進める。
S1204において、制御部201は、スクロール操作が停止しているかを確認する。スクロール操作が停止したと判定した場合、制御部201は、処理をS1205へ進める。このとき最後に操作されたスクロール方向を作業メモリ204へ記録しておく。
S1205において、制御部201は、デジタルカメラ100へリクエストするコンテンツデータの要求条件を決定する。コンテンツデータの要求条件とは、具体的には、API304(RequesChunkedContentData)で使用する引数のことである。制御部201は、S1204で作業用メモリに記録した、最後に操作されたスクロール方向から、ソート方向を決定し、コンテンツ一覧画面の表示範囲から、初めに取得する基準となるコンテンツIDを決定する。要求条件が決定すると、制御部201は、処理をS1206へ進める。
S1206において、制御部201は、API304のリクエストをデジタルカメラ100に送信する。送信後、制御部201は、処理をS1207へ進める。
S1207において、制御部201は、リクエストしたAPIのレスポンス受信を待機する。受信後、制御部201は処理をS1208へ進める。
S1208において、制御部201は、受信したレスポンスデータをパースし、コンテンツデータファイルおよびコンテンツデータ情報を取得する。さらに取得したデータを用いてコンテンツ一覧画面を更新する。
S1206からS1208の処理は、図9BのS910からS912と同様であるため、ここでの説明は省略する。
以上説明したように本第3の実施形態によれば、コンテンツ一覧画面が表示内容を変更する場合についても、外部装置が複数のコンテンツデータの情報を取得するのに必要な要求回数を減らすことができる。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施形態においては、送信対象を画像として説明したが、これに限る必要はない。たとえば、音声ファイルや文書ファイルなど、クライアント機器とサーバ機器の間でやりとりできるファイルであれば何でもよい。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100…デジタルカメラ、101…制御部、102…撮像部、103…不揮発性メモリ、110…記録媒体、111…接続部、200…スマートフォン、201…制御部、211…接続部、205…操作部、206…表示部

Claims (12)

  1. 複数のファイルを記憶可能な記憶手段を有する電子機器であって、
    外部装置と通信するための通信手段と、
    前記通信手段を介して、前記記憶手段に記憶されたファイルの閲覧に関する要求を前記外部装置から受信した場合、当該要求の種類に応じた情報を生成し、前記外部装置に応答として送信すする応答手段と有し、
    前記応答手段は、
    受信した要求が、前記記憶手段に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定手段と、
    該判定手段により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した1つのチャンクを生成する生成手段と、
    該生成手段で生成した前記チャンクを、前記要求の応答として送信する送信手段と
    を含むことを特徴とする電子機器。
  2. 前記複数のファイルに関する情報の要求には、少なくとも、ファイルのソートの種類を示す情報、および、要求する複数のファイルの最初のファイルのIDが引数として含まれ、
    前記生成手段は、前記引数における前記ソートの種類に従って前記複数のファイルをソートし、前記IDが示すファイル以降について、要求された情報を記述したチャンクを生成する
    ことを特徴とする請求項1に記載の電子機器。
  3. 前記応答手段は、
    前記送信手段で前記チャンクの送信処理を行っている際に、前記外部装置からキャンセル要求を受信した場合、前記チャンクの送信処理を終了する手段を更に有することを特徴とする請求項1又は2に記載の電子機器。
  4. 撮像手段と、該撮像手段で撮像して得た画像データを、前記ファイルとして前記記憶手段に格納する格納手段とを更に備えることを特徴とする請求項1乃至3のいずれか1項に記載の電子機器。
  5. 外部装置と通信するための通信手段を有し、当該通信手段を介して前記外部装置が記憶保持しているファイルを閲覧する電子機器であって、
    前記外部装置が有するファイルについて、一覧表示する際の表示形式に関する情報を設定する設定手段と、
    該設定手段による設定に従った要求を前記外部装置に送信し、当該送信の応答情報を受信することで前記外部装置から情報を取得する取得手段と、
    該取得手段で取得した情報に基づき、前記外部装置が有する前記ファイルの一覧を表示する表示制御手段とを有し、
    前記取得手段は、
    表示形式を特定する情報を引数とし、一度の要求で複数のファイルに関する情報を取得するための所定の要求コマンドを前記外部装置に送信したとき、当該要求コマンドに応じて受信したチャンクを取得し、
    前記表示制御手段は、
    受信した前記チャンクに含まれる個々のファイルに関する情報から、前記複数のファイルの一覧表する画面を生成し、表示する
    ことを特徴とする電子機器。
  6. 前記設定手段は、一覧表示する際のソートの種類、予め設定された項目の表示、非表示を設定することを特徴とする請求項5に記載の電子機器。
  7. 前記取得手段により前記チャンクを受信中に、ユーザによる、予め設定された操作があった場合、送信のキャンセル要求を送信する手段を更に有することを特徴とする請求項5又は6に記載の電子機器。
  8. 前記予め設定された操作は、前記設定手段による表示形式の変更の操作、または、受信中の前記チャンクによる一覧表示の処理中における未受信のファイルが表示されるべき位置へのスクロールの操作が含まれることを特徴とする請求項7に記載の電子機器。
  9. 複数のファイルを記憶可能な記憶手段と外部装置と通信するための通信手段とを有する電子機器の制御方法であって、
    前記通信手段を介して、前記記憶手段に記憶されたファイルの閲覧に関する要求を前記外部装置から受信した場合、当該要求の種類に応じた情報を生成し、前記外部装置に応答として送信すする応答工程と有し、
    前記応答工程は、
    受信した要求が、前記記憶手段に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定工程と、
    該判定工程により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した1つのチャンクを生成する生成工程と、
    該生成工程で生成した前記チャンクを、前記要求の応答として送信する送信工程と
    を含むことを特徴とする電子機器の制御方法。
  10. 外部装置と通信するための通信手段を有し、当該通信手段を介して前記外部装置が記憶保持しているファイルを閲覧する電子機器の制御方法であって、
    前記外部装置が有するファイルについて、一覧表示する際の表示形式に関する情報を設定する設定工程と、
    該設定工程による設定に従った要求を前記外部装置に送信し、当該送信の応答情報を受信することで前記外部装置から情報を取得する取得工程と、
    該取得工程で取得した情報に基づき、前記外部装置が有する前記ファイルの一覧を表示する表示制御工程とを有し、
    前記取得工程は、
    表示形式を特定する情報を引数とし、一度の要求で複数のファイルに関する情報を取得するための所定の要求コマンドを前記外部装置に送信したとき、当該要求コマンドに応じて受信したチャンクを取得し、
    前記表示制御工程は、
    受信した前記チャンクに含まれる個々のファイルに関する情報から、前記複数のファイルの一覧表する画面を生成し、表示する
    ことを特徴とする電子機器の制御方法。
  11. コンピュータが読み込み実行することで、前記コンピュータに、請求項9又は10の記載の方法の各工程を実行させるたけのプログラム。
  12. 情報を提供する側として機能する第1の電子機器、および、前記第1の電子機器が記憶保持している前記複数のファイルを閲覧する側として機能する第2の電子機器で構成される情報処理システムであって、
    前記第1の電子機器は、
    複数のファイルを記憶可能な記憶手段と、
    前記第2の通信手段と通信するための第1の通信手段と、
    該第1の通信手段を介して、前記記憶手段に記憶されたファイルの閲覧に関する要求を前記外部装置から受信した場合、当該要求の種類に応じた情報を生成し、前記外部装置に応答として送信すする応答手段と有し、
    前記第2の電子機器は、
    前記第1の通信手段と通信するための第2の通信手段と、
    前記第1の電子機器が有するファイルについて、一覧表示する際の表示形式に関する情報を設定する設定手段と、
    該設定手段による設定に従った要求を前記第1の電子機器に送信し、当該送信の応答情報を受信することで前記第1の電子機器から情報を取得する取得手段と、
    該取得手段で取得した情報に基づき、前記第1の電子機器が有する前記ファイルの一覧を表示する表示制御手段とを有し、
    前記第1の電子機器の前記応答手段は、
    受信した要求が、前記記憶手段に記憶された複数のファイルに関する情報を要求する種類に属するものであるか否かを判定する判定手段と、
    該判定手段により、受信した要求が複数のファイルに関する情報を要求する種類に属すると判定した場合、該当する複数のファイルについて、要求された情報を記述した1つのチャンクを生成する生成手段と、
    該生成手段で生成した前記チャンクを、前記要求の応答として送信する送信手段とを含み、
    前記第2の電子機器の前記取得手段は、
    表示形式を特定する情報を引数とし、一度の要求で複数のファイルに関する情報を取得するための所定の要求コマンドを前記外部装置に送信したとき、当該要求コマンドに応じて受信したチャンクを取得し、
    前記第2の電子機器の前記表示制御手段は、
    受信した前記チャンクに含まれる個々のファイルに関する情報から、前記複数のファイルの一覧表する画面を生成し、表示する
    ことを特徴とする情報処理システム。
JP2018163620A 2018-08-31 2018-08-31 電子機器及びその制御方法及びプログラム及び情報処理システム Active JP7262191B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018163620A JP7262191B2 (ja) 2018-08-31 2018-08-31 電子機器及びその制御方法及びプログラム及び情報処理システム
US16/541,593 US11269809B2 (en) 2018-08-31 2019-08-15 Electronic device, control method thereof, non-transitory computer-readable storage medium, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018163620A JP7262191B2 (ja) 2018-08-31 2018-08-31 電子機器及びその制御方法及びプログラム及び情報処理システム

Publications (3)

Publication Number Publication Date
JP2020035373A true JP2020035373A (ja) 2020-03-05
JP2020035373A5 JP2020035373A5 (ja) 2021-09-24
JP7262191B2 JP7262191B2 (ja) 2023-04-21

Family

ID=69639381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018163620A Active JP7262191B2 (ja) 2018-08-31 2018-08-31 電子機器及びその制御方法及びプログラム及び情報処理システム

Country Status (2)

Country Link
US (1) US11269809B2 (ja)
JP (1) JP7262191B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7450865B2 (ja) 2022-05-26 2024-03-18 株式会社TeN ユーザ端末、コンピュータ、閲覧データ表示システム、閲覧データ表示方法及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWM619465U (zh) * 2021-06-11 2021-11-11 微星科技股份有限公司 顯示裝置
JP2023028633A (ja) * 2021-08-20 2023-03-03 シャープ株式会社 情報処理装置及び情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218816A (ja) * 1996-02-08 1997-08-19 Toshiba Corp ファイル転送方法
JP2005063412A (ja) * 2003-07-29 2005-03-10 Ricoh Co Ltd 表示データ生成装置、表示装置、表示データ生成システム、表示データ生成装置の制御方法、表示データ生成プログラム、記録媒体、電子装置及び電子装置の制御方法
JP2016053840A (ja) * 2014-09-03 2016-04-14 キヤノン株式会社 電子機器およびその制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5100182B2 (ja) 2007-03-30 2012-12-19 キヤノン株式会社 データ転送装置及びデータ受信装置並びにデータ転送システム
US8260119B2 (en) * 2008-06-10 2012-09-04 Panasonic Corporation Content editing apparatus
US9015139B2 (en) * 2010-05-14 2015-04-21 Rovi Guides, Inc. Systems and methods for performing a search based on a media content snapshot image
US9286641B2 (en) * 2011-10-19 2016-03-15 Facebook, Inc. Automatic photo capture based on social components and identity recognition
EP3105903B1 (en) * 2014-02-13 2019-08-07 Koninklijke KPN N.V. Requesting multiple chunks from a network node on the basis of a single request message
US20150248783A1 (en) * 2014-03-01 2015-09-03 Owen Fayle System and method for processing displayable content tagged with geo-location data for augmented reality modes of viewing
US10313410B2 (en) * 2014-03-21 2019-06-04 Ptc Inc. Systems and methods using binary dynamic rest messages
US9648105B2 (en) * 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218816A (ja) * 1996-02-08 1997-08-19 Toshiba Corp ファイル転送方法
JP2005063412A (ja) * 2003-07-29 2005-03-10 Ricoh Co Ltd 表示データ生成装置、表示装置、表示データ生成システム、表示データ生成装置の制御方法、表示データ生成プログラム、記録媒体、電子装置及び電子装置の制御方法
JP2016053840A (ja) * 2014-09-03 2016-04-14 キヤノン株式会社 電子機器およびその制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7450865B2 (ja) 2022-05-26 2024-03-18 株式会社TeN ユーザ端末、コンピュータ、閲覧データ表示システム、閲覧データ表示方法及びプログラム

Also Published As

Publication number Publication date
JP7262191B2 (ja) 2023-04-21
US11269809B2 (en) 2022-03-08
US20200073853A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
US9826021B2 (en) Communication apparatus and method for controlling the same
JP6360316B2 (ja) 通信装置、その制御方法、及びプログラム
US10063993B2 (en) Communication apparatus capable of mediating wireless communications for external apparatus
JP6504768B2 (ja) 電子機器およびその制御方法
JP7262191B2 (ja) 電子機器及びその制御方法及びプログラム及び情報処理システム
JP6858069B2 (ja) 画像供給装置及び情報処理装置及びそれらの制御方法とプログラム
CN106663068B (zh) 可利用近距离无线通信连接的通信设备及其控制方法和记录介质
JP6415232B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP7175634B2 (ja) 通信装置、制御方法およびプログラム
JP6433231B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP7218164B2 (ja) 通信装置およびその制御方法
JP6391374B2 (ja) 通信装置、通信装置の制御方法、プログラム
US9986145B2 (en) Communication apparatus, control method of communication apparatus, and recording medium
JP6877999B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP2016025374A (ja) 通信装置、通信装置の制御方法、プログラム
JP6386862B2 (ja) 通信装置、通信装置の制御方法、プログラム
JP2017037531A (ja) 通信装置及びその制御方法ならびにプログラム
JP2016058970A (ja) 無線通信装置、無線通信装置の制御方法及びプログラム
JP2019192998A (ja) 通信装置およびその制御方法、プログラム
CN112352465B (zh) 通信设备、通信设备的控制方法和存储介质
JP6956515B2 (ja) 通信システム、並びに、通信装置及びその制御方法及びプログラム
JP2019193069A (ja) 通信装置、その制御方法、およびそのプログラム
JP2018191256A (ja) 通信装置、その制御方法及びプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210816

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221215

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230411

R151 Written notification of patent or utility model registration

Ref document number: 7262191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151