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

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

▶ キヤノン株式会社の特許一覧

特許7418110通信装置、その制御方法、およびそのプログラム
<>
  • 特許-通信装置、その制御方法、およびそのプログラム 図1
  • 特許-通信装置、その制御方法、およびそのプログラム 図2
  • 特許-通信装置、その制御方法、およびそのプログラム 図3
  • 特許-通信装置、その制御方法、およびそのプログラム 図4
  • 特許-通信装置、その制御方法、およびそのプログラム 図5
  • 特許-通信装置、その制御方法、およびそのプログラム 図6
  • 特許-通信装置、その制御方法、およびそのプログラム 図7
  • 特許-通信装置、その制御方法、およびそのプログラム 図8
  • 特許-通信装置、その制御方法、およびそのプログラム 図9
  • 特許-通信装置、その制御方法、およびそのプログラム 図10
  • 特許-通信装置、その制御方法、およびそのプログラム 図11
  • 特許-通信装置、その制御方法、およびそのプログラム 図12
  • 特許-通信装置、その制御方法、およびそのプログラム 図13
  • 特許-通信装置、その制御方法、およびそのプログラム 図14
  • 特許-通信装置、その制御方法、およびそのプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】通信装置、その制御方法、およびそのプログラム
(51)【国際特許分類】
   H04N 25/10 20230101AFI20240112BHJP
   H04N 23/60 20230101ALI20240112BHJP
   H04L 67/06 20220101ALI20240112BHJP
   G06T 3/4015 20240101ALI20240112BHJP
