(57)【要約】【課題】  分散トランスコード方法および分散トランスコードシステムを提供する。【解決手段】  分散トランスコード方法は、映像コンテンツを一定間隔のセグメント（ｓｅｇｍｅｎｔ）に分割する段階、分割されたセグメントを複数のワーカー（ｗｏｒｋｅｒ）に割り当てて並列トランスコード（ｐａｒａｌｌｅｌ  ｔｒａｎｓｃｏｄｉｎｇ）を実行する段階、およびトランスコードされたセグメントを連結して１つのエンコードファイルとして併合する段階を含む。【選択図】      図３
2021505068.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実現されるサーバで実行される分散トランスコード方法であって、
映像コンテンツを一定間隔のセグメント（ｓｅｇｍｅｎｔ）に分割する段階、
分割されたセグメントを複数のワーカー（ｗｏｒｋｅｒ）に割り当てて並列トランスコード（ｐａｒａｌｌｅｌ  ｔｒａｎｓｃｏｄｉｎｇ）を実行する段階、および
トランスコードされたセグメントを連結して１つのエンコードファイルとして併合する段階
を含む、分散トランスコード方法。
【請求項２】
前記分割する段階は、
各セグメントのリードオフセット（ｒｅａｄ  ｏｆｆｓｅｔ）を指定する論理的な分割によって前記映像コンテンツを分割すること
を特徴とする、請求項１に記載の分散トランスコード方法。
【請求項３】
前記分割する段階は、
各セグメントのリードオフセット（ｒｅａｄ  ｏｆｆｓｅｔ）を指定する論理的な分割によって前記映像コンテンツを分割し、
前記実行する段階は、
各セグメントのリードオフセット情報を、該当のセグメントが割り当てられたワーカーに伝達する段階
を含み、
ワーカーそれぞれは、割り当てられたセグメントのリードオフセット情報を利用して該当のセグメントのファイルを読み取り、エンコードを実行すること
を特徴とする、請求項１に記載の分散トランスコード方法。
【請求項４】
前記分割する段階は、
前記映像コンテンツをＧＯＰ（ｇｒｏｕｐ  ｏｆ  ｐｉｃｔｕｒｅｓ）単位のセグメントに分割するか、事前実験によって決定された最小単位のセグメントに分割すること
を特徴とする、請求項１に記載の分散トランスコード方法。
【請求項５】
前記実行する段階は、
ワーカーの同時可用なエンコードの数とアイドル時間（ｉｄｌｅ  ｔｉｍｅ）のうちの少なくとも１つを利用した優先順位によってセグメントを割り当てる段階
を含む、請求項１〜４のうちのいずれか一項に記載の分散トランスコード方法。
【請求項６】
前記実行する段階は、
セグメントが割り当てられた各ワーカーに対し、セグメントの映像複雑度に応じてＣＰＵリソースを割り当てる段階
を含む、請求項１〜４のうちのいずれか一項に記載の分散トランスコード方法。
【請求項７】
前記併合する段階は、
各ワーカーからエンコードされたセグメントファイルを受信してストレージ（ｓｔｏｒａｇｅ）に保存する段階、および
前記ストレージに保存されたセグメントファイルを順に連結して前記映像コンテンツの結果パケットを生成する段階
を含む、請求項１〜６のうちのいずれか一項に記載の分散トランスコード方法。
【請求項８】
前記分散トランスコード方法は、
前記映像コンテンツのエンコード途中に、前記映像コンテンツに対して割り当てられたワーカーの数をリアルタイムで調節する段階
を含む、請求項１〜７のうちのいずれか一項に記載の分散トランスコード方法。
【請求項９】
前記調節する段階は、
前記映像コンテンツに対して割り当てられたワーカープール（ｐｏｏｌ）から一部のワーカーを除外させて前記映像コンテンツに対するエンコード速度を低める段階
を含む、請求項８に記載の分散トランスコード方法。
【請求項１０】
前記調節する段階は、
前記映像コンテンツに対して割り当てられたワーカープール（ｐｏｏｌ）に少なくとも１つのワーカーを追加して前記映像コンテンツに対するエンコード速度を高める段階
を含む、請求項８に記載の分散トランスコード方法。
【請求項１１】
請求項１〜１０のうちのいずれか一項に記載の分散トランスコード方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体。
【請求項１２】
コンピュータで実現されるサーバにおける分散トランスコードシステムであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
映像コンテンツを一定間隔のセグメントに分割する過程、
分割されたセグメントを複数のワーカーに割り当てて並列トランスコードを実行する過程、および
トランスコードされたセグメントを連結して１つのエンコードファイルとして併合する過程
を処理する、分散トランスコードシステム。
【請求項１３】
前記分割する過程は、
各セグメントのリードオフセットを指定する論理的な分割によって前記映像コンテンツを分割すること
を特徴とする、請求項１２に記載の分散トランスコードシステム。
【請求項１４】
前記分割する過程は、
各セグメントのリードオフセットを指定する論理的な分割によって前記映像コンテンツを分割し、
前記実行する過程は、
各セグメントのリードオフセット情報を、該当のセグメントが割り当てられたワーカーに伝達する過程
を含み、
ワーカーそれぞれは、割り当てられたセグメントのリードオフセット情報を利用して該当のセグメントのファイルを読み取り、エンコードを実行すること
を特徴とする、請求項１２に記載の分散トランスコードシステム。
【請求項１５】
前記分割する過程は、
前記映像コンテンツをＧＯＰ単位のセグメントに分割するか、事前実験によって決定された最小単位のセグメントに分割すること
を特徴とする、請求項１２に記載の分散トランスコードシステム。
【請求項１６】
前記実行する過程は、
ワーカーの同時可用なエンコードの数とアイドル時間のうちの少なくとも１つを利用した優先順位によってセグメントを割り当てる過程
を含む、請求項１２〜１５のうちのいずれか一項に記載の分散トランスコードシステム。
【請求項１７】
前記実行する過程は、
セグメントが割り当てられた各ワーカーに対し、セグメントの映像複雑度に応じてＣＰＵリソースを割り当てる過程
を含む、請求項１２〜１５のうちのいずれか一項に記載の分散トランスコードシステム。
【請求項１８】
前記併合する過程は、
各ワーカーからエンコードされたセグメントファイルを受信してストレージに保存し、
前記ストレージに保存されたセグメントファイルを順に連結して前記映像コンテンツの結果パケットを生成すること
を特徴とする、請求項１２〜１７のうちのいずれか一項に記載の分散トランスコードシステム。
【請求項１９】
前記少なくとも１つのプロセッサは、
前記映像コンテンツのエンコード途中に、前記映像コンテンツに対して割り当てられたワーカーの数をリアルタイムで調節する過程
を処理する、請求項１２〜１８のうちのいずれか一項に記載の分散トランスコードシステム。
【請求項２０】
前記調節する過程は、
前記映像コンテンツに対して割り当てられたワーカープールから一部のワーカーを除外させて前記映像コンテンツに対するエンコード速度を低めるか、あるいは前記映像コンテンツに対して割り当てられたワーカープールに少なくとも１つのワーカーを追加して前記映像コンテンツに対するエンコード速度を高めること
を特徴とする、請求項１９に記載の分散トランスコードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の説明は、分散トランスコードを処理する技術に関する。
【背景技術】
【０００２】
近年は、ＶＯＤ（ビデオ・オン・デマンド）システムや各種ポータルの動画サービスの拡大により、サービスを提供するシステムに合うように動画コンテンツをトランスコード（エンコード）する必要が増加している。
【０００３】
一般的に、動画サービス会社では、個別のエンコードサーバを置き、圧縮アルゴリズム（例えば、ＭＰＥＧ２またはＨ．２６４など）に基づいてエンコードおよびトランスコードを行っている。
【０００４】
例えば、韓国公開特許第１０−２００５−００９１３６９号公報（公開日２００５年９月１５日）には、１つのフォーマットにコーディングされた動画を他の動画コーディングフォーマットに変換する技術が開示されている。
【０００５】
動画エンコードは、特に、高画質の動画をエンコードするときにＣＰＵに莫大な負荷がかかるため、エンコードシステムは、１つのエンコードサーバで１つの動画ファイルだけをエンコードしている。
【０００６】
このような構成により、生放送コンテンツをＶＯＤサービスで提供しようとするとき、迅速なサービスの要求に支障をきたすようになる。従来の動画サービスでは、エンコードおよびトランスコードにかかる時間の増加により、円滑なサービスを提供することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
原本映像を一定間隔のセグメント（ｓｅｇｍｅｎｔ）に分けて並列トランスコード（ｐａｒａｌｌｅｌ  ｔｒａｎｓｃｏｄｉｎｇ）を実行する、分散トランスコード技術を提供する。
【０００８】
サーバ、ネットワーク、エンコード時間などのような全体的な技術とインフラを考慮して適切にセグメントを分配し、エンコードされたセグメントを迅速に集める最適化した連結（ｃｏｎｃａｔｅｎａｔｅ）過程によって分散エンコード性能を最大化させることができる方法およびシステムを提供する。
【課題を解決するための手段】
【０００９】
コンピュータによって実現される、サーバで実行される分散トランスコード方法であって、映像コンテンツを一定間隔のセグメント（ｓｅｇｍｅｎｔ）に分割する段階、分割されたセグメントを複数のワーカー（ｗｏｒｋｅｒ）に割り当てて並列トランスコード（ｐａｒａｌｌｅｌ  ｔｒａｎｓｃｏｄｉｎｇ）を実行する段階、およびトランスコードされたセグメントを連結して１つのエンコードファイルとして併合する段階を含む、分散トランスコード方法を提供する。
【００１０】
一側面によると、前記分割する段階は、各セグメントのリードオフセット（ｒｅａｄ  ｏｆｆｓｅｔ）を指定する論理的な分割によって前記映像コンテンツを分割してよい。
【００１１】
他の側面によると、前記分割する段階は、各セグメントのリードオフセット（ｒｅａｄ  ｏｆｆｓｅｔ）を指定する論理的な分割によって前記映像コンテンツを分割し、前記実行する段階は、各セグメントのリードオフセット情報を該当のセグメントが割り当てられたワーカーに伝達する段階を含み、ワーカーそれぞれは、割り当てられたセグメントのリードオフセット情報を利用して該当のセグメントのファイルを読み取ってエンコードを実行してよい。
【００１２】
また他の側面によると、前記分割する段階は、前記映像コンテンツをＧＯＰ（ｇｒｏｕｐ  ｏｆ  ｐｉｃｔｕｒｅｓ）単位のセグメントに分割するか、事前実験によって決定された最小単位のセグメントに分割してよい。
【００１３】
また他の側面によると、前記実行する段階は、ワーカーの同時可用なエンコードの数とアイドル時間（ｉｄｌｅ  ｔｉｍｅ）のうちの少なくとも１つを利用した優先順位によってセグメントを割り当てる段階を含んでよい。
【００１４】
また他の側面によると、前記実行する段階は、セグメントが割り当てられた各ワーカーに対し、セグメントの映像複雑度に応じてＣＰＵリソースを割り当てる段階を含んでよい。
【００１５】
また他の側面によると、前記併合する段階は、各ワーカーからエンコードされたセグメントファイルを受信してストレージ（ｓｔｏｒａｇｅ）に保存する段階、および前記ストレージに保存されたセグメントファイルを順に連結して前記映像コンテンツの結果パケットを生成する段階を含んでよい。
【００１６】
また他の側面によると、前記分散トランスコード方法は、前記映像コンテンツのエンコードの途中に、前記映像コンテンツに対して割り当てられたワーカーの数をリアルタイムで調節する段階を含んでよい。
【００１７】
また他の側面によると、前記調節する段階は、前記映像コンテンツに対して割り当てられたワーカープール（ｐｏｏｌ）から一部のワーカーを除外させて前記映像コンテンツに対するエンコード速度を低める段階を含んでよい。
【００１８】
さらに他の側面によると、前記調節する段階は、前記映像コンテンツに対して割り当てられたワーカープール（ｐｏｏｌ）に少なくとも１つのワーカーを追加して前記映像コンテンツに対するエンコード速度を高める段階を含んでよい。
【００１９】
前記分散トランスコード方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。
【００２０】
コンピュータによって実現される、サーバにおける分散トランスコードシステムであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも１つのプロセッサを含み、前記少なくとも１つのプロセッサは、映像コンテンツを一定間隔のセグメントに分割する過程、分割されたセグメントを複数のワーカーに割り当てて並列トランスコードを実行する過程、およびトランスコードされたセグメントを連結して１つのエンコードファイルとして併合する過程を処理する、分散トランスコードシステムを提供する。
【発明の効果】
【００２１】
本発明の実施形態によると、原本映像を一定間隔のセグメントに分けて並列トランスコードを実行することにより、エンコードとトランスコードの時間改善をより向上させることができる。
【００２２】
本発明の実施形態によると、サーバ、ネットワーク、エンコード時間などのような全体的な技術とインフラを考慮して適切にセグメントを分配し、エンコードされたセグメントを迅速に集める最適化した連結過程によって分散エンコード性能を最大化させることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図２】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図３】本発明の一実施形態における、分散トランスコード方法を示したフローチャートである。
【図４】本発明の一実施形態における、分散トランスコードシステムが含むことのできる構成要素の例を示した図である。
【図５】本発明の一実施形態における、原本映像を分割する過程を説明するための例示図である。
【図６】本発明の一実施形態における、分割されたセグメントを分配する過程を説明するための例示図である。
【図７】本発明の一実施形態における、エンコードされたセグメントを１つのエンコード結果物として併合する過程を説明するための例示図である。
【図８】本発明の一実施形態における、ワーカーの数を減らしてエンコード速度を低める過程を説明するための図である。
【図９】本発明の一実施形態における、ワーカーの数を増やしてエンコード速度を高める過程を説明するための図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について、添付の図面を参照しながら詳しく説明する。
【００２５】
本発明の実施形態は、分散トランスコーダに関し、より詳細には、より向上した時間改善のために映像を分割してセグメントに分けて並列トランスコードを実行する方法およびシステムに関する。
【００２６】
本明細書で具体的に開示される事項を含む実施形態は、分散トランスコードにより、時間改善、費用節減、復元性、効率性、合理性などの側面において相当な長所を達成する。
【００２７】
図１は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図１のネットワーク環境は、複数の電子機器１１０、１２０、１３０、１４０、複数のサーバ１５０、１６０、およびネットワーク１７０を含む例を示している。このような図１は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図１のように限定されることはない。
【００２８】
複数の電子機器１１０、１２０、１３０、１４０は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器１１０、１２０、１３０、１４０の例としては、スマートフォン、携帯電話、ナビゲーション、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、ノート型ＰＣ、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレット、ゲームコンソール、ウェアラブルデバイス、ＩｏＴ（ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ）デバイス、ＶＲ（ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ）デバイス、ＡＲ（ａｕｇｍｅｎｔｅｄ  ｒｅａｌｉｔｙ）デバイスなどがある。一例として、図１では、電子機器１（１１０）の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器１（１１０）は、実質的に無線または有線通信方式を利用し、ネットワーク１７０を介して他の電子機器１２０、１３０、１４０および／またはサーバ１５０、１６０と通信することのできる多様な物理的なコンピュータ装置のうちの１つを意味してよい。
【００２９】
通信方式が限定されることはなく、ネットワーク１７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など）を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク１７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでよい。さらに、ネットワーク１７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これらに限定されることはない。
【００３０】
サーバ１５０、１６０それぞれは、複数の電子機器１１０、１２０、１３０、１４０とネットワーク１７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する１つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ１５０は、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０に第１サービスを提供するシステムであってよく、サーバ１６０も、ネットワーク１７０を介して接続した複数の電子機器１１０、１２０、１３０、１４０に第２サービスを提供するシステムであってよい。より具体的な例として、サーバ１５０は、複数の電子機器１１０、１２０、１３０、１４０においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じ、該当のアプリケーションが目的とするサービス（一例として、動画サービスなど）を第１サービスとして複数の電子機器１１０、１２０、１３０、１４０に提供してよい。他の例として、サーバ１６０は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器１１０、１２０、１３０、１４０に配布するサービスを第２サービスとして提供してよい。
【００３１】
図２は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図２では、電子機器に対する例として電子機器１（１１０）の内部構成およびサーバ１５０の内部構成について説明する。また、他の電子機器１２０、１３０、１４０やサーバ１６０も、上述した電子機器１（１１０）またはサーバ１５０と同一または類似の内部構成を有してよい。
【００３２】
電子機器１（１１０）およびサーバ１５０は、メモリ２１１、２２１、プロセッサ２１２、２２２、通信モジュール２１３、２２３、および入力／出力インタフェース２１４、２２４を含んでよい。メモリ２１１、２２１は、非一時的なコンピュータ読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ディスクドライブ、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）などのような永続的大容量記録装置を含んでよい。ここで、ＲＯＭ、ＳＳＤ、フラッシュメモリ、ディスクドライブのような永続的大容量記録装置は、メモリ２１１、２２１とは区分される別の永続的記録装置として電子機器１（１１０）やサーバ１５０に含まれてもよい。また、メモリ２１１、２２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電子機器１（１１０）においてインストールされて実行されるブラウザや特定のサービスの提供のために電子機器１（１１０）にインストールされるアプリケーションなどのためのコード）が記録されてよい。このようなソフトウェア構成要素は、メモリ２１１、２２１とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信モジュール２１３、２２３を通じてメモリ２１１、２２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ１６０）がネットワーク１７０を介して提供するファイルによってインストールされるコンピュータプログラム（一例として、上述したアプリケーション）に基づいてメモリ２１１、２２１にロードされてよい。
【００３３】
プロセッサ２１２、２２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ２１１、２２１または通信モジュール２１３、２２３によって、プロセッサ２１２、２２２に提供されてよい。例えば、プロセッサ２１２、２２２は、メモリ２１１、２２１のような記録装置に記録されたプログラムコードに従って受信される命令を実行するように構成されてよい。
【００３４】
通信モジュール２１３、２２３は、ネットワーク１７０を介して電子機器１（１１０）とサーバ１５０とが互いに通信するための機能を提供してもよいし、電子機器１（１１０）および／またはサーバ１５０が他の電子機器（一例として、電子機器２（１２０））または他のサーバ（一例として、サーバ１６０）と通信するための機能を提供してもよい。一例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１のような記録装置に記録されたプログラムコードに従って生成した要求が、通信モジュール２１３の制御に従ってネットワーク１７０を介してサーバ１５０に伝達されてよい。これとは逆に、サーバ１５０のプロセッサ２２２の制御に従って提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール２２３とネットワーク１７０を経て電子機器１（１１０）の通信モジュール２１３を通じて電子機器１（１１０）に受信されてよい。例えば、通信モジュール２１３を通じて受信されたサーバ１５０の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ２１２やメモリ２１１に伝達されてよく、コンテンツやファイルなどは、電子機器１（１１０）がさらに含むことのできる記録媒体（上述した永続的記録装置）に記録されてよい。
【００３５】
入力／出力インタフェース２１４は、入力／出力装置２１５とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力／出力インタフェース２１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。入力／出力装置２１５は、電子機器１（１１０）と１つの装置で構成されてもよい。また、サーバ１５０の入力／出力インタフェース２２４は、サーバ１５０に接続するかサーバ１５０が含むことのできる入力または出力のための装置（図示せず）とのインタフェースのための手段であってよい。より具体的な例として、電子機器１（１１０）のプロセッサ２１２がメモリ２１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ１５０や電子機器２（１２０）が提供するデータを利用して構成されるサービス画面やコンテンツが、入力／出力インタフェース２１４を通じてディスプレイに表示されてよい。
【００３６】
また、他の実施形態において、電子機器１（１１０）およびサーバ１５０は、図２の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器１（１１０）は、上述した入力／出力装置２１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（１１０）がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力／出力ポート、振動のための振動器などのような多様な構成要素が、電子機器１（１１０）にさらに含まれるように実現されてよい。
【００３７】
以下では、分散トランスコード方法と分散トランスコードシステムの具体的な実施形態について説明する。
【００３８】
図３は、本発明の一実施形態における、分散トランスコードのための基本過程を示したフローチャートである。
【００３９】
本実施形態に係るサーバ１５０は、クライアント（ｃｌｉｅｎｔ）である複数の電子機器１１０、１２０、１３０、１４０を対象に動画サービスを提供するプラットフォームの役割をする。サーバ１５０は、電子機器１１０、１２０、１３０、１４０上にインストールされたアプリケーションと連動して動画サービスを提供してよい。
【００４０】
サーバ１５０は、図３に係る分散トランスコード方法を実行するための構成要素としてプロセッサ２２２を含んでよい。実施形態によって、プロセッサ２２２は、プロセッサ２２２の機能の表現のために２つ以上の構成要素に分離されてもよい。
【００４１】
このようなプロセッサ２２２は、図３の分散トランスコード方法が含む段階３０１〜３０３を実行するようにサーバ１５０を制御してよい。例えば、プロセッサ２２２は、メモリ２２１が含むオペレーティングシステムのコードと、少なくとも１つのプログラムのコードとによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてよい。
【００４２】
本発明に係る分散トランスコード方法は、サーバ１５０によって実行されるものであり、図３に示すように、基本的には、原本映像を一定間隔のセグメントに分ける過程（ｓｐｌｉｔ）（Ｓ３０１）、各セグメントを並列トランスコードする過程（ｔｒａｎｓｃｏｄｉｎｇ）（Ｓ３０２）、およびトランスコードされたセグメントを連結して１つのエンコードファイルとして併合する過程（ｍｅｒｇｅ）（Ｓ３０３）を含んでよい。
【００４３】
図４は、本発明の一実施形態における、分散トランスコードシステムが含むことのできる構成要素の例を示した図である。
【００４４】
図４に示したように、分散トランスコードシステム４００は、分散トランスコードのための構成要素として、制御部（ｃｏｎｔｒｏｌｌｅｒ）４１０、分割および併合部（ｄｉｓｔｒｉｂｕｔｏｒ（ｓｐｌｉｔｔｅｒ＆ｍｅｒｇｅ））４２０、およびエンコード実行部４３０を備えてよい。一例として、制御部４１０と分割および併合部４２０は、図１と図２を参照しながら説明したサーバ１５０のプロセッサ２２２に含まれてよい。また、エンコード実行部４３０は、エンコード作業を実行するための単位トランスコーダであるワーカー（ｗｏｒｋｅｒ）で構成されるものであって、ワーカーそれぞれはサーバ１５０に連結する個別のコンピュータ装置であり、分割および併合部４２０から割り当てられた作業を実行するエンコードサーバの役割をする。
【００４５】
制御部４１０は、エンコード作業の全般的な状態を管理する役割をする。制御部４１０は、電子機器１１０、１２０、１３０、１４０の要請に対応する動画サービスを提供するために必要となるエンコード作業を制御してよい。
【００４６】
分割および併合部４２０は、分散主体であって、分散トランスコードのための作業を担当する。具体的に、分割および併合部４２０は、制御部４１０で要請したエンコード作業に対し、原本映像を適切な大きさのセグメントに分けてエンコード実行部４３０に該当するワーカーに分配し、各ワーカーでエンコードされたセグメントを併合して１つのエンコード結果物を生成する役割をする。
【００４７】
ワーカーそれぞれは、分割および併合部４２０から伝達されたセグメントに対するエンコード作業を実行し、エンコードされたセグメントを分割および併合部４２０に再び伝達する役割をする。
【００４８】
したがって、分散トランスコードシステム４００は、原本映像を分割して並列にトランスコードすることにより、動画サービスのための全体エンコード時間と分散エンコード性能を改善することができる。
【００４９】
分散エンコード性能を最大化させるための最適化部分の具体的な実施形態について説明する。
【００５０】
図５は、本発明の一実施形態における、原本映像を分割する過程を説明するための例示図である。
【００５１】
図５を参照すると、分割および併合部４２０は、原本映像５０１を複数のセグメント（Ｓ＿０、Ｓ＿１、Ｓ＿２、・・・、Ｓ＿Ｎ）５０３に分割してよい。特に、本発明において、分割とは、データを物理的に分割するのではなく、論理的に分割することを意味する。言い換えれば、本発明では、原本映像に対する論理的な分割方式によって各セグメントのリードオフセット（ｒｅａｄ  ｏｆｆｓｅｔ）を指定する。
【００５２】
分割および併合部４２０は、図５に示すように、原本映像５０１を適切な大きさのセグメント５０３に分けてよい。一例として、分割および併合部４２０は、原本映像５０１をＧＯＰ（ｇｒｏｕｐ  ｏｆ  ｐｉｃｔｕｒｅｓ）単位のセグメント５０３に分けてよい。言い換えれば、分割および併合部４２０は、原本映像５０１を該当の映像のＧＯＰ境界を基準に分けるようになるが、このとき、原本映像５０１のＧＯＰが大きければ、セグメント５０３のサイズが増加する。他の例として、分割および併合部４２０は、事前に定められた一定の大きさの分割単位（例えば、４秒）を基準に原本映像５０１を分割してよい。セグメント５０３の長さが極めて短ければ、セグメント５０３の数が増加し、エンコードオーバーヘッドが増加するようになる。この反面、セグメント５０３の長さが極めて長ければ、エンコード完了時点の差がワーカーによって異なるようになり、すなわち、ワーカーにエンコードロードが均等に分散されず全体エンコード時間が長くなる。エンコード過程で発生するオーバーヘッドを最小化して全体ワーカーにエンコードロードが均等に分散されるようにするために、適した長さを事前実験によって決定してよく、決定された長さを分割単位として原本映像５０１を分けてよい。また他の例として、分割および併合部４２０は、上述した事前実験によって決定された長さの分割単位を最小単位とし、基本的には原本映像５０１をＧＯＰ単位で分割するが、ＧＯＰ単位が最小単位よりも小さい場合には、ＧＯＰ単位でなく実験によって決定された最小単位で原本映像５０１を分けてもよい。
【００５３】
図６は、本発明の一実施形態における、分割されたセグメントを分配する過程を説明するための例示図である。
【００５４】
図６を参照すると、分割および併合部４２０は、セグメント（Ｓ＿０、Ｓ＿１、Ｓ＿２、・・・、Ｓ＿Ｎ）５０３をエンコード実行部４３０であるワーカー（Ｗｏｒｋｅｒ＿０、Ｗｏｒｋｅｒ＿１、Ｗｏｒｋｅｒ＿２、・・・、Ｗｏｒｋｅｒ＿Ｍ）（ただし、Ｍ≦Ｎ）に適切に伝達するようになる。このとき、分割および併合部４２０は、物理的に原本映像５０１を分割して実際にデータをワーカーに伝達するのではなく、ストレージシステム（例えば、ＮＡＳ（ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ  ｓｔｏｒａｇｅ）など）（図示せず）に保存された原本映像５０１に対する各セグメント５０３のリードオフセット情報を伝達する。
【００５５】
原本映像５０１が保存されたストレージシステムをワーカーそれぞれがマウント（ｍｏｕｎｔ）している状況で、分割および併合部４２０は、各セグメントのリードポイントをワーカーに伝達する。このとき、各ワーカーは、分割および併合部４２０から伝達されたリードポイントを利用することで、ストレージシステムに保存された原本映像５０１のうちから自身に割り当てられたセグメントのファイルだけを読み取り、エンコードを実行してよい。
【００５６】
したがって、本発明では、原本映像５０１に対する物理的分割によって実際にデータをワーカーに伝達する方式ではなく、論理的分割によって各セグメントのリードオフセット情報だけをワーカーに伝達する方式を適用することにより、映像分割と分配にかかる時間を著しく短縮させることができる。
【００５７】
また、分割および併合部４２０は、セグメント（Ｓ＿０、Ｓ＿１、Ｓ＿２、・・・、Ｓ＿Ｎ）５０３それぞれをエンコード実行部４３０のワーカー（Ｗｏｒｋｅｒ＿０、Ｗｏｒｋｅｒ＿１、Ｗｏｒｋｅｒ＿２、・・・、Ｗｏｒｋｅｒ＿Ｍ）に割り当てるときに、事前に定められた優先順位を基準としてよい。一例として、分割および併合部４２０は、同時可用のエンコードの数が最大であるワーカーを優先的に割り当ててよい。ワーカーごとに一度にエンコードできる数が異なり得るため、可用のエンコードの数が多い順にワーカーを割り当ててよい。全体ワーカーの装備に対してセグメントを均等に分散することが好ましい。１つの装備で同時に実行するエンコードの数が増えれば、全体エンコードの速度は高まるが、各セグメント別のエンコード速度は低下するようになる。したがって、セグメントをワーカーに割り当てるときに、セグメントが特定の装備のワーカーに集中する状況を最大限避けることが、エンコード速度の状態を最適に維持するために重要となる。他の例として、分割および併合部４２０は、アイドル時間（ｉｄｌｅ  ｔｉｍｅ）が最も長いワーカーを優先的に割り当ててよい。ここ最近にセグメントが割り当てられていない待機時間を考慮し、待機時間が長い順にワーカーを割り当ててよい。また他の例として、分割および併合部４２０は、可用エンコードの数とアイドル時間の両方を考慮してワーカーを割り当ててもよい。例えば、可用エンコードの数が最も多いワーカーを優先的に割り当て、可用エンコードの数が等しい場合には、アイドル時間が最も長いワーカーを割り当ててよい。
【００５８】
したがって、本発明では、分割されたセグメントをワーカーに割り当てるときに、ワーカーの可用なエンコード数および／またはアイドル時間を考慮した優先順位を基準に適切に割り当てることにより、ワーカー分配効率を高めることができる。
【００５９】
また、分割および併合部４２０は、原本映像５０１がＮ個のセグメント５０３に分割された場合、原本映像５０１に対して使用可能なワーカーの数に合わせてセグメントを割り当ててよい。例えば、４００秒の動画が４秒単位で１００個のセグメントに分割され、このときの使用可能なワーカーが２０個である場合、各ワーカーあたり５個のセグメントが割り当てられてよい。
【００６０】
同じ長さのセグメントを割り当てたとしても、映像の複雑度により、各ワーカーでエンコードされる時間に差が生じることがある。分割および併合部４２０は、各ワーカーに割り当てられたセグメントの映像複雑度を考慮してＣＰＵリソースを割り当ててよい。例えば、一定レベル以上の複雑度をもつセグメントを担当するワーカーには、他のワーカーよりも１．５〜２倍のＣＰＵリソースをさらに割り当ててエンコードを処理するようにしてよい。
【００６１】
映像複雑度とは、例えば、動きが多い映像、照明変化が多い映像、登場人物の変化が多い映像などのように、映像が含んでいる情報量を意味してよい。一例として、映像複雑度は、セグメント内から任意のイメージを選別し、イメージ間の変化程度を測定する方式によって判断されてよい。他の例としては、映像複雑度を迅速にチェックするエンコード過程を先に適用する方式を利用してよい。セグメントを低い解像度（例えば、２５６×１４４）で迅速にエンコードした後、エンコードによって出た結果情報を利用して該当のセグメントの映像複雑度を判断したり、映像エンコードの２ＰＡＳＳ過程のうちの１ＰＡＳＳ実行時に分析されるデータを利用するために、迅速に１ＰＡＳＳ過程を先に適用して出る情報を利用したりしてよい。
【００６２】
したがって、本発明では、分割されたセグメントをワーカーに割り当てるときに、映像複雑度に応じてワーカーにリソースを割り当てることにより、ワーカー間の類似水準のエンコード速度を保障し、全体エンコード時間を短縮させることができる。
【００６３】
図７は、本発明の一実施形態における、エンコードされたセグメントを１つのエンコード結果物として併合する過程を説明するための例示図である。
【００６４】
分割および併合部４２０は、併合のための構成要素として、セグメント受信部（ｓｅｇｍｅｎｔ  ｒｅｃｅｉｖｅｒ）７０１、ローカルストレージ（ｌｏｃａｌ  ｓｔｏｒａｇｅ）７０２、および連結部（ｃｏｎｃａｔｅｎａｔｏｒ）７０３を備えてよい。
【００６５】
セグメント受信部７０１は、原本映像５０１のセグメント（Ｓ＿０、Ｓ＿１、Ｓ＿２、・・・、Ｓ＿Ｎ）５０３が割り当てられた各ワーカー（Ｗｏｒｋｅｒ＿０、Ｗｏｒｋｅｒ＿１、Ｗｏｒｋｅｒ＿２、・・・、Ｗｏｒｋｅｒ＿Ｍ）からエンコードされたセグメントを受信する役割をする。
【００６６】
各ワーカー（Ｗｏｒｋｅｒ＿０、Ｗｏｒｋｅｒ＿１、Ｗｏｒｋｅｒ＿２、・・・、Ｗｏｒｋｅｒ＿Ｍ）でエンコードされたセグメントを連結部７０３で連結するためには、１つのストレージ７０２に集める過程が必要となる。
【００６７】
セグメント受信部７０１は、各ワーカー（Ｗｏｒｋｅｒ＿０、Ｗｏｒｋｅｒ＿１、Ｗｏｒｋｅｒ＿２、・・・、Ｗｏｒｋｅｒ＿Ｍ）から受信されたセグメントファイルをローカルストレージ７０２に保存する。動画に該当するデータパケットは、ビデオストリーム（Ｖ）とオーディオストリーム（Ａ）とに分離してそれぞれ分散エンコードが実行されてよく、ローカルストレージ７０２には、ビデオストリームに対するセグメントファイルとオーディオストリームに対するセグメントファイルとが区分されて保存されてよい。
【００６８】
連結部７０３は、原本映像５０１に対するセグメント分割情報に基づいてローカルストレージ７０２に保存されたセグメントファイルをセグメント順に連結することにより、エンコード結果パケット（すなわち、ｃｏｎｃａｔｅｎａｔｅｄ  ｆｉｌｅ）を生成してよい。このとき、連結部７０３は、ビデオストリームに対するセグメントファイルとオーディオストリームに対するセグメントファイルを時間的にインターリーブ（ｉｎｔｅｒｌｅａｖｉｎｇ）して１つのエンコードファイルを生成してよく、該当のエンコードファイルを結果物としてローカルストレージ７０２に保存してよい。
【００６９】
本実施形態では、ビデオストリームとオーディオストリームの両方を分散エンコードすることについて説明しているが、場合によっては、オーディオストリームは単一エンコードで処理し、ビデオストリームだけを分散エンコードで処理することも可能である。
【００７０】
したがって、本発明では、原本映像５０１をセグメント５０３に分け、複数のワーカーを利用した並列トランスコードを実行することにより、トランスコードの処理時間の問題をさらに改善することができる。分割および併合部４２０でワーカーを適切に分散して割り当てることにより、ワーカーのエンコード時間と併合のためにセグメントを集める時間を減らすことができる。
【００７１】
さらに、本発明に係る分散トランスコードシステム４００は、エンコード中にワーカーに割り当てるリソースを流動的に調整し、エンコード速度をリアルタイムで調節することができる。言い換えれば、分散トランスコードシステム４００は、エンコードに使用するワーカーの数を必要によってリアルタイムで調節し、全体エンコード速度を調節することができる。
【００７２】
分散トランスコードシステム４００は、エンコード開始時点のエンコード至急度や資源の状況などを考慮してワーカーの数を決めるようになるが、エンコード途中の状況により、ワーカーの数をリアルタイムで調節することができる。例えば、ニュース速報のように至急度の高いコンテンツを処理する場合に、エンコード速度を確保するための資源が十分でなければ、現在エンコード中のコンテンツに使用されているワーカー資源の一部を除外させ、至急度の高いコンテンツに投入する作業が可能となる。
【００７３】
図８は、本発明の一実施形態における、ワーカーの数を減らしてエンコード速度を低める過程を説明するための図である。
【００７４】
図８を参照すると、制御部４１０は、新たに挿入されたコンテンツＡに要される資源が足りない場合、足りない分だけの資源をワーカーにデタッチ（ｄｅｔａｃｈ）要請をする（Ｓ８１）。
【００７５】
デタッチ要請を受け取ったワーカーは、自身に作業を分配した分割および併合部４２０に、デタッチに関する通知を伝達する（Ｓ８２）。
【００７６】
分割および併合部４２０は、現在エンコードが進行中のコンテンツＢに対して割り当てられたワーカープール（ｐｏｏｌ）から、デタッチを知らせてきたワーカーを除外させる（Ｓ８３）。
【００７７】
デタッチ要請を受け取ったワーカーは、デタッチ要請を受け取った時点に進行していたセグメントエンコード作業を続け、該当の作業が完了すれば、制御部４１０に作業完了報告を伝達する（Ｓ８４）。
【００７８】
制御部４１０は、作業完了報告を伝達してきたワーカーを回収し、コンテンツＡに対する資源として確保する（Ｓ８５）。
【００７９】
上述したように、分散トランスコードシステム４００は、コンテンツＢに対してワーカー資源の一部を除外させ、コンテンツＢに対するエンコード速度を低めることができる。
【００８０】
図９は、本発明の一実施形態における、ワーカーの数を増やしてエンコード速度を高める過程を説明するための図である。
【００８１】
図９を参照すると、制御部４１０は、コンテンツＡに対する資源が確保された場合、新たに確保されたワーカーにコンテンツＡのエンコード作業を担当する分割および併合部４２０の情報を知らせ、アタッチ（ａｔｔａｃｈ）要請をする（Ｓ９１）。
【００８２】
アタッチ要請を受け取ったワーカーは、コンテンツＡのエンコード作業を担当する分割および併合部４２０に、アタッチに関する通知を伝達する（Ｓ９２）。
【００８３】
分割および併合部４２０は、コンテンツＡに対して割り当てられたワーカープールに、新たにアタッチされたワーカーを追加する（Ｓ９３）。
【００８４】
分割および併合部４２０は、新たにアタッチされたワーカーに、コンテンツＡのエンコード作業のためのセグメントを割り当てる（Ｓ９４）。
【００８５】
新たにアタッチされたワーカーは、分割および併合部４２０から割り当てられたセグメントのエンコード作業を実行する（Ｓ９５）。
【００８６】
上述したように、分散トランスコードシステム４００は、コンテンツＡに対してワーカー資源を追加し、コンテンツＡに対するエンコード速度を高めることができる。
【００８７】
したがって、分散トランスコードシステム４００は、必要に応じてエンコードに使用するワーカーの数を調節することができ、これにより、現在エンコード中のコンテンツに使用されているワーカー資源を他のコンテンツに対する資源として投入することができる。
【００８８】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）およびＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【００８９】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【００９０】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例は、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭおよびＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【００９１】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって代替されたり置換されたとしても、適切な結果を達成することができる。
【００９２】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【図１】
2021505068.tif 000003
【図２】
2021505068.tif 000004
【図３】
2021505068.tif 000005
【図４】
2021505068.tif 000006
【図５】
2021505068.tif 000007
【図６】
2021505068.tif 000008
【図７】
2021505068.tif 000009
【図８】
2021505068.tif 000010
【図９】
2021505068.tif 000011
【国際調査報告】
2021505068.tif 000012
2021505068.tif 000013
2021505068.tif 000014
2021505068.tif 000015