(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】エンコードとアップロードの並行処理によってメディアファイルの送信時間を短縮することができる方法およびシステム
(51)【国際特許分類】
H04L 67/00 20220101AFI20241008BHJP
【FI】
H04L67/00
(21)【出願番号】P 2020112931
(22)【出願日】2020-06-30
【審査請求日】2023-06-22
(31)【優先権主張番号】10-2019-0081428
(32)【優先日】2019-07-05
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ハ テホ
(72)【発明者】
【氏名】チェー ヘソン
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2013-161481(JP,A)
【文献】特開昭62-182919(JP,A)
【文献】特開2013-214951(JP,A)
【文献】米国特許出願公開第2002/0083124(US,A1)
【文献】米国特許出願公開第2012/0005366(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムが実行するメディアファイル送信方法であって、
前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記メディアファイル送信方法は、
前記少なくとも1つのプロセッサにより、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する段階、および
前記少なくとも1つのプロセッサにより、前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする段階
を含み、
以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとが並行処理され
、
前記アップロードする段階は、
前記分割単位のトランスコード結果物をストリーミング方式によってストリーム形態でアップロードすること
を特徴とする、メディアファイル送信方法。
【請求項2】
コンピュータシステムが実行するメディアファイル送信方法であって、
前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記メディアファイル送信方法は、
前記少なくとも1つのプロセッサにより、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する段階、および
前記少なくとも1つのプロセッサにより、前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする段階
を含み、
以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとが並行処理され、
前記トランスコードを実行する段階は、
前記分割単位のトランスコード結果物をファイル形態で格納する段階
を含み、
前記アップロードする段階は、
前記格納されたファイル形態のトランスコード結果物を前記分割単位でアップロードすること
を特徴とする
、メディアファイル送信方法。
【請求項3】
前記格納する段階は、
前記分割単位のトランスコード結果物を自体再生が可能な形態で格納すること
を特徴とする、請求項
2に記載のメディアファイル送信方法。
【請求項4】
前記少なくとも1つのプロセッサは、1つのトランスコーダと1つのアップローダを含み、
前記メディアファイルに対し、前記トランスコーダによって前記次の分割単位ファイルのトランスコードを実行すると同時に、前記アップローダによって前記以前の分割単位ファイルのアップロードを実行すること
を特徴とする、請求項1~
3のうちのいずれか一項に記載のメディアファイル送信方法。
【請求項5】
前記少なくとも1つのプロセッサは、複数のトランスコーダと複数のアップローダを含み、
前記メディアファイルに対し、前記複数のトランスコーダを利用した並列トランスコードと前記複数のアップローダを利用した並列アップロードとを実行すること
を特徴とする、請求項1~
3のうちのいずれか一項に記載のメディアファイル送信方法。
【請求項6】
コンピュータシステムが実行するメディアファイル送信方法であって、
前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記メディアファイル送信方法は、
前記少なくとも1つのプロセッサにより、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する段階、および
前記少なくとも1つのプロセッサにより、前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする段階
を含み、
以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとが並行処理され、
前記トランスコードを実行する段階は、
キーフレーム(key frame)を基準としたGOP(group of pictures)単位で前記メディアファイルを分割する段階
を含む
、メディアファイル送信方法。
【請求項7】
前記分割する段階は、
前記GOP単位が事前実験で決定された最小単位よりも小さい場合、前記GOP単位ではなく前記最小単位で前記メディアファイルを分割すること
を特徴とする、請求項
6に記載のメディアファイル送信方法。
【請求項8】
請求項1~
7のうちのいずれか一項に記載のメディアファイル送信方法をコンピュータに実行させるためのプログラムが記録されている、非一時的なコンピュータ読み取り可能な記録媒体。
【請求項9】
コンピュータシステムであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する過程、および
前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする過程
を処理し、
以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとを並行処理
し、
前記アップロードする過程は、
前記分割単位のトランスコード結果物をストリーミング方式によってストリーム形態でアップロードすること
を特徴とする、コンピュータシステム。
【請求項10】
コンピュータシステムであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する過程、および
前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする過程
を処理し、
以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとを並行処理し、
前記分割単位のトランスコード結果物は、ファイル形態で格納され、
前記アップロードする過程は、
前記格納されたファイル形態のトランスコード結果物を前記分割単位でアップロードすること
を特徴とする
、コンピュータシステム。
【請求項11】
前記少なくとも1つのプロセッサは、1つのトランスコーダと1つのアップローダを含み、
前記メディアファイルに対し、前記トランスコーダによって前記次の分割単位ファイルのトランスコードを実行すると同時に、前記アップローダによって前記以前の分割単位ファイルのアップロードを実行すること
を特徴とする、請求項
9~
10のうちのいずれか一項に記載のコンピュータシステム。
【請求項12】
前記少なくとも1つのプロセッサは、複数のトランスコーダと複数のアップローダを含み、
前記メディアファイルに対し、前記複数のトランスコーダを利用した並列トランスコードと前記複数のアップローダを利用した並列アップロードとを実行すること
を特徴とする、請求項
9~
10のうちのいずれか一項に記載のコンピュータシステム。
【請求項13】
コンピュータシステムであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する過程、および
前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする過程
を処理し、
以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとを並行処理し、
前記トランスコードを実行する過程は、
キーフレームを基準としたGOP単位で前記メディアファイルを分割してトランスコードを実行すること
を特徴とする
、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、メディアファイルを送信する技術に関する。
【背景技術】
【0002】
一般的なコミュニケーションツールであるインスタントメッセンジャー(instant messenger)は、メッセージやデータをリアルタイムで送受信することのできるソフトウェアであって、ユーザがメッセンジャー上に会話の相手を登録すると、会話リストに登録された相手とリアルタイムでメッセージをやり取りすることができる。
【0003】
このようなメッセンジャー機能は、PCはもちろん、移動通信端末のモバイル環境でもその使用が普遍化している。例えば、特許文献1(公開日2002年09月30日)には、携帯端末機にインストールされたモバイルメッセンジャー間にメッセンジャーサービスを提供することができるようにした、無線通信網を利用した携帯端末機のモバイルメッセンジャーサービスシステムおよび方法が開示されている。
【0004】
メッセンジャーの利用の大衆化に伴い、メッセンジャーが提供する機能がどんどん多様化しながら、動画やオーディオなどのメディアファイルを共有する機能が提供されるようになった。
【0005】
メディアファイルの共有機能を含んだり活用したりするサービスで、メディアトランスコード作業は、サーバではなくクライアントが実行するようにシステムが設計されている傾向にある。このような場合、エンコードを実行するための大規模なエンコードサーバクラスタをサーバが備える必要がないため、構成運営費用を節減することができる。
【0006】
ところが、クライアントでトランスコードを行う場合には、メディアファイル全体をトランスコードしてからアップロードを実行するようになるため、ファイルを変換する時間と、変換されたファイルをアップロードする時間とが必要となる。
【0007】
特に、アップロードする端末がモバイル機器である場合には、メディアファイルを変換するためにかかる時間が増加し、モバイル機器のバッテリや性能制約によってバックグラウンドの実行が制限されるモバイルオペレーティングシステムの環境により、エンコード自体が失敗となるなどの問題が発生する恐れがある。
【先行技術文献】
【特許文献】
【0008】
【文献】韓国公開特許第10-2002-0074304号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
メディアファイルに対するエンコードとアップロードを並行処理してメディアファイルの送信時間を短縮することができる方法およびシステムを提供する。
【課題を解決するための手段】
【0010】
コンピュータシステムが実行するメディアファイル送信方法であって、前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記メディアファイル送信方法は、前記少なくとも1つのプロセッサにより、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する段階、および前記少なくとも1つのプロセッサにより、前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする段階を含み、以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとが並行処理されることを特徴とする、メディアファイル送信方法を提供する。
【0011】
一側面によると、前記アップロードする段階は、前記分割単位のトランスコード結果物をストリーミング方式によってストリーム形態でアップロードしてよい。
【0012】
他の側面によると、前記トランスコードを実行する段階は、前記分割単位のトランスコード結果物をファイル形態で格納する段階を含み、前記アップロードする段階は、前記格納されたファイル形態のトランスコード結果物を前記分割単位でアップロードしてよい。
【0013】
また他の側面によると、前記格納する段階は、前記分割単位のトランスコード結果物を自体再生が可能な形態で格納してよい。
【0014】
また他の側面によると、前記少なくとも1つのプロセッサは、1つのトランスコーダと1つのアップローダを含み、前記メディアファイルに対し、前記トランスコーダによって前記次の分割単位ファイルのトランスコードを実行すると同時に、前記アップローダによって前記以前の分割単位ファイルのアップロードを実行してよい。
【0015】
また他の側面によると、前記少なくとも1つのプロセッサは、複数のトランスコーダと複数のアップローダを含み、前記メディアファイルに対し、前記複数のトランスコーダを利用した並列トランスコードと、前記複数のアップローダを利用した並列アップロードとを実行してよい。
【0016】
また他の側面によると、前記トランスコードを実行する段階は、キーフレーム(key frame)を基準として前記メディアファイルをGOP(group of pictures)単位に分割する段階を含んでよい。
【0017】
さらに他の側面によると、前記分割する段階は、前記GOP単位が事前実験で決定された最小単位よりも小さい場合、前記GOP単位ではなく前記最小単位で前記メディアファイルを分割してよい。
【0018】
コンピュータシステムが実行するメディアファイル送信方法であって、前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記メディアファイル送信方法は、前記少なくとも1つのプロセッサにより、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルに対してトランスコードを実行する段階、および前記少なくとも1つのプロセッサにより、前記メディアファイルのトランスコード結果物をストリーミング方式によってストリーム形態で前記メッセンジャーと関連するサーバにアップロードする段階を含む、メディアファイル送信方法を提供する。
【0019】
前記メディアファイル送信方法をコンピュータに実行させるためのプログラムが記録されている、非一時的なコンピュータ読み取り可能な記録媒体を提供する。
【0020】
コンピュータシステムであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルを単位サイズに分割して分割単位でトランスコードを実行する過程、および前記分割単位のトランスコード結果物を前記メッセンジャーと関連するサーバにアップロードする過程を処理し、以前の分割単位ファイルのトランスコードが完了する時点に、次の分割単位ファイルのトランスコードと前記以前の分割単位ファイルのアップロードとを並行処理することを特徴とする、コンピュータシステムを提供する。
【0021】
コンピュータシステムであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記コンピュータシステムにインストールされたメッセンジャーでメディアファイルが選択される場合、前記メディアファイルに対してトランスコードを実行する過程、および前記メディアファイルのトランスコード結果物をストリーミング方式によってストリーム形態で前記メッセンジャーと関連するサーバにアップロードする過程を処理する、コンピュータシステムを提供する。
【図面の簡単な説明】
【0022】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図である。
【
図4】本発明の一実施形態における、電子機器が実行することのできるメディアファイル送信方法を示したフローチャートである。
【
図5】本発明の一実施形態における、分割トランスコード過程を説明するための例示図である。
【
図6】本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の一例を示したフローチャートである。
【
図7】本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の一例を示したフローチャートである。
【
図8】本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の他の例を示したフローチャートである。
【
図9】本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の他の例を示したフローチャートである。
【
図10】本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の他の例を示したフローチャートである。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【0024】
本発明の実施形態は、メディアファイルを送信する技術に関する。
【0025】
本明細書で具体的に開示される事項を含む実施形態は、クライアントでトランスコードとアップロードとを並行する方式によってメディアファイルをサーバに送信することができ、これによりメディアファイルの送信時間を短縮することでき、メディアファイルの送信効率を最適化することができる。
【0026】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0027】
複数の電子機器110、120、130、140は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレット、ゲームコンソール、ウェアラブルデバイス、IoT(internet of things)デバイス、VR(virtual reality)デバイス、AR(augmented reality)デバイスなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータシステムのうちの1つを意味してよい。
【0028】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0029】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、複数の電子機器110、120、130、140においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じ、該当のアプリケーションが目的とするサービス(一例として、メッセージングサービスなど)を第1サービスとして複数の電子機器110、120、130、140に提供してよい。他の例として、サーバ160は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器110、120、130、140に配布するサービスを第2サービスとして提供してよい。
【0030】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、電子機器に対する例として電子機器110の内部構成およびサーバ150の内部構成について説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器110またはサーバ150と同一または類似の内部構成を有してよい。
【0031】
電子機器110およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、非一時的なコンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような永続的大容量記録装置を含んでよい。ここで、ROM、SSD、フラッシュメモリ、ディスクドライブのような永続的大容量記録装置は、メモリ211、221とは区分される別の永続的記録装置として電子機器110やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器110においてインストールされて実行されるブラウザや、特定のサービスの提供のために電子機器110にインストールされるアプリケーションなどのためのコード)が記録されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるコンピュータプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0032】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0033】
通信モジュール213、223は、ネットワーク170を介して電子機器110とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器110および/またはサーバ150が他の電子機器(一例として、電子機器120)または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器110のプロセッサ212がメモリ211のような記録装置に記録されたプログラムコードにしたがって生成した要求が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器110の通信モジュール213を通じて電子機器110に受信されてよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器110がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0034】
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器110と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器110のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器120が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0035】
また、他の実施形態において、電子機器110およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器110は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器110がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器110にさらに含まれるように実現されてよい。
【0036】
以下では、メディアファイルを送信するための方法およびシステムの具体的な実施形態について説明する。
【0037】
本明細書において、メディアファイルとは、ビデオやオーディオなどを包括したものを意味してよい。
【0038】
本実施形態は、クライアントからサーバにメディアファイルを送信する技術に関し、ユーザ間に設定された通信セッションを介してメディアファイルを共有する機能を含むか活用するサービス、例えば、メッセンジャーやSNS(social network service)などで活用可能である。
【0039】
以下では、メッセンジャーを利用してメディアファイルを送信することを具体的な実施形態として説明する。
【0040】
図3は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示したブロック図であり、
図4は、本発明の一実施形態における、電子機器が実行することのできるメディアファイル送信方法の例を示したフローチャートである。
【0041】
本実施形態に係る電子機器110には、コンピュータによって実現されたメディアファイル送信システムが構成されてよい。一例として、メディアファイル送信システムは、独立的に動作するプログラム形態で実現されても、あるいは特定のアプリケーションのイン-アプリ(in-app)形態で構成され、前記特定のアプリケーション上で動作が可能なように実現されてもよい。
【0042】
電子機器110にインストールされたアプリケーションが提供する命令に基づき、電子機器110に実現されたメディアファイル送信システムは、
図4に示したメディアファイル送信方法を実行してよい。
【0043】
図4に係るメディアファイル送信方法を実行するために、電子機器110のプロセッサ212は、構成要素として、
図3に示すように、トランスコーダ(transcoder)310およびアップローダ(uploader)320を含んでよい。実施形態によって、プロセッサ212の構成要素は、選択的にプロセッサ212に含まれても除外されてもよい。また、実施形態によって、プロセッサ212の構成要素は、プロセッサ212の機能の表現のために分離されても併合されてもよい。
【0044】
このようなプロセッサ212およびプロセッサ212の構成要素は、
図4のメディアファイル送信方法が含む段階410~430を実行するように電子機器110を制御してよい。例えば、プロセッサ212およびプロセッサ212の構成要素は、メモリ211が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる命令(instruction)を実行するように実現されてよい。
【0045】
ここで、プロセッサ212の構成要素は、電子機器110に記録されたプログラムコードが提供する命令(一例として、電子機器110で実行されたアプリケーションが提供する命令)にしたがってプロセッサ212によって実行される、プロセッサ212の互いに異なる機能(different functions)の表現であってよい。例えば、電子機器110がメディアファイルのトランスコードを実行するように上述した命令にしたがって電子機器110を制御するプロセッサ212の機能的表現として、トランスコーダ310が利用されてよい。
【0046】
段階410で、プロセッサ212は、電子機器110の制御と関連する命令がロードされたメモリ211から必要な命令を読み取ってよい。この場合、前記読み取られた命令は、以下で説明する段階420~430をプロセッサ212が実行するように制御するための命令を含んでよい。
【0047】
段階420で、トランスコーダ310は、電子機器110のユーザが他のユーザとの共有などのために、電子機器110にインストールされたメッセンジャーを利用して電子機器110に格納されたメディアファイルのうちからアップロードしたいメディアファイルを選択する場合、選択されたメディアファイルをトランスコードしてよい。ユーザが利用する電子機器110、120、130、140は多様であるため、ビデオやオーディオのようなメディアファイルを共有するときには、すべての電子機器110、120、130、140で再生可能なように一貫したファイル形式に変換する作業、すなわち、トランスコード作業が必要となる。言い換えれば、トランスコーダ310は、電子機器110のユーザによって選択されたメディアファイルを事前に定められたファイル形式にトランスコードするのである。特に、トランスコーダ310は、分割トランスコードを実行するものであり、メディアファイルの原本を事前に定められた単位サイズに分割して分割単位でトランスコードを実行してよい。
【0048】
段階430では、トランスコーダ310によるトランスコード作業と、アップローダ320によるアップロード作業とが並行処理されてよい。メディアファイル全体のうちの一部のファイルである1つの分割単位ファイルに対するトランスコードが完了する時点に、トランスコーダ310は、次の分割単位ファイルに対するトランスコードを継続して行うが、これと同時に、アップローダ320は、トランスコードが完了した以前の分割単位ファイルをメッセンジャーと関連するサーバ150にアップロードしてよい。言い換えれば、プロセッサ212は、メディアファイルの一部に対し、トランスコードが完了する時点に残りの部分に対するトランスコード作業を継続して行いながら、先にトランスコードされた一部のファイルに対するアップロード作業を並行処理するのである。
【0049】
トランスコード作業の結果物として生成されるファイルのサイズが100であるビデオファイルをアップロードすると仮定するとき、
従来には、ユーザがアップロードしようとするビデオファイルのトランスコード作業がすべて完了した後、全体サイズが100であるファイルが生成されるまで待機してから、全体サイズが100であるビデオファイルを一度にアップロードする方式が採用されていた。従来の方式は、サイズが100であるファイルの生成時間(ファイル変換時間)(T1)とアップロードが実行される時間(T2)との合計、すなわち、T1+T2の時間が必要であった。
【0050】
本発明に係るメディアファイル送信方法は、メディアファイルをトランスコードするときに、メディアファイル全体の変換作業が完了した後にアップロードを始めるのではなく、メディアファイル全体に分割トランスコードを実行することにより、一部のファイルのトランスコードが完了した時点に、次の部分に対するトランスコード作業と以前のトランスコード結果物に対するアップロード作業とを並行する方式により、T1+T2の時間よりも短い時間で処理することが可能となる。
【0051】
先ず、分割トランスコード方法の実施形態について、次のように説明する。
【0052】
図5は、本発明の一実施形態における、分割トランスコード過程を説明するための例示図である。
【0053】
一例として、トランスコーダ310は、ビデオファイルをGOP(group of pictures)単位に分割してエンコードを実行してよい。
【0054】
図5を参照すると、GOPのフレームタイプは、I-フレーム、P-フレーム、B-フレームなどが含まれてよい。I-フレームとI-フレームの間にはP-フレームが存在し、I-フレームとP-フレームの間にはB-フレームが存在する。I-フレームは、最良の画質をもつイントラフレーム(intra frame)であって、キーフレーム(key frame)を意味する。P-フレームは、順方向予測フレーム(predicted frame)であって、以前のキーフレームの情報に基づいて構成されたフレームを意味し、B-フレームは、双方向予測フレーム(bidirectionally interpolated frame)であって、前後フレーム、すなわち、I-フレームとP-フレームの情報に基づいて構成されたフレームを意味する。例えば、以前のI-フレームと次のI-フレームまでを1つのGOP単位として束ねてよく、該当の束に含まれるフレームの数がGOPのサイズとなる。
【0055】
トランスコーダ310は、GOP単位を分割単位として分割トランスコードを実行するようになるが、このとき、原本映像のGOPサイズが大きければ、分割単位のサイズが増加する。分割単位が極めて短い場合には、ファイルの分割数の増加によってエンコードオーバーヘッドが増えるようになる半面、分割単位が極めて長い場合には、1つの分割単位に対するエンコード完了時間が長くなる。エンコード過程において発生するオーバーヘッドを最小化しながら分割単位別のエンコード完了時間を最適化することができる適切な長さを、事前実験で決定してよい。すなわち、他の例として、トランスコーダ310は、事前実験で決定された長さを分割単位としてビデオファイルの原本を分割してよい。
【0056】
また他の例として、トランスコーダ310は、上述したように、事前実験で決定された長さの分割単位を最小単位とし、基本的にはビデオファイルをGOP単位で分割するが、GOP単位が最小単位よりも小さい場合には、GOP単位ではなく実験によって決定された最小単位でビデオファイルを分割してよい。
【0057】
メディアファイルの送信時間を短縮することができる方法の実施形態について、次のように説明する。
【0058】
図6および
図7は、本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の一例を示したフローチャートである。
【0059】
プロセッサ212は、メディアファイルに対して分割トランスコードを実行して一部のファイルにトランスコードを完了させた時点に、トランスコーダ310のファイル変換結果物をファイル形態で格納せず、ストリーム(stream)形態で直ぐにアップロードしてよい。
【0060】
図6を参照すると、プロセッサ212は、メディアファイルに対して分割トランスコードを実行するようになるが、このとき、ストリーミング方式により、メモリバッファ601を経由し、アップローダ320を経てサーバ150にトランスコーダ310の結果物(transcoded stream)を直ぐにアップロードしてよい。トランスコーダ310でメディアファイルのトランスコードが分割単位で行われることにより、以前の分割単位ファイルのトランスコードが完了する時点に、以前の分割単位ファイルのアップロードと次の分割単位ファイルのエンコードとが並行処理されてよい。
【0061】
プロセッサ212は、分割トランスコードを行いながら、トランスコード結果物を別のファイルとして格納するのではなく、結果物ストリームを直ぐにサーバ150にアップロードすることにより、メディアファイル全体に対する変換が完了していない状態でも、部分的なトランスコード結果物をアップロードすることができる。
【0062】
図7を参照すると、分割単位でメディアファイルのトランスコードとアップロードとを並行しながら、分割された一部のファイルトランスコード結果物を、ファイル形態で格納せずにストリーム形態で直ぐにアップロードする方式の場合(
図7の下の図面を参照)、メディアファイル全体の変換作業がすべて完了した後にファイル変換結果物をファイル形態で格納してアップロードする従来の方式(
図7の上の図面を参照)に比べ、全体所要時間を短縮することができる。メディアファイル全体に対する変換が完了していない状態でアップロードを始めるようになるため、従来の方式よりも、アップロードが完了するまでにかかる時間を短縮することができる。
【0063】
ストリーム方式による並行処理の場合、メディアファイルの分割単位に対するトランスコードはもちろん、メディアファイル全体に対してトランスコードを実行することも可能である。トランスコーダ310がトランスコード過程において結果をメモリバッファ601に記録し、アップローダ320がメモリバッファ601の出力ストリーム(output stream)をそのままサーバ150にアップストリーミング(up streaming)してよい。言い換えれば、トランスコード結果物がストリーム単位でメモリバッファ601に記録されると、このようなストリームをアップローダ320が即時にサーバ150にアップロードすることにより、メディアファイルのトランスコードとアップロードとを並行処理することができる。
【0064】
図8~10は、本発明の一実施形態における、メディアファイルの送信時間を短縮することができる方法の他の例を示したフローチャートである。
【0065】
プロセッサ212は、メディアファイルに対して分割トランスコードを実行し、一部のファイルのトランスコードが完了した時点に、トランスコーダ310のファイル変換結果物をファイル形態で格納してアップロードしてよい。
【0066】
図8を参照すると、エンコードとアップロードとを並行するために、プロセッサ212は、1つのトランスコーダ310と1つのアップローダ320とを含んでよい。
【0067】
トランスコーダ310では、メディアファイルのトランスコードを分割単位で順に行い、ファイル形態で格納されたトランスコード結果物(transcoded chunk file)をアップローダ320に伝達するようになり、トランスコーダ310は、以前の分割単位ファイルのトランスコードが完了する時点に次の分割単位ファイルのトランスコードを実行するが、これと同時に、アップローダ320は、以前の分割単位ファイルのトランスコード結果物をファイル形態でサーバ150にアップロードしてよい。
【0068】
プロセッサ212は、分割トランスコードの実行によるトランスコード結果物を分割単位ファイルのエンコードが完了した後すぐに生成するため、メディアファイル全体に対する変換が完了していない状態でも、分割単位ファイルのトランスコード結果物をアップロードすることができる。
【0069】
図9を参照すると、分割単位でメディアファイルのトランスコードとアップロードとを並行しながら、分割された一部のファイルのトランスコード結果物をファイル形態でアップロードする方式の場合(
図9の下の図面を参照)、メディアファイル全体に対する変換作業がすべて完了した後にファイル変換結果物をファイル形態で格納してアップロードする従来の方式(
図9の上の図面を参照)に比べ、全体所要時間を短縮することができる。
【0070】
最初のアップロードが始まる時間は、1番目の分割ファイルの変換が完了する時点であり、最後のアップロードが始まる時間は、最後の分割ファイルの変換が完了する時点であり、メディアファイル全体のアップロードが完了する総時間は、最後の分割ファイルのアップロードが完了するまでにかかる時間であると言える。例えば、トランスコード作業の結果物として生成されるファイルのサイズが100であるメディアファイルに対し、ファイル全体のトランスコードが完了するまで待機してから、サイズが100となるファイルを一度にアップロードする従来の方式に比べ、サイズが100のメディアファイルを20のファイルに分割して5サイズのファイルのトランスコードとアップロードとを並行する方式が、結果的には全体所要時間の短縮に繋がる。すなわち、メディアファイル全体に対する変換が完了していない状態でアップロードが始まるため、従来の方式よりもアップロードが完了するまでにかかる時間が短縮されるようになる。
【0071】
トランスコードとアップロードとの並行処理によってメディアファイルの送信時間を短縮することができる方法は、ネットワーク品質が保障された環境で、ファイルのアップロードの最中に通信障害が発生しない状況を仮定したものである。例外として、メディアファイルが10個のファイルに分割されて順にアップロードされる状況で、8番目の分割ファイルまでは正常にアップロードされたが、一時的な通信障害により9番目のファイルをアップロードするための通信セッションに問題が生じて10番目の分割ファイルのアップロードが先に完了した場合、実際にアップロードが完了する時間は、9番目の分割ファイルのアップロードが完了した時点となる。
【0072】
他の例として、
図10を参照すると、エンコードとアップロードとを並行するために、プロセッサ212は、複数のトランスコーダ(Transcoder#1~#N)310と、複数のアップローダ(Uploader#1~#N)320とを含んでよく、このとき、トランスコーダ310とアップローダ320は、1対1で配置されて構成されてよい。
【0073】
トランスコーダ310とアップローダ320の1対1配置の他にも、トランスコーダ310とアップローダ320の性能を考慮した上でトランスコーダ310とアップローダ320の配置構造が決定されてよい。言い換えれば、トランスコーダ310の性能がアップローダ320よりも優れている場合は、トランスコーダ310の台数がアップローダ320よりも少なくてよく、これとは反対に、アップローダ320の性能がトランスコーダ310よりも優れている場合は、アップローダ320の数がトランスコーダ310よりも少なくてよい。
【0074】
プロセッサ212は、事前に定められたサイズの分割単位でメディアファイルを分割した後、各分割単位ファイルを複数のトランスコーダ310に割り当ててよい。このとき、各トランスコーダ310は、割り当てられた分割単位ファイルに対してトランスコードを実行してファイル形態で格納されたトランスコード結果物をアップローダ320に伝達すると、各アップローダ320は、対応するトランスコーダ310からファイル形態のトランスコード結果物の伝達を受け、サーバ150にアップロードしてよい。
【0075】
したがって、複数のトランスコーダ310を利用した並列トランスコードと複数のアップローダ320を利用した並列アップロードとを実行することにより、メディアファイルのエンコードとアップロードとを並行処理し、ファイル送信時間をいっそう短縮することができる。
【0076】
さらに、プロセッサ212は、分割トランスコードを実行することにより、エンコードやアップロードにエラーが発生する状況において、エラーとなった分割単位ファイルに対する作業をやり直すことができる。
【0077】
ファイル全体のトランスコードが完了するまで待機してから単一ファイルを生成して一度にアップロードする従来の方式の場合、トランスコードやアップロードの最中にエラーが発生すると、これは作業全体のエラーに繋がるようになる。
【0078】
これとは異なり、本発明では、分割単位でトランスコードとアップロードを実行するため、作業にエラーが発生したとしても、エラーとなった分割単位ファイルに対して部分的に作業を再開することができ、全体的な所要時間を短縮することができる。
【0079】
プロセッサ212は、分割単位のトランスコードとアップロードとを並行する方法により、メディアファイルをサーバ150に送信するときに、メディアファイル全体をダウンロードしなくても、分割単位のトランスコード結果物だけで再生可能な形態(例えば、progressive downloadable format)でアップロードすることができ、このとき、サーバ150では、ファイル変換作業を別途実行する必要がない。メディアファイル全体をダウンロードしなくては再生することができない形態でアップロードされたとしても、サーバ150にアップロードされたファイルを組み合わせて再生可能な形態に転換(re-formatting)する費用は比較的少ない。分割単位のトランスコード結果物を、ファイル形態ではなくストリーム形態でアップロードする場合には、メディアファイル全体をダウンロードしなくては自体再生が不可能な状態であるため、サーバ150でトランスコード結果物に該当するストリームを再生可能な形態のフォーマットに変更するようになり、このとき消費されるようになる費用やリソースは、サーバ150側でメディアファイルのトランスコードを直接実行するときの運営費用に比べて格段に少ない。
【0080】
このように、本発明の実施形態によると、クライアントでメディアファイルに対するトランスコードを実行してサーバにアップロードする環境で、メディアファイルに対するトランスコードとアップロードとを並行処理することにより、メディアファイルの送信完了までにかかる全体時間を効果的に短縮することができる。
【0081】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0082】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0083】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0084】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0085】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0086】
212:プロセッサ
310:トランスコーダ
320:アップローダ