【FI】
H04N25/10
H04N23/60
H04L67/06
G06T3/40 705
【請求項の数】 8
(21)【出願番号】P 2019199105
(22)【出願日】2019-10-31
(65)【公開番号】P2021072571
(43)【公開日】2021-05-06
【審査請求日】2022-10-19
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】米田 直人
(72)【発明者】
【氏名】橘内 健浩
【審査官】三沢 岳志
(56)【参考文献】
【文献】特開2009-044256(JP,A)
【文献】特開2009-081709(JP,A)
【文献】特開2017-162087(JP,A)
【文献】特開2008-219522(JP,A)
【文献】特開2010-081025(JP,A)
【文献】特開2007-142551(JP,A)
【文献】特開2014-158102(JP,A)
【文献】特開2015-171042(JP,A)
【文献】特開2016-005086(JP,A)
【文献】特開2016-184921(JP,A)
【文献】特開2016-127564(JP,A)
【文献】特開2019-036789(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 25/10
H04N 23/60
H04L 67/06
G06T 3/40
(57)【特許請求の範囲】
【請求項1】
他の通信装置と通信する通信手段と、
画像処理手段と、
制御手段と、を有し、
前記制御手段は、RAW画像データから第一の画像データを前記画像処理手段によって生成する機能、および前記第一の画像データから第二の画像データを前記画像処理手段によって生成する機能を制御し、
前記制御手段は、RAW画像データから生成した前記第一の画像データから前記第二の画像データを前記画像処理手段によって生成することによってRAW画像データを現像し、
前記制御手段は、RAW画像データを前記他の通信装置から前記通信手段を介して受信し、
前記制御手段は、前記他の通信装置から受信したRAW画像データから前記第一の画像データを前記画像処理手段によって生成し、
前記制御手段は、前記他の通信装置の画像処理性能が所定の性能以上と判断した場合、前記他の通信装置より受信したRAW画像データから生成した前記第一の画像データを前記通信手段を介して前記他の通信装置へ送信し、
前記制御手段は、前記他の通信装置の画像処理性能が前記所定の性能未満と判断した場合、前記他の通信装置より受信したRAW画像データから生成した前記第一の画像データから前記第二の画像データを前記画像処理手段によって生成し、生成した前記第二の画像データを前記通信手段を介して前記他の通信装置へ送信し、
前記制御手段は、前記第二の画像データを前記他の通信装置へ送信する場合、前記他の通信装置から前記第二の画像データを生成する際に利用するパラメータを前記通信手段を介して受信したことに応じて、前記パラメータを用いて再度前記第二の画像データを前記画像処理手段によって生成し、再度生成した前記第二の画像データを前記通信手段を介して前記他の通信装置へ送信する
ことを特徴とする通信装置。
【請求項2】
前記制御手段は、前記他の通信装置との接続を確立したことに応じて、前記他の通信装置の画像処理性能を前記通信手段を介して受信する
ことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記他の通信装置から受信したRAW画像データを現像する場合、前記他の通信装置の画像処理性能に基づいて、前記他の通信装置の画像処理性能が前記所定の性能以上か所定の性能未満かを判断する
ことを特徴とする請求項2に記載の通信装置。
【請求項4】
前記制御手段は、処理状況が負荷の大きい状態と判断した場合、前記他の通信装置の画像処理性能にかかわらず、前記他の通信装置から受信したRAW画像データから前記第一の画像データを前記画像処理手段によって生成し、生成した前記第一の画像データを前記通信手段を介して前記他の通信装置へ送信する
ことを特徴とする請求項1からのいずれか1項に記載の通信装置。
【請求項5】
前記制御手段は、前記第一の画像データを前記他の通信装置へ送信した場合、前記第一の画像データを削除することを特徴とする請求項1からのいずれか1項に記載の通信装置。
【請求項6】
前記制御手段は、前記第二の画像データを前記他の通信装置へ送信した場合、前記第一の画像データおよび前記第二の画像データを削除することを特徴とする請求項1からのいずれか1項に記載の通信装置。
【請求項7】
他の通信装置と通信する通信手段と、
画像処理手段と、
を有する通信装置の制御方法であって、
RAW画像データから第一の画像データを前記画像処理手段によって生成する第一の画像処理ステップと、
前記第一の画像データから第二の画像データを前記画像処理手段によって生成する第二の画像処理ステップと、
前記第一の画像処理ステップおよび前記第二の画像処理ステップの処理を実行することによってRAW画像データを現像するステップと、
RAW画像データを前記他の通信装置から前記通信手段を介して受信するステップと、
前記他の通信装置から受信したRAW画像データから前記第一の画像データを前記画像処理手段によって生成するステップと、
前記他の通信装置の画像処理性能が所定の性能以上と判断した場合、前記他の通信装置より受信したRAW画像データから生成した前記第一の画像データを前記通信手段を介して前記他の通信装置へ送信するステップと、
前記他の通信装置の画像処理性能が所定の性能未満と判断した場合、前記他の通信装置より受信したRAW画像データから生成した前記第一の画像データから生成した前記第二の画像データを前記通信手段を介して前記他の通信装置へ送信するステップと、
前記第二の画像データを前記他の通信装置へ送信する場合、前記他の通信装置から前記第二の画像データを生成する際に利用するパラメータを前記通信手段を介して受信したことに応じて、前記パラメータを用いて再度前記第二の画像データを前記画像処理手段によって生成し、再度生成した前記第二の画像データを前記通信手段を介して前記他の通信装置へ送信するステップと、
を有することを特徴とする制御方法。
【請求項8】
コンピュータを請求項1からのいずれか1項に記載の通信装置の各手段として機能させるための、コンピュータが読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを現像する通信装置に関する。
【背景技術】
【0002】
デジタルカメラやスマートフォンなどの撮像装置は、CCDやCMOS等の撮像素子から入力されたデータを、JPEGやTIFF等の画像フォーマットに基づいて圧縮し、メモリカード等に画像データとして記録する。前述の圧縮処理は一般的に非可逆符号化であるため、ユーザは後から画像データに対して大きく再調整することができない。
【0003】
しかし近年、スマートフォンやデジタルカメラなどの撮像装置は撮像素子から読み出した電気信号をそのままデジタル化し、画像データとして記録することができるようになってきている。このように記録した画像データをRAW画像データという。ユーザはこのRAW画像データをPC等で現像することにより、撮像装置で現像するよりも意図通りの画像に仕上げることができる。特許文献1では、RAW画像データの現像処理方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-251166号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
RAW画像データの現像処理は計算量が多いため、一般的なPCやスマートフォン等はその現像処理を実行するには長い時間を必要とする。一方で、近年いわゆるクラウドサービスを利用することで、ユーザはクラウドにあるサーバを利用してRAW画像データを比較的に短い時間で現像することができる。しかしこの場合でも、現像処理に利用するパラメータの微調整等の計算量の少ない処理であってもクラウドにあるサーバが現像処理を実行するため、例えば高性能なPCを有するユーザにとっては効率の悪い側面が存在する。
【0006】
そこで本発明は、RAW画像データの現像処理を効率的に行うことを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の通信装置は他の通信装置と通信する通信手段と、画像処理手段制御手段と、を有し、前記制御手段は、RAW画像データから第一の画像データを前記画像処理手段によって生成する機能、および前記第一の画像データから第二の画像データを前記画像処理手段によって生成する機能を制御し、前記制御手段は、RAW画像データから生成した前記第一の画像データから前記第二の画像データを前記画像処理手段によって生成することによってRAW画像データを現像し、前記制御手段は、RAW画像データを前記他の通信装置から前記通信手段を介して受信前記制御手段は、前記他の通信装置から受信したRAW画像データから前記第一の画像データを前記画像処理手段によって生成し、前記制御手段は、前記他の通信装置の画像処理性能が所定の性能以上と判断した場合、前記他の通信装置より受信したRAW画像データから生成した前記第一の画像データを前記通信手段を介して前記他の通信装置へ送信前記制御手段は、前記他の通信装置の画像処理性能が前記所定の性能未満と判断した場合、前記他の通信装置より受信したRAW画像データから生成した前記第一の画像データから前記第二の画像データを前記画像処理手段によって生成し、生成した前記第二の画像データを前記通信手段を介して前記他の通信装置へ送信し、前記制御手段は、前記第二の画像データを前記他の通信装置へ送信する場合、前記他の通信装置から前記第二の画像データを生成する際に利用するパラメータを前記通信手段を介して受信したことに応じて、前記パラメータを用いて再度前記第二の画像データを前記画像処理手段によって生成し、再度生成した前記第二の画像データを前記通信手段を介して前記他の通信装置へ送信することを特徴とする。
【発明の効果】
【0008】
本発明によれば、ユーザはRAW画像データの現像処理を効率的に行うことができる。
【図面の簡単な説明】
【0009】
図1】第一の実施形態におけるシステム構成の一例を示す図である。
図2】第一の実施形態におけるPCの構成の一例を示すブロック図である。
図3】第一の実施形態におけるスマートフォンの構成の一例を示すブロック図である。
図4】第一の実施形態におけるサーバの構成の一例を示すブロック図である。
図5】第一の実施形態におけるRAW画像データを現像する処理の一例を示すフローチャートである。
図6】(A)第一の実施形態におけるPCの中間画像データの彩度を調整する画面の一例である。(B)第一の実施形態におけるPCの中間画像データの階調を調整する画面の一例である。
図7】第一の実施形態におけるRAW現像処理の一例を示すフローチャートである。
図8】第一の実施形態におけるRGB調整処理の一例を示すフローチャートである。
図9】(A)第一の実施形態におけるPCおよびサーバが接続する処理の一例を示すシーケンス図である。(B)第一の実施形態におけるスマートフォンおよびサーバが接続する処理の一例を示すシーケンス図である。
図10】第一の実施形態におけるPCがサーバへRAW画像データをアップロードする手順の一例を示すシーケンス図である。
図11】第一の実施形態におけるPCがサーバを利用してRAW画像データの現像処理を実行する手順の一例を示すシーケンス図である。
図12】第一の実施形態におけるスマートフォンがサーバを利用してRAW画像データの現像処理を実行する手順の一例を示すシーケンス図である。
図13】第一の実施形態におけるPCの動作の一例を示すフローチャートである。
図14】第一の実施形態におけるサーバの動作の一例を示すフローチャートである。
図15】第二の実施形態におけるPCの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、添付の図面を用いて詳細に説明する。
【0011】
なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施形態を適宜組み合せることも可能である。
【0012】
<第一の実施形態>
<システム構成図>
図1は本実施形態におけるシステム構成の一例を示す図である。PC100およびスマートフォン200はサーバ300とデータ通信する。各装置の構成については後述する。このデータ通信では特に、画像データおよび動画データ等のデジタルカメラ等によって撮像されたデータが送受信される。例えばPC100およびスマートフォン200はそれぞれ画像データや動画データをサーバ300へ送信する。サーバ300はPC100およびスマートフォン200から受信した画像データや動画データを現像する。またサーバ300はその現像した画像データや動画データを、それぞれの装置へ返送する。このようにPC100およびスマートフォン200はサーバ300を利用して画像データや動画データを現像することができる。
【0013】
<PC100の構成>
図2は本実施形態の通信装置の一例であるPC100の構成の一例を示すブロック図である。本実施形態では特に、パソコンのように据え置いて使う通信装置を例に説明する。
【0014】
制御部101は、入力された信号や、後述のプログラムに従ってPC100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【0015】
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリである。不揮発性メモリ103には、制御部101が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションが記録されている。不揮発性メモリ103は例えばHDD,SSD等である。また、本実施形態では、不揮発性メモリ103には、RAW画像データ等の画像データを画像処理可能なアプリケーション(以降、画像処理アプリという)が格納されている。RAW画像データについては後述する。
【0016】
作業用メモリ104は、揮発性メモリである。作業用メモリ104は、制御部101のワーク領域、エラー処理時のデータの退避領域等として使用される。
【0017】
操作部105は、PC100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがPC100の電源のオン/オフを指示するための電源ボタンや、キーボードやマウス等の入力装置等を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、操作部105は必ずしもPC100が内蔵する必要はない。PC100は内部または外部の操作部105と接続することができる。
【0018】
表示部106は、対話的な操作のための文字や画像表示などを行う。表示部106は例えば、液晶ディスプレイや有機ELディスプレイ等である。また、画像処理アプリのGUI(Graphical User Interface)も表示部106に表示される。なお、表示部106は必ずしもPC100が内蔵する必要はない。PC100は内部または外部の表示部106と接続することができ、表示部106による表示を制御する機能を少なくとも有していればよい。
【0019】
GPU108は、画像処理に特化した画像処理部である。GPUはGraphics Processing Unitの略語である。制御部101はGPU108を利用することで、表示部106に画像データを表示することおよび画像データの現像処理等の画像処理を実行できる。
【0020】
外部記録装置110は、外部記録媒体に対して読み出しおよび書き込みを行う装置である。プログラムや画像データが外部記録媒体に記録されている場合、これらは外部記録装置110を介して作業用メモリ104に読み込まれる。外部記録媒体は、例えば、DVD-RW、CD-ROM、CD-R、DVD-RAMなどの光ディスクや、フレキシブルディスク、MOなどの磁気ディスク、着脱可能なフラッシュメモリ等のPC100に着脱可能な不揮発性メモリである。
【0021】
接続部111は、外部装置と接続するためのインターフェースである。本実施形態のPC100は、接続部111を介して、外部装置とデータを送受信することができる。また、PC100は接続部111を介してデジタルカメラ等の撮像装置とも接続し、データの送受信ができる。この接続部111による通信は有線通信および無線通信のどちらでもよい。
【0022】
以上、PC100の構成例について説明した。
【0023】
<スマートフォン200の構成>
図3は、本実施形態における通信装置の一例であるスマートフォン200の構成例を示すブロック図である。本実施形態では特に、スマートフォンのようにユーザが携帯できる通信装置を例に説明する。またこのような携帯できる通信装置としては他にもタブレットデバイス、およびデジタルカメラ等がある。
【0024】
制御部201は、入力された信号や、後述のプログラムに従ってスマートフォン200の各部を制御する。なお、制御部201が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【0025】
撮像部202は、例えば、光学レンズユニットと絞り・ズーム・フォーカスなど制御する光学系と、光学レンズユニットを経て導入された光(映像)を電気的な映像信号に変換するための撮像素子などで構成される。撮像素子は、例えば、CMOS(Complementary Metal Oxide Semiconductor)および、CCD(Charge Coupled Device)である。撮像部202は、制御部201に制御されることにより、撮像部202に含まれるレンズで結像された被写体光を、撮像素子により電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。本実施形態では、当該画像データを撮像し出力するための一連の処理を「撮影」という。また、撮像部202は連続して撮影した画像データを1つのデータとして記録することで動画データを生成できる。本実施形態のスマートフォン200では、画像データおよび動画データは、DCF(Design Rule for Camera File system)の規格に従って、記録媒体210に記録される。また、撮像部202は撮像素子から出力された電気信号に対して、画像処理を加えずに記録媒体に210に記録することもできる。このように撮像素子から読み出した電気信号をそのままデジタル化し記録することで得られる記録形式の画像をRAW画像データという。同様にこのような記録形式の動画をRAW動画という。なお、RAW画像データは、撮像素子から読み出した電気信号をそのままデジタル化し保存した画像であるため、そのままでは画像として見たり、画像補正等を施したりすることができない。
【0026】
不揮発性メモリ203は、電気的に消去・記録可能な不揮発性のメモリであり、制御部201で実行される後述のプログラム等が格納される。また、本実施形態では、不揮発性メモリ203には、画像処理アプリが格納されている。
【0027】
作業用メモリ204は、撮像部202で撮影された画像データおよび動画データを一時的に保持するバッファメモリや、表示部206の画像表示用メモリ、制御部201の作業領域等として使用される。
【0028】
操作部205は、ユーザがスマートフォン200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザがスマートフォン200の電源のオン/オフを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンを含む。さらに、後述の接続部211を介して外部機器との通信を開始するための専用の接続ボタンなどの操作部材を含む。また、後述する表示部206に形成されるタッチパネルも操作部205に含まれる。
【0029】
表示部206は、撮影の際のビューファインダ画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。また、画像処理アプリのGUIも表示部106に表示される。なお、表示部206は必ずしもスマートフォン200が内蔵する必要はない。スマートフォン200は内部または外部の表示部206と接続することができ、表示部206の表示を制御する表示制御機能を少なくとも有していればよい。また、制御部201は、作業用メモリ204に蓄積された画像データまたは動画データを表示部206に逐次転送して表示することで、表示部206は電子ビューファインダとして機能する。これによってスマートフォン200はスルー画像表示(ライブビュー表示)を実行することができる。
【0030】
マイク207は、音や音声等の音波をスマートフォン200に入力するために用いられる。マイク207は音や音声を電気信号に変換してスマートフォン200に入力する。制御部201は入力された電気信号から音声データを生成する。制御部201はこの音声データと撮像部202が撮影した映像データとを同期させて記録することで動画データを記録できる。なお、マイク207はスマートフォン200に着脱可能なよう構成してもよいし、スマートフォン200に内蔵されていてもよい。すなわち、スマートフォン200は少なくともマイク207から電気信号を受け取るための手段を有していればよい。
【0031】
GPU208は、画像処理に特化した画像処理部である。制御部201はGPU208を利用することで、表示部206に画像データを表示することおよび現像処理等の画像処理を実行できる。なお、本実施形態においてGPU208はGPU108よりも処理性能は低いとする。
【0032】
記録媒体210は、撮像部202から出力された画像データおよび動画データを記録することができる。記録媒体210は例えばSDカード、およびSolid State Drive(SSD)等である。記録媒体210は、スマートフォン200に着脱可能なよう構成してもよいし、スマートフォン200に内蔵されていてもよい。すなわち、スマートフォン200は少なくとも記録媒体210にアクセスする手段を有していればよい。
【0033】
接続部211は、外部装置と通信するためのインターフェースである。制御部201は、接続部211を制御することで外部装置との通信を実現する。本実施形態のスマートフォン200は、接続部111を介して、サーバ300とデータのやりとりを行うことができる。例えば、スマートフォン200は撮像部202で生成した画像データを、接続部211を介してサーバ300に送信することができる。なお、本実施形態では、接続部211はIEEE802.11の規格に従った、いわゆる無線LAN(Local Area Network)で通信するためのインターフェースを含む。なお、通信方式は無線LANに限定されるものではなく、例えば4GやLTEなどの公衆無線通信方式や、Ethernet等の規格に従った有線通信方式を含む。
【0034】
以上、スマートフォン200の構成例について説明した。
【0035】
<サーバ300の構成>
図4は本実施形態の通信装置の一例であるサーバ300の構成の一例を示すブロック図である。
【0036】
制御部301は、入力された信号や、後述のプログラムに従ってサーバ300の各部を制御する。なお、制御部301が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
【0037】
不揮発性メモリ303は、電気的に消去・記録可能な不揮発性のメモリである。不揮発性メモリ303には、制御部301が実行する基本的なソフトウェアであるOS(オペレーティングシステム)や、このOSと協働して応用的な機能を実現するアプリケーションが記録されている。また、本実施形態では、不揮発性メモリ303には、画像処理アプリが格納されている。不揮発性メモリ303は例えばHDD,SSD,ROM,フラッシュメモリ、および光ディスク等である。
【0038】
作業用メモリ304は、揮発性メモリである。作業用メモリ304は、制御部301のワーク領域、エラー処理時のデータの退避領域等として使用される。
【0039】
操作部305は、サーバ300に対する指示をユーザから受け付けるために用いられる。操作部305は例えば、ユーザがサーバ300の電源のオン/オフを指示するための電源ボタンや、キーボードやマウス等の入力装置等を含む。なお、操作部305は必ずしもサーバ300が内蔵する必要はない。サーバ300は内部または外部の操作部305と接続することができる。
【0040】
GPU308は、画像処理に特化した画像処理部である。制御部301はGPU308を利用することで、表示部306に画像表示することや計算処理を実行できる。本実施形態ではGPU308はGPU108およびGPU208よりも処理性能が高い。
【0041】
外部記録装置310は、外部記録媒体に対して読み出しおよび書き込みを行う装置である。プログラムや画像データが外部記録媒体に記録されている場合、これらは外部記録装置310を介して作業用メモリ304に読み込まれる。外部記録媒体は、例えば、DVD-RW、CD-ROM、CD-R、DVD-RAMなどの光ディスクや、フレキシブルディスク、MOなどの磁気ディスク、着脱可能なフラッシュメモリ等のサーバ300に着脱可能な不揮発性メモリである。
【0042】
接続部311は、外部装置と接続するためのインターフェースである。本実施形態のサーバ300は、接続部311を介して、外部装置とデータを送受信することができる。また、サーバ300は接続部311を介してデジタルカメラ等の撮像装置とも接続し、データの送受信ができる。この接続部311による通信は有線通信および無線通信のどちらでもよい。
【0043】
以上、サーバ300の構成例について説明した。
【0044】
なお、本実施形態ではGPU108、GPU208、およびGPU308の性能は高いものから順番に並べると、GPU308、GPU108、GPU208である。一般的にPCのような据え置きの装置はスマートフォンのような携帯可能な装置よりも画像処理の性能が高い部材を有するため、本実施形態では上記のように性能を定めている。
【0045】
<現像処理>
本実施形態におけるRAW画像データの現像処理について説明する。本実施形態では便宜上、RAW画像データの現像処理をRAW現像処理およびRGB調整処理の2つの処理に区別する。図5はPC100がRAW画像データを現像する処理の一例を示すフローチャートである。本処理は、不揮発性メモリ103に記録されたプログラムを作業用メモリ104に展開して制御部101が実行することで実現する。本フローチャートの処理は、制御部101が画像処理アプリによってRAW画像データを読み込んだことをトリガに開始される。
【0046】
ステップS501において、制御部101はGPU108によってRAW画像データを現像する現像処理のうちのRAW現像処理を実行する。本実施形態では制御部101はRAW画像データに含まれる属性情報に基づいてRAW現像する。属性情報は、RAW画像データの撮影時に決定される撮像条件である。属性情報は例えばビット深度、露出時間、シャッター速度、絞り値、輝度値、露光補正値、レンズ最小F値、被写体距離、測光方式、光源、フラッシュの有無、レンズ焦点距離、Fナンバー、ISOスピードレート、フラッシュ強度などである。このRAW現像処理によって、RAW画像データから中間画像データが生成される。中間画像データは現像処理が一部実行された画像データであり、RAW画像データおよび後述の汎用画像データとは異なるファイル形式のデータである。このRAW現像処理については後述する。
【0047】
ステップS502において、制御部101はステップS501において生成された中間画像データを表示部106に表示する。
【0048】
ステップS503において、制御部101はステップS504において実行するRGB調整処理に利用するパラメータの調整操作をユーザから操作部105を介して受け付ける。本実施形態では、ユーザは画像処理アプリのGUIを介してRGB調整処理に利用するパラメータを調整する。例えば図6(A),(B)はそれぞれ画像処理アプリにおける彩度調整用の画面および階調調整用の画面の一例である。例えば図6(A)において、ユーザは操作部105を介して表示部106に表示されたスライダ602をカーソル601を用いて操作し、中間画像データの彩度を調整する。また例えば図6(B)に示すように、ユーザは操作部105を介して表示部106に表示されたトーンカーブ603をカーソル601を用いて操作し、中間画像データの階調を調整する。他にも本ステップにおいてユーザは例えばホワイトバランス、色相、コントラスト、明るさ、鮮鋭度、およびリサイズ等のパラメータ調整ができる。ユーザは画像処理アプリのメニュー等を操作し、それぞれのパラメータを調整する画面を選択的に切り替えることができる。このようにユーザは画像処理アプリを用いてRGB調整処理に利用するパラメータを調整する。そして例えば1つのパラメータの調整が完了したと制御部101が判断した場合、処理はステップS504に進む。
【0049】
ステップS504において、制御部101はGPU108によってステップS501において生成された中間画像データに、RAW画像データの現像処理のうちのRGB調整処理を実行する。このRGB調整処理によって中間画像データから汎用画像データが生成される。この汎用画像データは例えばJPEG、PNG、HEVC、およびTIFF等の画像フォーマットに基づいて圧縮された画像データである。RGB調整処理については後述する。
【0050】
ステップS505において、制御部101はステップS504において生成された汎用画像データを表示部106に表示する。
【0051】
ステップS506において、制御部101はRGB調整処理をやり直すか否かを判断する。例えばユーザが操作部105によって再度RGB調整するよう操作した場合、制御部101はRGB調整をやり直すと判断し、処理はステップS501に戻る。例えばユーザが操作部105によってRGB調整を終了するよう操作した場合、制御部101はRGB調整が完了したと判断し、処理はステップS507に進む。
【0052】
ステップS507において、制御部101はステップS504において生成された汎用画像データを不揮発性メモリ103に記録する。
【0053】
以上、本実施形態における現像処理の一例について説明した。なお、スマートフォン200もこの現像処理を実行できる。また、サーバ300はPC100およびスマートフォン200と同様のパラメータを用いて、RAW画像データの現像処理としてRAW現像処理およびRGB調整処理を実行できる。なおサーバ300はRAW画像データの現像処理に必要なパラメータを適宜PC100やスマートフォン200から受信する。
【0054】
本実施形態のRAW画像データの現像処理におけるRAW現像処理は、画像データの補正処理やノイズ低減処理などのユーザの指示したパラメータによらない画像処理である。そのためRAW現像処理によって生成される中間画像データは、同じRAW画像データに通常何度実行しても同様のデータとなる。したがって本実施形態においてはRAW現像処理を、サーバ300がRAW画像データに対して一度だけ実施する。一方、本実施形態のRAW画像データの現像処理におけるRGB調整処理は、汎用画像データの見た目がユーザの目的や嗜好に合わせた画像データになるように、ユーザの指示したパラメータに基づいて実行される画像処理である。そのため、ユーザは中間画像データが目的や嗜好に合わせた汎用画像データに仕上がるまでこのRGB調整処理を繰り返すことがある。そこで、本実施形態においてはRGB調整処理を、PC100およびスマートフォン200が実行する場合と、サーバ300が実行する場合とに分ける。この具体的な処理については後述する。これにより、PC100およびスマートフォン200は後述のRAW画像データの現像処理を効率的に実行できる。
【0055】
なお、ステップS503において、処理が次のステップに進む判断の条件は、制御部101が1つのパラメータの調整が完了したと判断した場合以外でもよい。例えば制御部101が表示部106にRGB調整処理を開始するためのボタンを表示する場合、制御部101が操作部105を介してユーザからRGB調整処理を開始するよう指示を受け付けることを条件にしてもよい。
【0056】
なお、ステップS507において、制御部101は汎用画像データを不揮発性メモリ103に記録したが、制御部101は汎用画像データを外部記録装置110を介して外部記録媒体に記録してもよい。
【0057】
なお、ステップS501の説明において、中間画像データはRAW画像データとはファイル形式が異なるデータと記載したが、中間画像データはRAW画像データと同じファイル形式であってもよい。
【0058】
<RAW現像処理>
図7は本実施形態におけるRAW現像処理の一例を示すフローチャートである。本フローチャートの処理は、図5のステップS501の処理に相当する。なお、本実施形態では制御部101はRAW画像データに含まれる属性情報に基づいてRAW画像データを補正する。
【0059】
ステップS701において、制御部101はRAW画像データの収差や撮像部102の撮像素子に起因する傷データに対する補正等である。
【0060】
ステップS702において、制御部101はRAW画像データの黒レベルを調整する。
【0061】
ステップS703において、制御部101はRAW画像データのホワイトバランスを調整する。ここで、本実施形態では制御部101はRAW画像データに対してオートホワイトバランス機能によってホワイトバランスを調整する。これにより、後のRGB調整処理においてもホワイトバランスを調整できるようになる。
【0062】
ステップS704において、制御部101はRAW画像データにおける撮像部102の撮像素子に起因するノイズを低減する。
【0063】
ステップS705において、制御部101はRAW画像データに画素補間処理を実行する。
【0064】
ステップS706において、制御部101はステップS701~ステップS705において処理されたRAW画像データを中間画像データとして作業用メモリ104に記録する。
【0065】
以上、本実施形態におけるRAW現像処理について説明した。なお、スマートフォン200およびサーバ300もこのRAW現像処理を実行できる。
【0066】
<RGB調整処理>
図8は本実施形態に係るRGB調整処理の一例を示すフローチャートである。本フローチャートの処理は、図5のステップS504の処理に相当する。ここで、制御部101は、図5のステップS503においてユーザから入力されたパラメータに基づいて中間画像データを調整する。
【0067】
ステップS801において、制御部101は、中間画像データのホワイトバランスを調整する。
【0068】
ステップS802において、制御部101は中間画像データにガンマ調整する。ステップS803において、制御部101は中間画像データに色調整する。ステップS804において、制御部101は中間画像データに明るさ調整する。
【0069】
ステップS805において、制御部101は中間画像データの色空間を変換する。
【0070】
ステップS806において、制御部101は中間画像データから汎用画像データを生成する。例えば制御部101はJPEG、PNG、HEVC、およびTIFF等の画像フォーマットに基づいて中間画像データを圧縮し、汎用画像データを生成する。
【0071】
ステップS807において、制御部101は汎用画像データを不揮発性メモリ103に記録する。
【0072】
以上、本実施形態におけるRGB調整処理について説明した。なお、スマートフォン200およびサーバ300もこのRGB調整処理を実行できる。
【0073】
なお、本実施形態のRGB調整処理ではホワイトバランス調整、ガンマ調整、色調整、明るさ調整等の画像処理を一例に用いて説明した。他にもRGB調整処理では、制御部101は色相、コントラスト、鮮鋭度、および画像サイズなどの調整処理を図5のステップS503においてユーザによって入力されたパラメータに基づいて実行してもよい。
【0074】
ここで、本実施形態におけるRAW現像処理の収差補正およびノイズ補正の処理は、RGB調整処理における画像処理よりも計算量が多い。なぜならRGB調整処理における画像処理は1画素自身のデータを利用して1画素を調整する処理であることに対し、収差補正およびノイズ補正は例えば2次元の空間フィルタリングを用いて、複数の画素のデータを利用して1画素を調整する処理であるからである。
【0075】
また、RAW現像処理は頻繁に実行する処理ではないが、RGB調整処理はユーザによって頻繁に実行することがある画像処理である。そこで本実施形態のPC100は計算量の多いRAW現像処理はサーバ300を利用して計算し、頻繁に実行しうるRGB調整処理はGPU108を利用して処理する。一方で、スマートフォン200のように画像処理能力が低いデバイスは、RAW現像処理より計算量の少ないRGB調整処理であっても、画像処理に時間がかかる。そのため、スマートフォン200はRAW現像処理およびRGB調整処理の両方をサーバ300を利用して計算する。これにより、PC100およびスマートフォン200は、それぞれの画像処理性能に応じてサーバ300を利用することで、RAW画像データの現像処理にかかる時間を低減できる。このようにデバイスの画像処理能力に応じてサーバ300を利用することで、ユーザはRAW画像データの現像処理を効率的に実行することができる。以下、その具体的な処理の一例について説明する。
【0076】
<サーバ300との接続処理>
図9(A),(B)を用いてPC100およびスマートフォン200がそれぞれサーバ300と接続する処理について説明する。図9(A)はPC100およびサーバ300が接続する処理の一例を示すシーケンス図である。図9(B)はスマートフォン200およびサーバ300が接続する処理の一例を示すシーケンス図である。
【0077】
まず図9(A)を用いてPC100およびサーバ300が接続する処理について説明する。本シーケンスの処理はユーザがPC100にサーバ300と接続させるようPC100を操作したことに応じて開始される。
【0078】
ステップS901において、PC100はサーバ300と接続を確立する。
【0079】
ステップS902において、PC100は自身の性能情報をサーバ300へ送信する。この性能情報は例えば、PC(据え置きの装置)であること、GPU108のスペック、および現在の通信速度等である。
【0080】
ステップS903において、サーバ300はRGB調整処理をPC100が実行するかサーバ300が実行するかを判断する。ここでサーバ300はステップS902において受信したPC100の性能情報に基づいて、RGB調整処理を実行するデバイスを判断する。本実施形態ではサーバ300はステップS902において受信した性能情報から、PC100が据え置きの装置であること、GPU108のスペックが所定の性能以上であること、およびPC100の通信速度が所定の閾値より速いこと等が判断できる。この所定の性能および所定の閾値はそれぞれサーバ300の管理者が任意に決定する値である。本実施形態ではサーバ300はPC100の性能が所定の性能以上であると判断し、PC100がRGB調整処理を実行すると判断する。
【0081】
ステップS904において、サーバ300はステップS903において判断したRGB調整処理を実行するデバイスについての通知を送信する。本実施形態ではサーバ300はPC100がRGB調整処理を実行する旨の通知をPC100へ送信する。
【0082】
以上、PC100およびサーバ300が接続する処理について説明した。
【0083】
次に図9(B)を用いてスマートフォン200およびサーバ300が接続する処理について説明する。本シーケンスの処理はユーザがスマートフォン200にサーバ300と接続させるようスマートフォン200を操作したことに応じて開始される。
【0084】
ステップS951において、スマートフォン200はサーバ300と接続を確立する。
【0085】
ステップS952において、スマートフォン200は自身の性能情報をサーバ300へ送信する。この性能情報は例えば、スマートフォン(携帯可能な装置)であること、GPU208のスペック、および現在の通信速度等である。
【0086】
ステップS953において、サーバ300はRGB調整処理をスマートフォン200が実行するかサーバ300が実行するかを判断する。ここでサーバ300はステップS952において受信したスマートフォン200の性能情報に基づいて、RGB調整処理を実行するデバイスを判断する。本実施形態ではサーバ300はステップS952において受信した性能情報から、PC100が携帯可能な装置であること、GPU108のスペックが所定の性能未満であること、およびPC100の通信速度が所定の閾値より遅いこと等が判断できる。この所定の性能および所定の閾値はそれぞれサーバ300の管理者が任意に決定する値である。本実施形態ではサーバ300はスマートフォン200の性能が所定の性能未満であると判断し、サーバ300がRGB調整処理を実行すると判断する。
【0087】
ステップS954において、サーバ300はステップS953における判断の結果を送信する。本実施形態ではサーバ300はサーバ300がRGB調整処理を実行する旨の通知をスマートフォン200へ送信する。
【0088】
以上、スマートフォン200およびサーバ300が接続する処理について説明した。
【0089】
なお、ステップS902およびステップS952において、PC100およびスマートフォン200は、現在の通信速度の実効値や従量制課金通信であること等を通知してもよい。サーバ300はステップS903およびステップS953において、この情報も利用してRGB調整処理をサーバ300が実行するか否かを判断する。
【0090】
なお、ステップS903およびステップS953において、サーバ300はサーバ300自身の処理状況に基づいてRGB調整処理を実行するデバイスを判断してもよい。サーバ300の処理状況は例えば、GPU308の使用率、接続を確立しているデバイス数、および画像処理を実行する予定であるRAW画像データの総容量等である。この場合、サーバ300は自身の処理状況が負荷の大きい状態と判断した場合、接続を確立している対向機器の性能情報にかかわらず、対向機器がRGB調整処理を実行すると判断してもよい。負荷の大きい状態は例えば、GPU308の使用率が所定の閾値より高いこと、接続を確立しているデバイス数が所定の閾値より多いこと、画像処理を実行する予定であるRAW画像データの総容量が所定の閾値より大きいこと等である。またこの場合、サーバ300は自身の処理状況が負荷の小さい状態と判断した場合、接続を確立している対向機器の性能情報に応じて、RGB調整処理を実行する機器を判断する。負荷の小さい状態は例えば、GPU308の使用率が所定の閾値より低いこと、接続を確立しているデバイス数が所定の閾値より少ないこと、画像処理を実行する予定であるRAW画像データの総容量が所定の閾値より小さいこと等である。この閾値はそれぞれサーバ300の管理者が任意に決定する値である。
【0091】
<RAW画像データのアップロード>
図10を用いてPC100がサーバ300へRAW画像データをアップロードする手順について説明する。図10はPC100がサーバ300へRAW画像データをアップロードする手順の一例を示すシーケンス図である。本シーケンスの処理はユーザがサーバ300へRAW画像データをアップロードするようPC100を操作したことに応じて開始される。
【0092】
ステップS1001において、PC100はサーバ300へ送信するRAW画像データを読み込む。
【0093】
ステップS1002において、PC100は読み込んだRAW画像データをサーバ300へ送信する。
【0094】
ステップS1003において、サーバ300はPC100から受信したRAW画像データを記録する。
【0095】
以上、PC100がサーバ300へRAW画像データをアップロードする手順の一例について説明した。
【0096】
<PC100およびサーバ300による現像処理>
図11を用いてPC100がサーバ300を利用してRAW画像データの現像処理を実行する処理について説明する。図11はPC100がサーバ300を利用してRAW画像データの現像処理を実行する手順の一例を示すシーケンス図である。本シーケンスの処理は例えば、ユーザがPC100にRAW画像データの現像を指示した場合に開始される。なお、PC100は本シーケンスの処理を開始する前に現像処理を実行するRAW画像データをサーバ300へ送信済みであるとする。
【0097】
ステップS1101において、PC100は図10のステップS1002において送信したRAW画像データのRAW現像処理をサーバ300に指示する。
【0098】
ステップS1102において、サーバ300はステップS1101においてRAW現像処理を指示されたRAW画像データのRAW現像処理を実行する。このRAW現像処理は例えば図7に示すフローチャートに従った処理である。
【0099】
ステップS1103において、サーバ300はステップS1102におけるRAW現像処理によって生成した中間画像データをPC100へ送信する。
【0100】
ステップS1104において、PC100はステップS1103において受信した中間画像データを表示する。
【0101】
ステップS1105において、PC100はRGB調整処理におけるパラメータ調整操作をユーザから受け付ける。
【0102】
ステップS1106において、PC100はステップS1105において受け付けたユーザ操作に基づいて、ステップS1103において受信した中間画像データにRGB調整処理を実行する。このRGB調整処理は例えば図8に示すフローチャートに従った処理である。
【0103】
ステップS1107において、PC100はステップS1106におけるRGB調整処理によって生成された汎用画像データを表示する。
【0104】
ステップS1108において、PC100はステップS1106におけるRGB調整処理によって生成された汎用画像データを記録する。
【0105】
以上、PC100およびサーバ300による現像処理の一例について説明した。
【0106】
<スマートフォン200およびサーバ300による現像処理>
図12を用いてスマートフォン200がサーバ300を利用してRAW画像データの現像処理を実行する処理について説明する。図12はスマートフォン200がサーバ300を利用してRAW画像データの現像処理を実行する手順の一例を示すシーケンス図である。本シーケンスの処理は例えば、ユーザがスマートフォン200にRAW画像データの現像を指示した場合に開始される。なお、スマートフォン200は本シーケンスの処理を開始する前に現像処理を実行するRAW画像データをサーバ300へ送信済みであるとする。
【0107】
ステップS1201において、スマートフォン200は図10のステップS1002において送信したRAW画像データのRAW現像処理をサーバ300に指示する。
【0108】
ステップS1202において、サーバ300はステップS1201においてRAW現像処理を指示されたRAW画像データのRAW現像処理を実行する。このRAW現像処理は例えば図7に示すフローチャートに従った処理である。
【0109】
ステップS1203において、サーバ300はステップS1202におけるRAW現像処理によって生成された中間画像データにRGB調整処理を実行する。このRGB調整処理は例えば図8に示すフローチャートに従った処理である。なお、本ステップにおけるRGB調整処理のパラメータはサーバ300が決定する。
【0110】
ステップS1204において、サーバ300はステップS1202におけるRGB現像処理によって生成した汎用画像データをスマートフォン200へ送信する。
【0111】
ステップS1205において、スマートフォン200はステップS1204において受信した汎用画像データを表示する。
【0112】
ステップS1206において、スマートフォン200はRGB調整処理におけるパラメータ調整操作をユーザから受け付ける。
【0113】
ステップS1207において、スマートフォン200はステップS1206において受け付けたユーザ操作に基づいて、再度RGB調整処理を実行するようサーバ300に指示する。
【0114】
ステップS1208において、サーバ300はステップS1202におけるRAW現像処理によって生成された中間画像データにRGB調整処理を実行する。このRGB調整処理は例えば図8に示すフローチャートに従った処理である。なお、本ステップにおけるRGB調整処理のパラメータはステップS1207においてスマートフォン200から受信した指示に基づく。
【0115】
ステップS1209において、サーバ300はステップS1208におけるRGB現像処理によって生成した汎用画像データをスマートフォン200へ送信する。
【0116】
ステップS1210において、スマートフォン200はステップS1209におけるRGB調整処理によって生成された汎用画像データを表示する。
【0117】
ステップS1211において、スマートフォン200はステップS1209におけるRGB調整処理によって生成された汎用画像データを記録する。
【0118】
以上、スマートフォン200およびサーバ300による現像処理の一例について説明した。
【0119】
<PCおよびスマートフォンの動作>
本実施形態の通信装置の一例であるPC100およびスマートフォン200の動作の一例について説明する。以下、PC100の動作を一例に説明する。図13はPC100の動作の一例を示すフローチャートである。本フローチャートの処理は、不揮発性メモリ103に記録されたソフトウェアを作業用メモリ104に展開して制御部101が実行することで実現する。また本フローチャートの処理は、制御部101がユーザからサーバ300に接続するよう指示する操作を操作部105を介して受け付けたことをトリガに開始される。
【0120】
ステップS1301において、制御部101は接続部111を介してサーバ300と接続を確立する。本ステップの処理は、例えば図9(A)のステップS901およびステップS951の処理に相当する。
【0121】
ステップS1302において、制御部101は接続部111を介してサーバ300へ自身の性能情報をサーバ300へ送信する。この性能情報は例えば、PC(据え置きの装置)かスマートフォン(携帯可能な装置)かであること、GPU108のスペック、および現在の通信速度等である。本ステップの処理は、例えば図9(A)のステップS902およびステップS952の処理に相当する。
【0122】
ステップS1303において、制御部101はRGB調整処理を実行するデバイスに関する通知を接続部111を介して受信する。この通知は例えば、中間画像データに対してRGB調整処理を実行するデバイスがPC100であるかサーバ300であるかについての通知である。本ステップの処理は、例えば図9(A)のステップS904およびステップS954の処理に相当する。
【0123】
ステップS1304において、制御部101はRAW画像データを不揮発性メモリ103から読み込む。不揮発性メモリ103から読み込むRAW画像データは、例えば操作部105を介してユーザがサーバ300へ送信するよう選択したデータである。本ステップの処理は、例えば図10のステップS1001の処理に相当する。
【0124】
ステップS1305において、制御部101はステップS1304において読み込んだRAW画像データをサーバ300へ接続部111を介して送信する。本ステップの処理は、例えば図10のステップS1002の処理に相当する。
【0125】
ステップS1306において、制御部101はサーバ300へ送信したRAW画像データの現像処理を開始するよう指示する操作をユーザから受け付けたか否かを判断する。制御部101は現像処理を開始するよう指示する操作を例えば操作部105を介して受け付ける。制御部101はRAW画像データの現像処理を開始するよう指示する操作をユーザから受け付けるまで待機する。制御部101がRAW画像データの現像処理を開始するよう指示する操作をユーザから受け付けたと判断した場合、処理はステップS1307に進む。
【0126】
ステップS1307において、制御部101はステップS1303において受信した通知に基づいて、RGB調整処理を実行するデバイスがサーバ300か否かを判断する。RGB調整処理を実行するデバイスがサーバ300である場合、処理はステップS1316に進む。RGB調整処理を実行するデバイスがサーバ300ではない場合、すなわち、RGB調整処理を実行するデバイスがPC100である場合、処理はステップS1308に進む。まず制御部101がRGB調整処理を実行するデバイスがPC100であると判断した場合について説明する。
【0127】
ステップS1308において、制御部101はステップS1305において送信したRAW画像データに対してRAW現像処理を実行することを指示するパケットを接続部111を介してサーバ300へ送信する。本ステップの処理は、例えば図11のステップS1101の処理に相当する。
【0128】
ステップS1309において、制御部101は中間画像データをサーバ300から受信したか否かを判断する。制御部101は中間画像データをサーバ300から受信するまで待機する。制御部101が中間画像データをサーバ300から受信したと判断した場合、処理はステップS1310に進む。本ステップの処理は、例えば図11のステップS1103の処理に相当する。
【0129】
ステップS1310において、制御部101はステップS1309において受信した中間画像データを表示部106によって表示する。ここで制御部101は例えば不揮発性メモリ303に記録されている画像処理アプリを利用して、中間画像データを表示部106に表示する。本ステップの処理は、例えば図11のステップS1104の処理に相当する。
【0130】
ステップS1311において、制御部101はステップS1312のRGB調整処理におけるパラメータ調整の指示をユーザから受け付けたか否かを判断する。制御部101はこのパラメータ調整の指示を例えば操作部105を介して受け付ける。制御部101はパラメータ調整の指示をユーザから受け付けるまで待機する。制御部101がパラメータ調整の指示をユーザから受け付けたと判断した場合、処理はステップS1312に進む。本ステップの処理は、例えば図11のステップS1105の処理に相当する。
【0131】
ステップS1312において、制御部101はステップS1311において受け付けたパラメータ調整に基づいてステップS1309において受信した中間画像データに対してRGB調整処理を実行する。RGB調整処理は例えば図8のフローチャートを用いて説明した処理である。本ステップにおいて、制御部101は中間画像データから汎用画像データを生成する。本ステップの処理は、例えば図11のステップS1106の処理に相当する。
【0132】
ステップS1313において、制御部101はステップS1312において生成された汎用画像データを表示部106によって表示する。本ステップの処理は、例えば図11のステップS1107の処理に相当する。
【0133】
ステップS1314において、制御部101はRGB調整処理をやり直すか否かを判断する。例えば制御部101はRGB調整処理におけるパラメータ調整の指示を操作部105を介してさらに受け付けた場合、RGB調整処理をやり直すと判断する。また例えば制御部101は汎用画像データを記録する指示を操作部105を介してユーザから受け付けた場合、RGB調整処理をやり直さないと判断する。制御部101がRGB調整処理をやり直すと判断した場合、処理はステップS1311に戻る。制御部101がRGB調整処理をやり直さないと判断した場合、処理はステップS1315に進む。
【0134】
ステップS1315において、制御部101は汎用画像データを不揮発性メモリ103に記録する。本ステップの処理は、例えば図11のステップS1108および図12のステップS1211の処理に相当する。
【0135】
次にステップS1307において、制御部101がRGB調整処理を実行するデバイスがサーバ300であると判断した場合について説明する。
【0136】
ステップS1316において、制御部101はステップS1305において送信したRAW画像データに対してRAW現像処理およびRGB調整処理を実行することを指示するパケットを接続部111を介してサーバ300へ送信する。本ステップの処理は、例えば図12のステップS1201の処理に相当する。
【0137】
ステップS1317において、制御部101は汎用画像データをサーバ300から受信したか否かを判断する。制御部101は汎用画像データをサーバ300から受信するまで待機する。制御部101が汎用画像データをサーバ300から受信したと判断した場合、処理はステップS1310に進む。本ステップの処理は、例えば図12のステップS1204の処理に相当する。
【0138】
ステップS1318において、制御部101はステップS1317において受信した汎用画像データを表示部106によって表示する。本ステップの処理は、例えば図12のステップS1205およびステップS1210の処理に相当する。
【0139】
ステップS1319において、制御部101はRGB調整処理をやり直すか否かを判断する。例えば制御部101はRGB調整処理におけるパラメータ調整の指示を操作部105を介してさらに受け付けた場合、RGB調整処理をやり直すと判断する。また例えば制御部101は汎用画像データを記録する指示を操作部105を介してユーザから受け付けた場合、RGB調整処理をやり直さないと判断する。制御部101がRGB調整処理をやり直すと判断した場合、処理はステップS1320に進む。制御部101がRGB調整処理をやり直さないと判断した場合、処理はステップS1315に進む。
【0140】
ステップS1320において、制御部101はステップS1317において受信した汎用画像データのRGB調整処理におけるパラメータ調整の指示をユーザから受け付けたか否かを判断する。制御部101はこのパラメータ調整の指示を例えば操作部105を介して受け付ける。制御部101はパラメータ調整の指示をユーザから受け付けるまで待機する。制御部101がパラメータ調整の指示をユーザから受け付けたと判断した場合、処理はステップS1321に進む。本ステップの処理は、例えば図12のステップS1206の処理に相当する。
【0141】
ステップS1321において、制御部101はステップS1320において受け付けたパラメータ調整に基づいてRGB調整処理を再度実行すること指示するパケットをサーバ300へ接続部111を介して送信する。このパケットは、制御部101がステップS1320において受け付けたRGB調整処理において利用するパラメータを含む。本ステップの処理は、例えば図12のステップS1207の処理に相当する。
【0142】
以上、本実施形態における通信装置の一例であるPC100の動作について説明した。なお、本実施形態のスマートフォン200もPC100と同様に動作する。
【0143】
<サーバの動作>
本実施形態のサーバ300の動作の一例について説明する。図14はサーバ300の動作の一例を示すフローチャートである。本フローチャートの処理は、不揮発性メモリ303に記録されたソフトウェアを作業用メモリ304に展開して制御部301が実行することで実現する。また本フローチャートの処理は、制御部301が通信装置から接続要求パケットを接続部311を介して受信したことをトリガに開始される。なお本フローチャートの処理では、サーバ300はPC100と接続する場合について説明する。
【0144】
ステップS1401において、制御部301はPC100と接続部311を介して接続を確立する。本ステップの処理は、例えば図9(A)のステップS901およびステップS951の処理に相当する。
【0145】
ステップS1402において、制御部301はPC100からPC100の性能情報を接続部311を介して受信する。この性能情報は例えば、PC(据え置きの装置)かスマートフォン(携帯可能な装置)かであること、GPU108のスペック、および現在の通信速度等である。本ステップの処理は、例えば図9(A)のステップS902およびステップS952の処理に相当する。
【0146】
ステップS1403において、制御部301はRGB調整処理を実行するデバイスを判断する。本実施形態では制御部301はRGB調整処理をPC100が実行するかサーバ300が実行するかを判断する。ここで制御部301はステップS1402において受信したPC100の性能情報に基づいて、RGB調整処理を実行するデバイスを判断する。PC100の性能情報が所定の性能以上であると判断した場合、制御部301はRGB調整処理をPC100が実行すると判断する。PC100の性能情報が所定の性能未満であると判断した場合、制御部301はRGB調整処理をサーバ300が実行すると判断する。本ステップの処理は、例えば図9(A)のステップS903およびステップS953の処理に相当する。
【0147】
ステップS1404において、制御部301はステップS1403において判断したRGB調整処理を実行するデバイスについての通知を接続部311を介してPC100へ送信する。本ステップの処理は、例えば図9(A)のステップS904およびステップS954の処理に相当する。
【0148】
ステップS1405において、制御部301はPC100からRAW画像データを受信したか否かを判断する。制御部301はRAW画像データをPC100から受信するまで待機する。制御部301がRAW画像データをPC100から受信したと判断した場合、処理はステップS1406に進む。本ステップの処理は、例えば図10のステップS1002の処理に相当する。
【0149】
ステップS1406において、制御部301はステップS1405において受信したRAW画像データを不揮発性メモリ303に記録する。本ステップの処理は、例えば図10のステップS1003の処理に相当する。
【0150】
ステップS1407において、制御部301はRAW画像データの現像処理を開始する旨の指示をPC100から受信したか否かを判断する。例えば制御部301はステップS1406において受信したRAW画像データに対する現像処理を開始する旨の指示をPC100から受信するまで待機する。制御部301がRAW画像データに対する現像処理を開始する旨の指示をPC100から受信したと判断した場合、処理はステップS1408に進む。本ステップの処理は、例えば図11のステップS1101の処理および図12のステップS1201の処理に相当する。
【0151】
ステップS1408において、制御部301はRGB調整処理をサーバ300が実行するか否かを判断する。例えば制御部301は、ステップS1407においてPC100からRAW現像処理を実行するよう指示された場合、RGB調整処理をサーバ300が実行しないと判断する。また例えば制御部301は、ステップS1407においてPC100からRAW現像処理およびRGB現像処理を実行するよう指示された場合、RGB調整処理をサーバ300が実行すると判断する。制御部301がRGB調整処理をサーバ300が実行しないと判断した場合、処理はステップS1409に進む。制御部301がRGB調整処理をサーバ300が実行すると判断した場合、処理はステップS1412に進む。まず、RGB調整処理をサーバ300が実行しない場合について説明する。
【0152】
ステップS1409において、制御部301はステップS1405において受信したRAW画像データに対してRAW現像処理を実行する。例えば制御部301は図7に示すフローチャートの処理に従ってRAW画像データに対してRAW現像処理を実行する。本ステップにおいて制御部301は中間画像データを生成する。本ステップの処理は、例えば図11のステップS1102の処理に相当する。
【0153】
ステップS1410において、制御部301は中間画像データを接続部311を介してPC100へ送信する。本ステップの処理は、例えば図11のステップS1103の処理に相当する。
【0154】
ステップS1411において、制御部301はPC100へ送信した中間画像データを削除し、処理を終了する。
【0155】
次にRGB調整処理をサーバ300が実行する場合について説明する。
【0156】
ステップS1412において、制御部301はステップS1405において受信したRAW画像データに対してRAW現像処理を実行する。例えば制御部301は図7に示すフローチャートの処理に従ってRAW画像データに対してRAW現像処理を実行する。本ステップにおいて制御部301は中間画像データを生成する。本ステップの処理は、例えば図12のステップS1202の処理に相当する。
【0157】
ステップS1413において、制御部301はステップS1412において生成した中間画像データに対してRGB調整処理を実行する。例えば制御部301は図8に示すフローチャートの処理に従って中間画像データに対してRGB調整処理を実行する。本ステップにおいて制御部301は汎用画像データを生成する。本ステップの処理は、例えば図12のステップS1203の処理に相当する。
【0158】
ステップS1414において、制御部301は汎用画像データを接続部311を介してPC100へ送信する。本ステップの処理は、例えば図12のステップS1204の処理およびステップS1209の処理に相当する。
【0159】
ステップS1415において、制御部301はRGB調整処理をやり直すか否かを判断する。例えば制御部301はRGB調整処理におけるパラメータ調整の指示をPC100から接続部311を介して受け付けた場合、RGB調整処理をやり直すと判断する。また例えば制御部301は所定時間PC100からRGB調整処理におけるパラメータ調整の指示を受信しない場合、RGB調整処理をやり直さないと判断する。この所定時間は例えば1時間や1日である。この時間は少なくともユーザがRGB調整処理におけるパラメータを調整することができる程度の時間である。制御部101がRGB調整処理をやり直すと判断した場合、処理はステップS1413に戻る。制御部101がRGB調整処理をやり直さないと判断した場合、処理はステップS1416に進む。
【0160】
ステップS1416において、制御部301はステップS1412において生成した中間画像データおよびステップS1413において生成した汎用画像データを削除し、処理を終了する。
【0161】
以上、本実施形態における外部装置の一例であるサーバ300の動作について説明した。なお、本実施形態ではサーバ300はPC100と接続する場合について説明したが、サーバ300がスマートフォン200と接続した場合も同様に動作する。
【0162】
なお、ステップS1408において、制御部301はステップS1403において判断した結果を利用して、RAW現像処理を実行するか、またはRAW現像処理およびRGB調整処理を実行するかを判断してもよい。
【0163】
なお、PC100およびスマートフォン200の通信速度が遅い場合や従量制課金通信である場合、サーバ300は接続を確立している通信装置の処理性能にかかわらずRGB調整処理をサーバ300が実行すると判断する。一般的に汎用画像データは中間画像データよりもデータ容量が小さいため、サーバ300は1回のデータの送受信にかかるデータ容量が少ないように通信することができるためである。
【0164】
以上、本実施形態で説明したように、PC100およびスマートフォン200は自身の性能情報に基づいたRAW画像データの現像処理をサーバ300を利用して実行する。これにより、PC100およびスマートフォン200はRAW画像データの現像処理を効率的に実行できる。
【0165】
<第二の実施形態>
第一の実施形態では、RGB調整処理を実行するデバイスをサーバ300が決定した。第二の実施形態では、RGB調整処理を実行するデバイスをPC100およびスマートフォン200が決定する処理について説明する。なお、PC100、スマートフォン200、およびサーバ300の装置構成は第一の実施形態同様である。またシステム構成についても第一の実施形態と同様である。
【0166】
図15は第二の実施形態におけるPC100の動作の一例を示すフローチャートである。
【0167】
ステップS1501において、制御部101は接続部111を介してサーバ300と接続を確立する。
【0168】
ステップS1502において、制御部101は自身の性能情報に基づいてRGB調整処理を実行するデバイスを判断する。本実施形態では制御部101はRGB調整処理をPC100が実行するかサーバ300が実行するかを判断する。この性能情報は例えば、PC(据え置きの装置)かスマートフォン(携帯可能な装置)かであること、GPU108のスペック、および現在の通信速度等である。PC100の性能情報が所定の性能以上であると判断した場合、制御部101はRGB調整処理をPC100が実行すると判断する。PC100の性能情報が所定の性能未満であると判断した場合、制御部101はRGB調整処理をサーバ300が実行すると判断する。
【0169】
ステップS1503において、制御部101はステップS1502において判断したRGB調整処理を実行するデバイスについての通知を接続部111を介してサーバ300へ送信する。本実施形態では制御部101はRGB調整処理をPC100が実行するかサーバ300が実行するかについての通知をサーバ300へ送信する。
【0170】
ステップS1504からステップS1521の処理はそれぞれ図13のステップS1304からステップS1321の処理と同様であるため説明を省略する。
【0171】
以上、第二の実施形態におけるPC100の動作の一例について説明した。なお、スマートフォン200も同様に動作する。このように、PC100およびスマートフォン200は自身の性能情報に基づいてRAW画像データの現像処理をサーバ300を利用して実行する。これにより、PC100およびスマートフォン200はRAW画像データの現像処理を効率的に実行できる。
【0172】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0173】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15