JP6812973B2 - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、および情報処理方法、並びにプログラム Download PDF

Info

Publication number
JP6812973B2
JP6812973B2 JP2017534149A JP2017534149A JP6812973B2 JP 6812973 B2 JP6812973 B2 JP 6812973B2 JP 2017534149 A JP2017534149 A JP 2017534149A JP 2017534149 A JP2017534149 A JP 2017534149A JP 6812973 B2 JP6812973 B2 JP 6812973B2
Authority
JP
Japan
Prior art keywords
image
buffer
unit
executes
display
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.)
Active
Application number
JP2017534149A
Other languages
English (en)
Other versions
JPWO2017026230A1 (ja
Inventor
義行 小林
義行 小林
幸一 内村
幸一 内村
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of JPWO2017026230A1 publication Critical patent/JPWO2017026230A1/ja
Application granted granted Critical
Publication of JP6812973B2 publication Critical patent/JP6812973B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/399Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/04Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using circuits for interfacing with colour displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/10Intensity circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • G09G5/397Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0428Gradation resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/06Colour space transformation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/67Circuits for processing colour signals for matrixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Picture Signal Circuits (AREA)
  • Transforming Electric Information Into Light Information (AREA)
  • Processing Of Color Television Signals (AREA)

Description

本開示は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、画像の描画処理を行ない、さらに描画画像に対する画像変換を実行する情報処理装置、および情報処理方法、並びにプログラムに関する。
昨今、テレビその他の表示装置として、高解像度画像や、広ダイナミックレンジ画像、あるいは、より広い色空間の色を出力可能な表示装置が開発され、利用が広がりつつある。
なお、高解像度、広ダイナミックレンジ、出力色空間の広い画像は、例えばUHD(Ultra High Definition)画像と呼ばれ、このUHD画像を表示するUHD対応表示装置の利用も普及段階にある。
しかし、現時点では、UHD画像を表示可能な表示装置であるUHD対応表示装置と、従来型の表示装置が混在する。
このような現状において、例えばBD(Blu−ray(登録商標)Disc)から画像データを読み出して、表示部に表示する処理を実行する場合、従来型の表示装置、およびUHD対応表示装置のいずれの表示装置でも、それぞれの表示機能に応じた画像を表示可能とすることが要求される。
このためには、まず、従来型の表示装置において表示可能な、例えばSDR(Standard Dynamic Range)画像を生成し、その後、必要に応じて、解像度変換、ダイナミックレンジ変換、あるいは色空間変換などの画像変換を実行して、UHD対応表示装置に表示する構成をとる必要がある。
この場合、例えば、画像描画アプリケーションによる画像描画処理と、描画画像に対する画像変換処理、さらに、画像表示処理という異なるフェーズの処理を順次、実行することが必要となる。
このような複数の異なる処理を実行する場合、例えば1つの画像描画コマンドの完了前に画像変換や表示処理が開始されると、不完全な画像が表示されとしまう。
完全な変換画像を表示するためには、描画処理の完了後に変換処理や表示処理を実行することが必要であり、各処理の実行タイミングを何らかの手法で制御することが必要となる。
なお、特許文献1(特許第4962674号公報)には、3D画像を構成する左眼用画像と右眼の整合性を確保し、描画の完了した画像を表示するための表示タイミングを決定する構成を開示している。
しかし、この開示文献は、3D画像を構成する左眼用画像と右眼の整合性を確保するための処理タイミングの制御構成を開示しているに過ぎない。
特許第4962674号公報
本開示は、例えば上記問題点に鑑みてなされたものであり、解像度変換、ダイナミックレンジ変換、あるいは色空間変換などの画像変換を実行して、表示装置に表示する処理を行なう構成において、描画処理の完了タイミングを検知した上で、画像変換を実行して表示画像の出力を行う情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
本開示の第1の側面は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置にある。
さらに、本開示の第2の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法にある。
さらに、本開示の第3の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラムにある。
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本開示の一実施例の構成によれば、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
具体的には、描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像に対する変換処理を実行する表示画像生成部と、記憶部の複数バッファの切り替えを実行するバッファ管理部を有する。アプリケーション実行部は、描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出しを実行し、バッファ管理部は、描画完了通知APIの呼び出しに応じてバッファ切り替え処理を実行する。表示画像生成部は、アプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
本構成により、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
BDMVフォーマットの概要を説明する図である。 BDのファイルの管理構造を説明する図である。 記録メディア10から読み取られたデータの再生処理例を示す図である。 情報処理装置20の一部構成であり、画像を出力するための構成例を示す図である。 BD−Jアプリケーション等を実行するデータ処理部30の具体的な構成例について説明する図である。 データ処理部30の実行する画像変換処理の具体例について説明する図である。 データ処理部30の実行する画像変換処理の具体例について説明する図である。 スクリーンティアリングについて説明する図である。 画像フレーム単位の描画コマンドの設定例と実行態様を示す図である。 実施例1の情報処理装置の構成と処理について説明する図である。 実施例1の情報処理装置の実行する処理について説明するフローチャートを示す図である。 実施例2の情報処理装置の構成と処理について説明する図である。 実施例2の情報処理装置の実行する処理について説明するフローチャートを示す図である。 情報処理装置のハードウェア構成例を示す図である。
以下、図面を参照しながら本開示の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
1.情報記録媒体の記録データと再生処理例について
2.情報処理装置におけるBD−Jアプリケーションを利用した画像出力処理例について
3.画像変換を伴う画像出力処理における問題点について
3−1.スクリーンティアリングについて
3−2.画像変換処理の負荷について
4.本開示の情報処理装置の実行する処理の概要について
5.(実施例1)記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について
6.(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成を適用した実施例について
7.情報処理装置のハードウェア構成例について
8.本開示の構成のまとめ
[1.情報記録媒体の記録データと再生処理例について]
まず、情報記録媒体の記録データと再生処理例について説明する。
以下では、情報記録媒体の一例として、Blu−ray(登録商標) Discの記録データと、再生処理例を説明する。
図1以下を参照して、読み出し専用タイプのBDであるBD−ROMに記録されたコンテンツ、すなわち、AV(Audio/Video)データ等の管理構造(以下、BDMVフォーマットともいう)について説明する。
例えば、MPEG(Moving Picture Experts Group)ビデオや、MPEGオーディオ等の符号化方式で符号化され、MPEG2システムに従って多重化されたビットストリームは、クリップAVストリーム(またはAVストリーム)と呼ばれる。クリップAVストリームは、BDに関する規格の一つである「Blu−ray(登録商標) Disc Read−Only Format part2で定義されたファイルシステムにより、ファイルとしてBDに記録される。クリップAVストリームのファイルは、クリップAVストリームファイル(またはAVストリームファイル)と呼ばれる。
クリップAVストリームファイルは、ファイルシステム上での管理単位であり、クリップAVストリームファイル(のクリップAVストリーム)を再生に必要な情報等は、データベースとしてBDに記録される。このデータベースについては、BD規格の一つである「Blu−ray(登録商標) Disc Read−Only Format part3で規定されている。
図1は、BDMVフォーマットの概要を説明する図である。
BDMVフォーマットは、4層のレイヤから構成される。
最下位のレイヤは、クリップAVストリームが属するレイヤであり、以下、適宜、クリップレイヤともいう。
クリップレイヤの1つ上のレイヤは、クリップAVストリームに対する再生箇所を指定するための、プレイリスト(Movie PlayList)が属するレイヤで、以下、プレイリストレイヤともいう。
プレイリストレイヤの1つ上のレイヤは、プレイリストに対して再生順等を指定するコマンドからなるムービーオブジェクト(Movie Object)等が属するレイヤで、以下、オブジェクトレイヤともいう。
オブジェクトレイヤの1つ上のレイヤ(最上位のレイヤ)は、BDに格納されるタイトル等を管理するインデックステーブルが属するレイヤで、以下、インデクスレイヤともいう。
クリップレイヤ、プレイリストレイヤ、オブジェクトレイヤ、および、インデクスレイヤについて、さらに説明する。
クリップレイヤには、クリップAVストリームや、クリップ情報(Clip Information)等が属する。
クリップAVストリームは、コンテンツのデータとしてのビデオデータやオーディオデータ等をTS(MPEG2 TS(Transport Stream))の形にしたストリームである。
クリップ情報(Clip Information)は、クリップAVストリームに関する情報であり、ファイルとして、BDに記録される。
なお、クリップAVストリームには、字幕やメニュー等のグラフィクスのストリームも、必要に応じて含まれる。
字幕(のグラフィクス)のストリームは、プレゼンテーショングラフィクス(PG(Presentation Graphics))ストリームと呼ばれ、メニュー(のグラフィクス)のストリームは、インタラクティブグラフィクス(IG(Interactive Graphics))ストリームと呼ばれる。
また、クリップAVストリームファイルと、対応するクリップ情報(そのクリップAVストリームファイルのクリップAVストリームに関するクリップ情報)のファイル(クリップ情報ファイル)とのセットは、クリップ(Clip)と呼ばれる。
クリップは、クリップAVストリームとクリップ情報とから構成される、1つのオブジェクトである。
クリップを構成するクリップAVストリームに対応するコンテンツを時間軸上に展開したときの最初と最後の位置(時刻)を含む複数の位置は、アクセスポイントに設定される。アクセスポイントは、主に、タイムスタンプで、上位のレイヤのプレイリスト(PlayList)により指定される。
クリップを構成するクリップ情報は、プレイリストがタイムスタンプで指定したアクセスポイントが表す、クリップAVストリームの位置のアドレス(論理アドレス)を含む。
プレイリストレイヤには、プレイリスト(Movie PlayList)が属する。
プレイリストは、再生を行うAVストリームファイルと、そのAVストリームファイルの再生箇所を指定する再生開始点(IN点)、および、再生終了点(OUT点)とを含むプレイアイテム(PlayItem)から構成される。
したがって、プレイリストは、プレイアイテムの集合で構成される。
ここで、プレイアイテムの再生とは、そのプレイアイテムに含まれるIN点とOUT点とによって特定される、クリップAVストリームの区間の再生を意味する。
オブジェクトレイヤには、ムービーオブジェクト(Movie Object)や、BD−Jオブジェクト(Blu−ray(登録商標) Disc Java(登録商標) Object)が属する。
ムービーオブジェクトは、HDMV(High Definition Movie)ナビゲーションコマンドプログラム(ナビコマンド)と、ムービーオブジェクトとを連携するターミナルインフォメーションを含む。
ナビコマンドは、プレイリストの再生を制御するためのコマンドである。ターミナルインフォメーションは、BDを再生するBDプレーヤに対するユーザのインタラクティブな操作を許可するための情報を含む。BDプレーヤでは、ターミナルインフォメーションに基づき、メニューの呼び出しや、タイトルサーチといったユーザオペレーションが制御される。
BD−Jオブジェクトは、Java(登録商標)プログラムであり、ナビコマンドよりも、より高度な(洗練された)インタラクティブ機能を、ユーザに提供することができる。
インデクスレイヤには、インデクステーブル(Index table)が属する。
インデクステーブルは、BD−ROMディスクのタイトルを定義する、トップレベルのテーブルである。
インデクステーブルのエントリ(欄)は、タイトルに対応し、各エントリからは、そのエントリに対応するタイトル(HDMVタイトル、BD−Jタイトル)のオブジェクト(ムービーオブジェクト、BD−Jオブジェクト)にリンクがはられる。
図2は、記録メディア(BD)10のファイルの管理構造を説明する図である。
BDでは、ファイルは、ディレクトリ構造により階層的に管理される。
BDの最上位階層のディレクトリは、ルート(root)ディレクトリになっている。
ルートディレクトリの直下には、ディレクトリ「BDMV」が存在する。
ディレクトリ「BDMV」には、図1で説明したBDMVフォーマットのファイルが格納される。
ディレクトリ「BDMV」の直下には、ファイル「index.bdmv」、および「MovieObject.bdmv」の2つのファイルが格納される。なお、ディレクトリ「BDMV」の直下には、ファイル「index.bdmv」、および「MovieObject.bdmv」以外のファイル(ディレクトリを除く)は、格納することができない。
ファイル「index.bdmv」は、BDを再生するメニューに関する情報としての、図1で説明したインデクステーブルを含む。
BDプレーヤは、例えば、BDのコンテンツを全て再生する、特定のチャプタのみを再生する、繰り返し再生をする、所定のメニューを表示する等の内容の項目を含む初期メニュー(の画面)を、ファイル「index.bdmv」に基づいて再生する。
また、ファイル「index.bdmv」には、各項目が選択されたときに実行するムービーオブジェクト(Movie Object)を設定することができ、ユーザにより初期メニュー画面から1つの項目が選択された場合、BDプレーヤは、ファイル「index.bdmv」に設定されているMovie Objectのコマンドを実行する。
ファイル「MovieObject.bdmv」は、Movie Objectの情報を含むファイルである。Movie Objectは、BDに記録されているPlayListの再生を制御するコマンドを含み、例えば、BDプレーヤは、BDに記録されているMovieObjectの中から1つを選択して実行することにより、BDに記録されているコンテンツ(タイトル)を再生する。
ディレクトリ「BDMV」の直下には、ディレクトリ「PLAYLIST」,「CLIPINF」,「STREAM」,「AUXDATA」,「META」,「BDJO」,「JAR」、および「BACKUP」が設けられる。
ディレクトリ「PLAYLIST」には、プレイリストのデータベースが格納される。すなわち、ディレクトリ「PLAYLIST」には、プレイリストのファイル「xxxxx.mpls」が格納される。ファイル「xxxxx.mpls」のファイル名には、5桁の数字「xxxxx」と、拡張子「mpls」とからなるファイル名が用いられる。
ディレクトリ「CLIPINF」は、クリップのデータベースが格納される。すなわち、ディレクトリCLIPINF」には、クリップAVストリームファイルのそれぞれに対するクリップインフォメーションファイル「xxxxx.clpi」が格納される。クリップインフォメーションファイル「xxxxx.clpi」のファイル名には、5桁の数字「xxxxx」と、拡張子「clpi」とからなるファイル名が用いられる。
ディレクトリ「STREAM」には、クリップAVストリームファイル「xxxxx.m2ts」が格納される。クリップAVストリームファイル「xxxxx.m2ts」には、TSが格納される。クリップAVストリームファイル「xxxxx.m2ts」のファイル名には、5桁の数字「xxxxx」と、拡張子「m2ts」とからなるファイル名が用いられる。
なお、あるクリップを構成するクリップインフォメーションファイル「xxxxx.clpi」と、クリップAVストリームファイル「xxxxx.m2ts」のファイル名としては、拡張子を除き、一致するファイル名が用いられる。これにより、あるクリップを構成するクリップインフォメーションファイル「xxxxx.clpi」と、クリップAVストリームファイル「xxxxx.m2ts」とを、容易に特定することができる。
ディレクトリ「AUXDATA」には、メニューの表示等に用いられる、サウンドファイル、フォントファイル、フォントインデクスファイルおよびビットマップファイル等が格納される。
ディレクトリ「META」には、メタデータのファイルが格納される。ディレクトリ「BDJO」およびディレクトリ「JAR」は、BD−Jオブジェクトのファイルが格納される。JAVA(登録商標)プログラム、コマンド等を格納したBD−Jアプリケーション等のファイルである。
ディレクトリ「BACKUP」は、BDに記録されたファイルのバックアップが格納される。
図3は、図1、図2を参照して説明した記録データを持つ記録メディア10から読み取られたデータの再生処理例を示す図である。
記録メディア10は、例えばPC21、再生装置22、TV23等の情報処理装置20に装着され、再生される。
PC21、再生装置22、TV23等の情報処理装置20にはBDドライブが設けられ、BDからのデータ読み取りが可能な構成を持つ。
情報処理装置20は、記録メディア10から読み取ったコンテンツ、具体的には、クリップAVストリームファイルに格納された画像や音声データを取得し、プレイリストファイル等の再生制御情報ファイルに従って、コンテンツ再生処理を実行する。
再生データに含まれる画像は、図3に示すように、表示部を持つ機器、例えばPCやTV等の表示部(ディスプレイ)に表示出力される。
[2.情報処理装置におけるBD−Jアプリケーションを利用した画像出力処理例について]
次に、図1、図2を参照して説明した記録データを持つ記録メディア10からのデータ再生処理を行なう情報処理装置20の実行するBD−Jアプリケーションを利用した画像出力処理例について説明する。
図2を参照して説明したように、記録メディア10には、BD−Jアプリケーションが記録されている。
情報処理装置20には、プログラムデータ実行機能を持つCPU等を備えたデータ処理部を有し、データ処理部において、Java(登録商標)仮想マシンを実行し、そのJava(登録商標)仮想マシン上で、BD−Jアプリケーションを実行する。
図4は、情報処理装置20の一部構成であり、画像を出力するための構成例を示す図である。
情報処理装置20のデータ処理部30は、BD−Jアプリケーションを実行し、記憶部40に各画像フレームを順次、描画し、格納する。
なお、画像データを格納する記憶部30は、グラフィクスプレーンとも呼ばれる。グラフィクスプレーンに格納された画像データに対して、様々な画像変換を施すことができる。なお、記憶部(グラフィクスプレーン)40は、ハードウェア的にはRAMによって構成される。
データ処理部30は、さらに、記憶部40に格納された画像に対する画像変換処理を実行する。画像変換は、例えば表示部50の表示機能に応じた画像変換処理であり、具体的には、例えば、以下のいずれか1つ、または複数を組み合わせた変換処理である。
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
データ処理部30は、例えば表示部50の表示機能に応じて上記a〜cの少なくともいずれかの画像変換処理を実行する。
a.解像度変換は、具体的には例えば2K画像(1920×1080画素)から4K画像(3840×2160画素)への変換処理等である。
b.ダイナミックレンジ変換処理は、具体的には例えば、SDR(Standard Dynamic Range)画像から、HDR(High Dynamic Range)画像への変換処理等である。
c.色空間変換処理は、具体的には例えば、BT.709色空間から、BT.2020色空間への変換処理等である。
なお、BT.2020色空間は、BT.709色空間より、表現可能な色範囲が広く、肉眼で観察される色空間にほぼ匹敵する自然な色彩表現が可能である。
これらの画像変換は、表示部の出力可能な画素数、ダイナミックレンジ、色空間に応じて行われるものである。
データ処理部30は、記憶部40に格納された画像に対して、表示部50の仕様に応じた画像変換処理を実行することになる。
データ処理部30は、画像変換された画像データを表示部50に出力する。
表示部50に表示される画像は、所定の画像変換処理によって変換された画像であり、例えば表示部50が、高解像度、広ダイナミックレンジ、出力色空間の広いUHD(Ultra High Definition)画像を出力可能な表示部であれはUHD画像が表示される。
次に、図5を参照してBD−Jアプリケーション等を実行するデータ処理部30の具体的な構成例について説明する。
図5は、データ処理部30において画像に関する処理を実行する機能構成を示す図である。
データ処理部30は、図5に示す以下の機能を利用した処理を実行する。
(a)BD−Jアプリケーション31
(b)画像変換処理API(Application Programming Interface)33
(c)プレゼンテーションエンジン(Presentation engine)34
(d)画像デコーダ(Video decoder)35
(e)表示制御部(Display processor)36
なお、上記(a)〜(e)の構成中、
(b)画像変換処理API33
(c)プレゼンテーションエンジン(Presentation engine)34
(d)画像デコーダ(Video decoder)35
(e)表示制御部(Display processor)36
これらの構成をBD−Jアプリケーション31と区別して、表示画像生成部32と呼ぶ。
表示画像生成部32は、BD−Jアプリケーション31が記憶部(グラフィックスプレーン)40に描画した画像に対する変換処理や表示制御を実行する。
図5に示す各構成の実行する処理について説明する。
(a)BD−Jアプリケーション31は、記憶部(グラフィクスプレーン)40に対する画像の描画処理を実行する。
(b)画像変換処理API33は、a.解像度変換処理、b.ダイナミックレンジ変換処理、c.色空間変換処理、これらの画像変換処理を実行するAPIを適用した画像変換処理を実行する。
例えば、解像度変換処理を実行する場合、BD−Jアプリケーション31は、解像度変換APIを呼び出し、解像度等の変更(設定)を要求する。
解像度設定APIは、BD−Jアプリケーションからの要求に応じて、プレゼンテーションエンジン、画像デコーダ、表示制御部のうちの必要なものを、直接的に、または間接的に制御することで、解像度を変更する。
ダイナミックレンジ変換処理や、色空間変換処理を行なう場合も、それぞれの変換処理を行なうAPIを利用して処理が行われる。
なお、図5において、プレゼンテーションエンジン(Presentation Engine)は、オーディオ、ビデオ、および、HDMVグラフィクスのデコード機能とプレゼンテーション機能(Presentation functions)を、BDの再生を制御する、図示せぬプレイバックコントロールエンジン(Playback Control Engine)に提供する。
また、図5において、ビデオデコーダ(Video decoder)は、画像のデコードを行う。さらに、表示制御部(Display processor)は、記憶部(グラフィクスプレーン)40に格納された画像や変換画像を表示部50に出力する。
データ処理部30の実行する画像変換処理の具体例について、図6、図7を参照して説明する。
図6は、ダイナミックレンジ変換処理(SDR画像からHDR画像への変換)を実施しない場合の画像変換例である。
グラフィックス・ソース51は、BD−Jアプリケーションによって記憶部30に描画される画像である。
図6に示す例において、グラフィックス・ソース51は、
1920×1080画素の画像であり、各画素単位でRGB各8ビット表現のなされたSDR画像である。
データ処理部30は、ステップS21において色空間変換を実行して、図6に示す画像52、または画像53、または画像54のいずれかを生成する。
画像52は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で8ビット表現のなされたSDR画像である。
画像53は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
画像54は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、このように、ステップS21において、色空間変換を実行して、図6に示す画像52、または画像53、または画像54のいずれかを生成する。
図6に示すステップS22の処理は、上記の画像53に対する解像度変換処理である。データ処理部30は、画像53に対する解像度変換を実行する。
画像53は、1920×1080画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像53に対する解像度変換を実行して画像55を生成する。
画像55は、3840×2160画素の画像であり、色空間BT.709対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
また、図6に示すステップS23の処理は、上記の画像54に対する解像度変換処理である。データ処理部30は、画像54に対する解像度変換を実行する。
画像54は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像54に対する解像度変換を実行して画像56を生成する。
画像56は、3840×2160画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
図6には、データ処理部30の実行する画像変換処理例として3つの変換処理例を示している。
(A)BD−Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換のみを実行して出力画像52を生成する変換処理例
(B)BD−Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換と、ステップS22の解像度変換を実行して出力画像55を生成する変換処理例
(C)BD−Jアプリケーションによって描画されたグラフィックス・ソース51に対してステップS21の色空間変換と、ステップS23の解像度変換を実行して出力画像56を生成する変換処理例
データ処理部30は、例えば表示部50の出力可能な画像態様に応じて、これらのいずれかの変換処理を実行する。
次に示す図7は、ダイナミックレンジ変換処理(SDR画像からHDR画像への変換)を実施する場合の画像変換例である。
グラフィックス・ソース51は、BD−Jアプリケーションによって記憶部40に描画される画像である。
図7に示す例において、グラフィックス・ソース51は、図6を参照して説明したと同様、
1920×1080画素の画像であり、各画素単位でRGB各8ビット表現のなされたSDR画像である。
データ処理部30は、ステップS31において色空間変換を実行して、図7に示す画像72を生成する。
画像72は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、このように、ステップS31において、色空間変換を実行して、図7に示す画像72を生成する。
図7に示すステップS32の処理は、上記の画像72に対するダイナミックレンジ変換処理である。データ処理部30は、画像72に対するダイナミックレンジ変換処理を実行する。
画像72は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたSDR画像である。
データ処理部30は、この画像72に対するダイナミックレンジ変換処理を実行して画像73を生成する。
画像73は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
また、図7に示すステップS33の処理は、上記の画像73に対する解像度変換処理である。データ処理部30は、画像73に対する解像度変換を実行する。
画像73は、1920×1080画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
データ処理部30は、この画像73に対する解像度変換を実行して画像74を生成する。
画像74は、3840×2160画素の画像であり、色空間BT.2020対応の色情報を持ち、各画素単位で10ビット表現のなされたHDR画像である。
図7には、データ処理部30の実行する画像変換処理例として以下の1つの変換処理例を示している。
(D)BD−Jアプリケーションによって描画されたグラフィックス・ソース71に対してステップS31の色空間変換と、ステップS32のダイナミックレンジ変換処理と、ステップS33の解像度変換を実行して出力画像74を生成する変換処理例
データ処理部30は、例えば表示部50の出力可能な画像態様に応じて、上記の変換処理を実行する。
このように、データ処理部30は、BD−Jアプリケーションの実行によって、記憶部に描画された画像の変換処理を実行して、表示部50に出力する画像を生成する。
[3.画像変換を伴う画像出力処理における問題点について]
次に、図4、図5を参照して説明した構成を有する情報処理装置における画像出力処理、すなわち画像変換処理を伴う画像出力処理における問題点について説明する。
上述した説明から理解されるように、4K画像や広ダイナミックレンジ画像、あるいはBT.2020色空間を持つような、高画質画像、いわゆるUHD画像の出力を行う場合、図4に示す記憶部(グラフィックスプレーン)40は、解像度変換や、ダイナミックレンジ変換、色空間変換等の各種の画像変換処理をサポートする記憶領域として利用される。
データ処理部30は、図5に示すBD−Jアプリケーション31の実行によって記憶部(グラフィックスプレーン)40に画像を描画する。
記憶部(グラフィックスプレーン)40は、BD−Jアプリケーション31の実行による描画画像(BD−Jグラフィックス)に対する様々な画像変換を行うために利用される記憶領域でもある。
すなわち、
画像の解像度を拡大する機能を有する記憶領域であり、
また、画像のダイナミックレンジ変換をサポートする記憶領域であり、
また、複数の色空間を変換する機能を有する。色空間の変換は、例えば、BT.709準拠データをBT.2020準拠データに変換する処理である。
このような記憶部(グラフィックスプレーン)40への描画処理に際して、BD−Jアプリケーション31は、以下の2つのいずれかの手法を適用した処理を行なう、
(描画手法1)ダイレクト・ドローイング(Direct drawing)
ダイレクト・ドローイング(Direct drawing)を適用した描画手法では、BD−Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。Java(登録商標)では、
「drawLine()メソッド」
のようなメソッドが提供されており、アプリケーションによる描画(ドローイング)が可能になっている。
(描画手法2)リペイント(Repaint)
リペイント(Repaint)を適用した描画手法では、システムが提供するウィジェットを使用した描画処理を実行する。Java(登録商標)ではAWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェットが提供されている。このウィジェットを使用した描画処理を実行する手法である。
BD−Jアプリケーション31は、上記の描画処理のいずれかを利用して描画処理を実行する。
なお、例えばSDR画像のみを再生可能な従来型の機器(レガシー機器)においても、SDR画像の再生処理を可能とするため、BD−Jアプリケーションは、SDRのグラフィックス・ソースだけを用いた描画を行い、HDR画像の再生可能な再生機器のみがその描画画像をHDR画像に変換するといった態様とすることが好ましい。
このように、再生機器によって、画像変換が実施される場合に発生する問題点について説明する。
[3−1.スクリーンティアリングについて]
以下においては、問題点として、「スクリーンティアリング」について説明する。
そもそも、BD−Jグラフィックスでは、グラフィックスのコマンドをCPUなどプロセッサで実行して描画する処理と、完成したグラフィックスプレーンを読み出して表示するモニタとが、非同期に動作しているためにスクリーンティアリングが発生するという問題がある。
スクリーンティアリングとは、表示部に複数の画像フレームが重なって表示される現象であり、例えば表示画像を生成する処理がフレーム表示速度に追いつかない場合等に発生する。
例えば図8に示すように、フレーム(fn)の表示タイミングにおいて、フレーム(fn)の一部の表示画像生成が間に合わず、画面の一部に前の表示フレーム(fn−1)が表示されてしまうといった現象である。
このようなスクリーンティアリングについては、1)パーソナルコンピューター等でも同様の問題が発生しており、BD−Jアプリケーションに限った問題ではなく、また、2)何らかのデータ変換処理をサポートしているグラフィックスプレーンに特有の問題でもない。
しかしながら、スクリーンティアリング自体は動作不良のように見えるため回避すべきである。
このスクリーンティアリングを回避するための手段として、描画画像を、事前に複数作成して複数のバッファに格納するダブルバッファリングやトリプルバッファリング手法が用いられる場合がある。
一般的なスクリーンティアリングは、このダブルバッファリングやトリプルバッファリングを導入すればスクリーンティアリングの発生を回避できる。
しかし、BD−Jアプリケーションが描画画像(BD−Jグラフィックス)を生成する場合、例えばBD−Jアプリケーションは、1つのフレーム画像を描画する場合、複数の描画命令を順次実行して描画処理を行なう。
この各フレーム画像の描画処理において不可分な描画命令の区切り(フレーム間の区切り)を、画像表示を行う表示制御部等は、知ることができない。
つまり、BD−Jアプリケーションによるグラフィックスプレーンへの描画が「完了した」か否かを表示制御部等のグラフィックスシステム側が知る術がなく、その点が課題となる。
[3−2.画像変換処理の負荷について]
上記のスクリーンティアリングの問題点に加えて、記憶部(グラフィックスプレーン)40に格納した画像の変換処理を実行する場合、この変換処理の負荷が過大になり、各フレームの表示処理に間に合わなくなる場合があるという問題がある。
例えば、記憶部(グラフィックスプレーン)40に格納した画像の色空間を変換する処理を行なう場合について説明する。
例えば、表示部(モニタ)が60Hzのリフレッシュレートを有する場合、1/60秒ごとにグラフィックスプレーンの色空間を変換して表示出力するプロセスは、ハードウェア負荷が高く合理的ではない。
1/60秒ごとに記憶部(グラフィックスプレーン)40の格納画像の全ピクセルを書き換えなければならないことは非常にまれであり、グラフィックスの更新された領域のみを変換対象とすることで負荷を軽減できる。しかし、このような領域限定処理を行なうと、今度は、ピクセル単位で、色空間情報やダイナミックレンジ情報などを保持しなければならなくなるという問題が発生する。
最良の方法は、図5に示すBD−Jアプリケーション31による記憶部(グラフィックスプレーン)40に対する描画処理が「完了した」か否かを、図5に示す表示画像生成部32が知ることができる構成とすることである。表示画像生成部32が、BD−Jアプリケーション31による描画完了タイミングを知ることができれば、表示画像生成部32は、その時点から変換を実行して表示出力する処理を行なうことができる。
なお、ビットマップ画像の描画については、アプリケーションが1秒間に描画可能なピクセル数を規定することで上記の課題を回避可能である。しかし、BD−Jアプリケーション31は、複数のコマンドを適用した描画を実行し、このコマンド適用型の描画を制御するためには、ビットマップ描画と同様の描画量の定量的な制御は困難である。
[4.本開示の情報処理装置の実行する処理の概要について]
次に、上述した問題点を解決する本開示の情報処理装置の実行する処理の概要について説明する。
先に説明したように、BD−Jアプリケーション31は、記憶部(グラフィックスプレーン)40への描画処理に際して、以下の2つのいずれかの手法を適用した処理を行なう、
(描画手法1)ダイレクト・ドローイング(Direct drawing)
BD−Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。
(描画手法2)リペイント(Repaint)
システムが提供するウィジェット(AWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェット)を使用した描画処理を実行する。
BD−Jアプリケーション31は、これら2つのいずれかの手法を適用した処理を行なう。
上記の(描画手法2)リペイント(Repaint)が利用される場合、システムが提供するウィジェット(AWT(Abstract Windowing toolkit)コンポーネントと呼ばれる複数のアプリケーションで共通のウィジェット)を使用した描画処理が実行される。
AWTペイントモデルにより、ルートコンテナのrepaint()メソッドが各コンポーネントのupdate()メソッドを呼び出し、呼び出さたメソッドによる描画処理が行われる。
従って、図5に示す表示画像生成部32側は、update()メソッドの実行が完了するまで表示出力を待機することで、表示画像の出力タイミングを制御することができる。
しかし、BD−Jアプリケーション31が、上記の(描画手法1)ダイレクト・ドローイング(Direct drawing)を実行して描画処理を行なう場合は、BD−Jアプリケーション31自身が描画コマンドを発行して描画処理を実行する。
この場合、図5に示す表示画像生成部32側は、BD−Jアプリケーション31による描画コマンドの発行が完了したかどうかを知る術がない。
BD−Jアプリケーション31は、1つの画像フレームの描画処理において、複数の描画コマンドを順次、実行する。
すなわち、BD−Jアプリケーション31が、描画コマンド#1,#2,・・・,#Nを発行し、その描画コマンド#1ないし#Nに従って画像描画が行われた場合に、その後、BD−Jアプリケーション31から、さらに、描画コマンドが発行されるかどうか、つまり、BD−Jアプリケーションによる描画コマンドの発行が完了したのかどうかを、表示画像生成部32は、認識することができない。
図9は、各画像フレーム単位の描画コマンドの設定例と実行態様を示す図である。
横軸a〜bは、1つの画像フレーム対応の描画コマンドキュー格納領域に相当する。
縦軸に下から、順次時間経過に伴って表示される画像フレーム(フレーム番号20〜24)を示している。
画像フレーム番号20の画像フレームが、全ての描画コマンドによる描画を完了し、デコード処理や変換処理を伴う表示処理に移行している段階にある。
画像フレーム21〜24には、各画像フレームの描画に必要となる実行予定の描画コマンドを示している。
描画コマンドは、各画像フレーム毎に必要となる数や、コマンド実行に必要となる時間が異なる。
画像フレーム22は、フレーム単位のコマンドキユーを超過した描画コマンドを実行する必要がある。この超過部分は、次のフレーム(画像フレーム23)用のキューに設定される。
このような設定がなされると、描画コマンドの実行完了が遅れてしまう、
一方、画像フレームの個々の表示期間は一定であるため、描画コマンドの実行期間が複数の画像フレームの描画処理期間にまたがると、描画途中の画像がそのままディスプレイに送り出されるということになる。
このような問題を解消するため、描画コマンドによる画像描画を行うBD−Jアプリケーション31に、描画コマンドの1つとして、ある1つの描画コマンドによる描画処理の終了を通知する描画完了通知APIの呼び出しコマンドを設定する。
BD−Jアプリケーション31は、例えば、1つの画像フレームの描画を行うための一連の描画コマンドによる描画処理が完了した時点など、ある描画コマンドによる描画処理の完了時点で、描画完了通知APIの呼び出しコマンドを実行する。
表示画像生成部32は、この描画完了通知APIの呼び出しコマンドの実行を検出することで、1つの描画コマンドによる描画処理が完了したことを検出することができる。
表示画像生成部32は、BD−Jアプリケーション31による描画完了通知APIの呼び出し処理が実行されたことを検出して、記憶部(グラフィックスプレーン)40に対する描画コマンドによる描画完了タイミングを認識することができる。
ここで、描画完了通知APIとしては、例えば、
「java.awt.Toolkit#sync()メソッド」
を採用することができる。
表示画像生成部32は、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しが行われない限りは、記憶部(グラフィックスプレーン)40に描画された画像の出力は行わない。
なお、1つの画像フレームの間に、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しが、複数回行われると、画像フレームがコマ落ちする可能性がある。従って、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しを連続で複数回行うことや、描画量が少ないコマンドの発行をはさんだ描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しの連続実行は禁止する設定とする。
描画コマンドと、描画完了通知API「java.awt.Toolkit#sync()メソッド」の呼び出しコマンドの実行シーケンスの例を以下に示す。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
java.awt.Toolkit#sync()
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
java.awt.Toolkit#sync()
上記コマンド設定例は、描画コマンド#1から描画コマンド#Nまでをアトミック、すなわち連続して実行する設定である。なお、この間、途中経過はエンドユーザに対して出力されない。
例えば、BD−Jアプリケーションが、描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出し処理を1つの画像フレームに対応する描画コマンド列の完了時に実行する構成とすれば、表示画像生成部は、画像フレーム単位の描画処理の完了を知ることが可能となり、その後、その画像フレームに対して画像変換を実行することができる。
上記のようなコマンド列を実行して、描画コマンドによる描画完了後の画像に対する画像変換を実行するためには、BD−Jアプリケーション31による描画対象データを格納する記憶部(グラフィックスプレーン)40をダブルバッファ、あるいはトリプルバッファ等の構成とすればよい。
以下に示す2つの実施例について、順次、説明する。
(実施例1)記憶部(グラフィックスプレーン)40をダブルバッファとした構成
(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成
[5.(実施例1)記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について]
まず、実施例1として、記憶部(グラフィックスプレーン)をダブルバッファとした構成を適用した実施例について説明する。
図10は、本実施例1の情報処理装置100の構成と処理について説明する図である。
なお、図10には、画像処理に利用される構成部のみを示している。
情報処理装置100は、データ処理部200、記憶部(グラフィックスプレーン)220、表示部250を有する。
なお、表示部250は、情報処理装置100の必須構成ではなく、図示しない出力部を介して接続される表示装置を利用する構成としてもよい。
データ処理部200は、
BD−Jアプリケーション実行部210、
表示画像生成部230、
バッファ管理部240、
を有する。
BD−Jアプリケーション実行部210は、先に図5を参照して説明した構成におけるBD−Jアプリケーション31に相当する。
表示画像生成部230は、先に図5を参照して説明した構成における表示画像生成部32に相当し、画像変換処理API33、プレゼンテーションエンジン34、画像デコーダ35、表示制御部36の実行する処理を実行する。
バッファ管理部240は、記憶部(グラフィックスプレーン)220内のバックバッファ221、フロントバッファ222の切り替え処理等を実行する。
なお、表示画像生成部230は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a〜cの少なくともいずれかの画像変換処理を実行する。すなわち、表示画像生成部230は、画像を出力する表示部250の表示機能に応じて画像変換態様を決定して、上記a〜cの少なくともいずれかの画像変換処理を実行する。
記憶部(グラフィックスプレーン)220は、
バックバッファ221、
フロントバッファ222、
これら2つのバッファを有するダブルバッファ構成となっている。
図10に示す処理ステップS101〜S106の順に処理を実行する。
図11に示すフローチャートは、図10に示す処理ステップS101〜S106の処理をフローとして示したものである。
図10に示すデータ処理部は、プログラム実行機能を持つCPUを有し、図示しないメモリに格納されたプログラムを読み出して、図11に示すフローに従った処理を実行する。
以下、図10、図11に示すステップS101〜S106の各処理の詳細について、順次、説明する。
(ステップS101)
情報処理装置100のデータ処理部200のBD−Jアプリケーション実行部210は、ステップS101において、BD−Jアプリケーションに規定された描画コマンドを実行する。
(ステップS102)
次に、BD−Jアプリケーション実行部210は、ステップS102において、BD−Jアプリケーションに規定された描画コマンドの実行結果としての画像を記憶部220のバックバッファ221に格納する。
(ステップS103)
次に、情報処理装置100のデータ処理部の表示画像生成部230は、ステップS101〜S102において実行される描画コマンドの実行および実行結果のバックバッファ格納処理に並行して、フロントバッファ222に格納された画像の変換処理(解像度、ダイナミックレンジ、色変換の少なくともいずれか)を実行して、変換画像を表示部250に出力する。
(ステップS104)
次に、表示画像生成部230は、ステップS104において、BD−Jアプリケーション実行部210からの描画完了APIの呼び出しがあったか否かを判定する。
BD−Jアプリケーション実行部210から描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しがあったか否かを判定する。
API呼び出しがない場合は、ステップS101〜S103の処理を繰り返す。
API呼び出しがあった場合は、ステップS105以下の処理を実行する。
(ステップS105)
BD−Jアプリケーション実行部210からの描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しのあったことが確認された場合、情報処理装置100のデータ処理部200のバッファ管理部240は、ステップS104において、記憶部220のバックバッファ221と、フロントバッファ222の切り替え処理を行なう。
すなわち、バックバッファ221をフロントバッファに設定し、フロントバッファ222をバックバッファに設定する。
(ステップS106)
次に、データ処理部200のバッファ管理部240は、フロントバッファ(切り替え前のバックバッファ)の格納画像を、バックバッファ(切り替え前のフロントバッファ)にコピーする。
なお、このコピー処理期間内は、バックバッファに対する描画処理は停止する。
以降、ステップS101〜S106の処理を繰り返す。
この図10、および図11を参照して説明したダブルバッファ構成を用いた場合の描画処理対象バッファの切り替えについて説明する。
例えば、BD−Jアプリケーションによる描画コマンドが以下のようなシーケンスで設定されているとする。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#1〜#Nは、バックバッファ221に対して実行される。
その後、
表示画像生成部230が、描画完了通知API(java.awt.Toolkit#sync())の発行を検出すると、
バッファ管理部240が、バックバッファ221とフロントバッファ222の切り替えを実行して、さらに、フロントバッファ(切り替え前のバックバッファ221)に格納されていた描画データをバックバッファ(切り替え前のフロントバッファ222)にコピーする。
この時点で、バッファ切り替え後のバックバッファ(切り替え前のフロントバッファ222)には、描画コマンド#1〜#Nによる描画結果が格納された状態になる。
その後、BD−Jアプリケーションによって、描画コマンド#N+1〜#N+Mが実行され、バッファ切り替え後のバックバッファ(切り替え前のフロントバッファ222)に対して、描画コマンド#N+1〜#N+Mの実行結果が格納される。
このように、描画完了通知API(java.awt.Toolkit#sync())の発行前後において、API発行前の描画結果(描画コマンド#1〜#Nの実行結果)を格納した一方のバッファの描画データが他方のバッファにコピーされ、その後、そのコピーされた描画データに対して、BD−Jアプリケーションによる、その後の描画コマンド(描画コマンド#N+1〜#N+M)が実行され、途切れのない継続的なコマンド実行が可能となる。
さらに、その後の、描画完了通知API(java.awt.Toolkit#sync())の発行によって、描画コマンド(描画コマンド#N+1〜#N+M)の実行結果を格納したバッファがフロントバッファに切り替えられ、フロントバッファの格納画像に対して画像変換処理、画像出力処理が実行されることになる。
このように、本実施例により、BD−Jアプリケーションによる描画コマンドを各画像フレーム単位で全て実行することが可能となる。
また、表示画像生成部230による画像変換、すなわち、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
これらの処理をBD−Jアプリケーションによる描画処理の完了した画像フレームに対して実行することが可能となり、その後の画像出力処理も、画像フレーム単位で完成された変換画像として出力することが可能となる。
[6.(実施例2)記憶部(グラフィックスプレーン)40をトリプルバッファとした構成を適用した実施例について]
次に、実施例2として、記憶部(グラフィックスプレーン)をトリプルバッファとした構成を適用した実施例について説明する。
図12は、本実施例2の情報処理装置300の構成例を示す図である。
なお、図12には、画像処理に利用される構成部のみを示している。
情報処理装置300は、データ処理部400、記憶部(グラフィックスプレーン)420、表示部450を有する。
なお、表示部450は、情報処理装置300の必須構成ではなく、図示しない出力部を介して接続される表示装置を利用する構成としてもよい。
データ処理部400は、
BD−Jアプリケーション実行部410、
表示画像生成部430、
バッファ管理部440、
を有する。
BD−Jアプリケーション実行部410は、先に図5を参照して説明した構成におけるBD−Jアプリケーション31に相当する。
表示画像生成部430は、先に図5を参照して説明した構成における表示画像生成部32に相当し、画像変換処理API33、プレゼンテーションエンジン34、画像デコーダ35、表示制御部36の実行する処理を実行する。
バッファ管理部440は、記憶部(グラフィックスプレーン)420内のフロントバッファ1,422−1、フロントバッファ2,422−2の切り替え処理等を実行する。
なお、表示画像生成部430は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a〜cの少なくともいずれかの画像変換処理を実行する。すなわち、表示画像生成部430は、画像を出力する表示部250の表示機能に応じて画像変換態様を決定して、上記a〜cの少なくともいずれかの画像変換処理を実行する。
記憶部(グラフィックスプレーン)420は、
バックバッファ421、
フロントバッファ1,422−1、
フロントバッファ2,422−2、
これら3つのバッファを有するトリプルバッファ構成となっている。
図12に示す処理ステップS301〜S306の順に処理を実行する。
図13に示すフローチャートは、図12に示す処理ステップS301〜S306の処理をフローとして示したものである。
図12に示すデータ処理部は、プログラム実行機能を持つCPUを有し、図示しないメモリに格納されたプログラムを読み出して、図13に示すフローに従った処理を実行する。
以下、図12、図13に示すステップS301〜S306の各処理の詳細について、順次、説明する。
(ステップS301)
情報処理装置300のデータ処理部400のBD−Jアプリケーション実行部410は、ステップS301において、BD−Jアプリケーションに規定された描画コマンドを実行する。
(ステップS302)
次に、BD−Jアプリケーション実行部410は、ステップS302において、BD−Jアプリケーションに規定された描画コマンドの実行結果としての画像を記憶部420のバックバッファ421に格納する。
(ステップS303)
次に、情報処理装置300のデータ処理部のバッファ管理部440は、ステップS301〜S302において実行される描画コマンドの実行および実行結果のバックバッファ格納処理に並行して、バックバッファ421に格納された画像データをフロントバッファ1,422−1にコピーする処理を実行する。
(ステップS304)
次に、情報処理装置300のデータ処理部の表示画像生成部430は、ステップS301〜S303の各処理に並行して、ステップS304において、フロントバッファ2,422−2に格納された画像の変換処理(解像度、ダイナミックレンジ、色変換の少なくともいずれか)を実行して、変換画像を表示部450に出力する。
(ステップS305)
次に、表示画像生成部430は、ステップS305において、BD−Jアプリケーション実行部410からの描画完了APIの呼び出しがあったか否かを判定する。
BD−Jアプリケーション実行部410から描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しがあったか否かを判定する。
API呼び出しがない場合は、ステップS301〜S304の処理を繰り返す。
API呼び出しがあった場合は、ステップS306の処理を実行する。
(ステップS306)
BD−Jアプリケーション実行部410からの描画完了通知API、すなわち「java.awt.Toolkit#sync()メソッド」の呼び出しのあったことが確認された場合、情報処理装置300のデータ処理部400のバッファ管理部440は、ステップS306において、記憶部420のフロントバッファ1,422−1と、フロントバッファ2,422−2の切り替え処理を行なう。
すなわち、フロントバッファ1,422−1をフロントバッファ2に設定し、フロントバッファ2,422−2をフロントバッファ1に設定する。
以降、ステップS301〜S306の処理を繰り返す。
この図12、および図13を参照して説明したトリプルバッファ構成を用いた場合の描画処理対象バッファの切り替えについて説明する。
例えば、BD−Jアプリケーションによる描画コマンドが以下のようなシーケンスで設定されているとする。
描画コマンド#1
描画コマンド#2
・・・
描画コマンド#N
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#N+1
描画コマンド#N+2
・・・
描画コマンド#N+M
描画完了通知API(java.awt.Toolkit#sync())
描画コマンド#1〜#Nは、バックバッファ421に対して実行され、同時に、コピーデータがフロントバッファ1,422−1にも格納される。
その後、
表示画像生成部430が、描画完了通知API(java.awt.Toolkit#sync())の発行を検出すると、
バッファ管理部440が、フロントバッファ1,422−1と、フロントバッファ2,422−2の切り替えを実行する。
この時点で、バッファ切り替え後のフロントバッファ2(切り替え前のフロントバッファ1)には、描画コマンド#1〜#Nによる描画結果が格納された状態になる。
その後、BD−Jアプリケーションによって、描画コマンド#N+1〜#N+Mが実行され、バックバッファ、およびバッファ切り替え後のフロントバッファ2(切り替え前のフロントバッファ1)に対して、描画コマンド#N+1〜#N+Mの実行結果が格納される。
このように、描画完了通知API(java.awt.Toolkit#sync())の発行前後において、API発行前の描画結果(描画コマンド#1〜#Nの実行結果)を格納した一方のフロントバッファに対して、BD−Jアプリケーションによる、その後の描画コマンド(描画コマンド#N+1〜#N+M)の実行結果を格納することが可能となり、途切れのない継続的なコマンド実行結果の格納処理が可能となる。
さらに、その後の、描画完了通知API(java.awt.Toolkit#sync())の発行によって、描画コマンド(描画コマンド#N+1〜#N+M)の実行結果を格納したバッファが出力対象となるフロントバッファに切り替えられ、出力対象フロントバッファの格納画像に対して画像変換処理、画像出力処理が実行されることになる。
このように、本実施例により、BD−Jアプリケーションによる描画コマンドを各画像フレーム単位で全て実行することが可能となる。
また、表示画像生成部430による画像変換、すなわち、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
これらの処理をBD−Jアプリケーションによる描画処理の完了した画像フレームに対して実行することが可能となり、その後の画像出力処理も、画像フレーム単位で完成された変換画像として出力することが可能となる。
[7.情報処理装置のハードウェア構成例について]
最後に、図14を参照して、上述した処理を実行する情報処理装置のハードウェア構成例について説明する。
CPU(Central Processing Unit)501は、ROM(Read Only Memory)502、または記憶部508に記憶されているプログラムに従って各種の処理を実行するデータ処理部として機能する。例えば、上述したフローチャートに従った処理を実行する。RAM(Random Access Memory)503には、CPU501が実行するプログラムやデータなどが記憶される。これらのCPU501、ROM502、およびRAM503は、バス504により相互に接続されている。
CPU501はバス504を介して入出力インタフェース505に接続され、入出力インタフェース505には、各種スイッチ、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507が接続されている。CPU501は、入力部506から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部507に出力する。
入出力インタフェース505に接続されている記憶部508は、例えばハードディスク等からなり、CPU501が実行するプログラムや各種のデータを記憶する。通信部509は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
入出力インタフェース505に接続されているドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア511を駆動し、記録されているコンテンツや鍵情報等の各種データを取得する。例えば、取得されたコンテンツや鍵データを用いて、CPUによって実行する再生プログラムに従ってコンテンツの復号、再生処理などが行われる。
[8.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) 描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理装置。
(2) 前記記憶部は、
フロントバッファとバックバッファから構成されるダブルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、フロントバッファとバックバッファとの切り換え処理を実行する(1)に記載の情報処理装置。
(3) 前記表示画像生成部は、
前記フロントバッファに格納された画像に対する画像変換処理を実行する(2)に記載の情報処理装置。
(4) 前記記憶部は、
バックバッファと、第1フロントバッファと、第2フロントバッファから構成されるトリプルバッファ構成であり、
前記アプリケーション実行部は、
描画コマンドによる描画処理結果を前記バックバッファに格納し、
前記第1フロントバッファは、前記バックバッファのコピーデータを格納する構成であり、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、第1フロントバッファと第2フロントバッファとの切り換え処理を実行する(1)に記載の情報処理装置。
(5) 前記表示画像生成部は、
前記第2フロントバッファに格納された画像に対する画像変換処理を実行する(4)に記載の情報処理装置。
(6) 前記表示画像生成部は、
a.解像度変換処理
b.ダイナミックレンジ変換処理
c.色空間変換処理
上記a〜cの少なくともいずれかの画像変換処理を実行する(1)〜(5)いずれかに記載の情報処理装置。
(7) 前記表示画像生成部は、
画像を出力する表示部の表示機能に応じて画像変換態様を決定する(1)〜(6)いずれかに記載の情報処理装置。
(8) 情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記アプリケーション実行部は、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
前記バッファ管理部は、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
前記表示画像生成部は、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する情報処理方法。
(9) 情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
前記プログラムは、
前記アプリケーション実行部に、
描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
前記バッファ管理部に、
前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
前記表示画像生成部に、
前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させるプログラム。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本開示の一実施例の構成によれば、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
具体的には、描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、記憶部の描画画像に対する変換処理を実行する表示画像生成部と、記憶部の複数バッファの切り替えを実行するバッファ管理部を有する。アプリケーション実行部は、描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出しを実行し、バッファ管理部は、描画完了通知APIの呼び出しに応じてバッファ切り替え処理を実行する。表示画像生成部は、アプリ実行部の描画中のバッファと異なるバッファの格納画像に対する画像変換を実行する。
本構成により、アプリケーションが実行する描画コマンドによる描画処理の完了を検知して、描画処理完了画像に対する変換処理や表示処理を行なう構成が実現される。
10 記録メディア
20 情報処理装置
21 PC
22 再生装置
23 TV
30 データ処理部
31 BD−Jアプリケーション
32 表示画像生成部
33 画像変換処理API
34 プレゼンテーションエンジン
35 画像デコーダ
36 表示制御部
100 情報処理装置
200 データ処理部
210 BD−Jアプリケーション実行部
220 記憶部(グラフィックスプレーン)
221 バックバッファ
222 フロントバッファ
230 表示画像生成部
240 バッファ管理部
250 表示部
300 情報処理装置
400 データ処理部
410 BD−Jアプリケーション実行部
420 記憶部(グラフィックスプレーン)
421 バックバッファ
422 フロントバッファ
430 表示画像生成部
440 バッファ管理部
450 表示部
501 CPU
502 ROM
503 RAM
504 バス
505 入出力インタフェース
506 入力部
507 出力部
508 記憶部
509 通信部
510 ドライブ
511 リムーバブルメディア

Claims (9)

  1. 描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
    前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
    前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
    前記アプリケーション実行部は、
    描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
    前記バッファ管理部は、
    前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
    前記表示画像生成部は、
    前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行する構成であり、
    前記アプリケーション実行部による第1バッファに対する描画画像格納処理と、前記表示画像生成部による第2バッファ格納画像に対する画像変換処理を並列に実行する情報処理装置。
  2. 前記記憶部は、
    フロントバッファとバックバッファから構成されるダブルバッファ構成であり、
    前記アプリケーション実行部は、
    描画コマンドによる描画処理結果を前記バックバッファに格納し、
    前記バッファ管理部は、
    前記描画完了通知APIの呼び出しに応じて、フロントバッファとバックバッファとの切り換え処理を実行する請求項1に記載の情報処理装置。
  3. 前記表示画像生成部は、
    前記フロントバッファに格納された画像に対する画像変換処理を実行する請求項2に記載の情報処理装置。
  4. 前記記憶部は、
    バックバッファと、第1フロントバッファと、第2フロントバッファから構成されるトリプルバッファ構成であり、
    前記アプリケーション実行部は、
    描画コマンドによる描画処理結果を前記バックバッファに格納し、
    前記第1フロントバッファは、前記バックバッファのコピーデータを格納する構成であり、
    前記バッファ管理部は、
    前記描画完了通知APIの呼び出しに応じて、第1フロントバッファと第2フロントバッファとの切り換え処理を実行する請求項1に記載の情報処理装置。
  5. 前記表示画像生成部は、
    前記第2フロントバッファに格納された画像に対する画像変換処理を実行する請求項4に記載の情報処理装置。
  6. 前記表示画像生成部は、
    a.解像度変換処理
    b.ダイナミックレンジ変換処理
    c.色空間変換処理
    上記a〜cの少なくともいずれかの画像変換処理を実行する請求項1に記載の情報処理装置。
  7. 前記表示画像生成部は、
    画像を出力する表示部の表示機能に応じて画像変換態様を決定する請求項1に記載の情報処理装置。
  8. 情報処理装置において実行する情報処理方法であり、
    前記情報処理装置は、
    描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
    前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
    前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
    前記アプリケーション実行部は、
    描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行し、
    前記バッファ管理部は、
    前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行し、
    前記表示画像生成部は、
    前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行し、
    前記アプリケーション実行部による第1バッファに対する描画画像格納処理と、前記表示画像生成部による第2バッファ格納画像に対する画像変換処理を並列に実行する情報処理方法。
  9. 情報処理装置において情報処理を実行させるプログラムであり、
    前記情報処理装置は、
    描画処理を実行し、描画結果を記憶部に格納するアプリケーション実行部と、
    前記記憶部の描画画像に対する画像変換処理を実行して表示部に出力する表示画像を生成する表示画像生成部と、
    前記記憶部に設定された複数のバッファの切り替え処理を実行するバッファ管理部を有し、
    前記プログラムは、
    前記アプリケーション実行部に、
    描画コマンドによる描画処理の完了後に、描画完了通知API(Application Programming Interface)の呼び出し処理を実行させ、
    前記バッファ管理部に、
    前記描画完了通知APIの呼び出しに応じて、前記アプリケーション実行部による描画画像の格納バッファを切り替えるバッファ切り替え処理を実行させ、
    前記表示画像生成部に、
    前記アプリケーション実行部による描画処理実行中のバッファと異なるバッファに格納された画像に対する画像変換処理を実行させ
    前記アプリケーション実行部による第1バッファに対する描画画像格納処理と、前記表示画像生成部による第2バッファ格納画像に対する画像変換処理を並列に実行させるプログラム。
JP2017534149A 2015-08-11 2016-07-19 情報処理装置、および情報処理方法、並びにプログラム Active JP6812973B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015159089 2015-08-11
JP2015159089 2015-08-11
PCT/JP2016/071112 WO2017026230A1 (ja) 2015-08-11 2016-07-19 情報処理装置、および情報処理方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JPWO2017026230A1 JPWO2017026230A1 (ja) 2018-06-07
JP6812973B2 true JP6812973B2 (ja) 2021-01-13

Family

ID=57983106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017534149A Active JP6812973B2 (ja) 2015-08-11 2016-07-19 情報処理装置、および情報処理方法、並びにプログラム

Country Status (4)

Country Link
US (1) US20180197509A1 (ja)
EP (1) EP3336833A4 (ja)
JP (1) JP6812973B2 (ja)
WO (1) WO2017026230A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11049211B2 (en) 2017-07-06 2021-06-29 Channel One Holdings Inc. Methods and system for asynchronously buffering rendering by a graphics processing unit
JP7191649B2 (ja) * 2017-12-27 2022-12-19 キヤノン株式会社 電子機器
CA3044477A1 (en) 2018-06-01 2019-12-01 Gregory Szober Display buffering methods and systems
US11164496B2 (en) 2019-01-04 2021-11-02 Channel One Holdings Inc. Interrupt-free multiple buffering methods and systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844569A (en) * 1996-04-25 1998-12-01 Microsoft Corporation Display device interface including support for generalized flipping of surfaces
US7586492B2 (en) * 2004-12-20 2009-09-08 Nvidia Corporation Real-time display post-processing using programmable hardware
TWI267036B (en) * 2005-02-24 2006-11-21 Asustek Comp Inc Method and apparatus for capturing full-screen frames
US8036469B2 (en) * 2006-05-16 2011-10-11 Canon Kabushiki Kaisha Imaging apparatus including a separable monitor, and method for controlling the imaging apparatus
JP4312238B2 (ja) * 2007-02-13 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 画像変換装置および画像変換方法
FR2920631B1 (fr) * 2007-08-30 2010-01-22 Alstom Transport Sa Systeme et procede de traitement d'un signal video
US9053559B1 (en) * 2007-11-16 2015-06-09 Nvidia Corporation Method and system for presenting image data to a video output device
JP2009133956A (ja) * 2007-11-29 2009-06-18 Mitsubishi Electric Corp 画像表示システム
US8054316B2 (en) * 2008-11-14 2011-11-08 Nvidia Corporation Picture processing using a hybrid system configuration
JP4915459B2 (ja) * 2009-04-03 2012-04-11 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
US9384276B1 (en) * 2011-05-03 2016-07-05 Amazon Technologies, Inc. Reducing latency for remotely executed applications
BR112014005551A2 (pt) * 2011-09-12 2017-03-21 Intel Corp múltiplas exibições simultâneas na mesma tela
US8847970B2 (en) * 2012-04-18 2014-09-30 2236008 Ontario Inc. Updating graphical content based on dirty display buffers
KR102223751B1 (ko) * 2013-07-12 2021-03-05 소니 주식회사 재생 장치, 재생 방법, 및 기록 매체
JP2015099340A (ja) * 2013-11-20 2015-05-28 シャープ株式会社 画像表示装置、テレビジョン受像機、画像表示方法、プログラム、及び、記録媒体
US10388255B2 (en) * 2018-06-29 2019-08-20 Intel Corporation Computers for supporting multiple virtual reality display devices and related methods

Also Published As

Publication number Publication date
US20180197509A1 (en) 2018-07-12
WO2017026230A1 (ja) 2017-02-16
EP3336833A4 (en) 2019-04-10
JPWO2017026230A1 (ja) 2018-06-07
EP3336833A1 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
JP6484368B2 (ja) 再生装置
JP6134076B2 (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム
JP4919122B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP6812973B2 (ja) 情報処理装置、および情報処理方法、並びにプログラム
WO2010113728A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
US20160173845A1 (en) Reproduction device, reproduction method, and recording medium
JP2015008361A (ja) 再生装置、再生方法、および記録媒体
WO2010113729A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JPWO2014208344A1 (ja) 再生装置、再生方法、および記録媒体
WO2010113730A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
RU2490730C2 (ru) Устройство для воспроизведения данных с носителя для хранения информации
JP2018129115A (ja) 再生装置
WO2010113731A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2017204319A (ja) 記録媒体
JP6536914B2 (ja) 再生装置、情報処理方法、およびプログラム
JP6579394B2 (ja) 再生装置、再生方法、情報処理装置、情報処理方法、プログラム、および記録媒体
JP4962673B1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP4962825B2 (ja) 情報処理装置、情報処理方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200629

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: 20201117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201130

R151 Written notification of patent or utility model registration

Ref document number: 6812973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151