JP7441936B2 - 画像データ転送装置、画像生成方法およびコンピュータプログラム - Google Patents

画像データ転送装置、画像生成方法およびコンピュータプログラム Download PDF

Info

Publication number
JP7441936B2
JP7441936B2 JP2022512522A JP2022512522A JP7441936B2 JP 7441936 B2 JP7441936 B2 JP 7441936B2 JP 2022512522 A JP2022512522 A JP 2022512522A JP 2022512522 A JP2022512522 A JP 2022512522A JP 7441936 B2 JP7441936 B2 JP 7441936B2
Authority
JP
Japan
Prior art keywords
frame
image
user operation
time
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
JP2022512522A
Other languages
English (en)
Other versions
JPWO2021199128A1 (ja
JPWO2021199128A5 (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 Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JPWO2021199128A1 publication Critical patent/JPWO2021199128A1/ja
Publication of JPWO2021199128A5 publication Critical patent/JPWO2021199128A5/ja
Application granted granted Critical
Publication of JP7441936B2 publication Critical patent/JP7441936B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

この発明は、表示対象の動画像のデータを処理する画像データ転送装置および画像生成方法に関する。
近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
ネットワークを介して伝送された画像のデータをクライアント端末に即時表示させる技術においては、当該クライアント端末とサーバ間の通信による遅延時間が問題となり得る。例えばクライアント端末側でのユーザ操作を表示画像に反映させる場合、ユーザ操作のサーバへの送信と、サーバからクライアント端末への画像データの送信といったデータの行き来が必要になり、看過できない遅延時間を生むことがある。この問題は、高い画質を追求するほど顕在化しやすい。
本発明はこうした課題に鑑みてなされたものであり、その目的は、通信によるデータ伝送を伴う画像表示において、ユーザ操作に対する表示の応答性を向上させる技術を提供することにある。
上記課題を解決するために、本発明のある態様は画像データ転送装置に関する。この画像データ転送装置は、クライアント端末に対するユーザ操作に係る情報を取得するクライアント情報取得部と、ユーザ操作に応じて動画像のフレームを生成する画像生成部と、生成されたフレームのデータを前記クライアント端末にストリーミング転送する通信部と、を備え、画像生成部は、ユーザ操作がなされた時点での表示内容を特定し、フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とする。
本発明の別の態様は画像生成方法に関する。この画像生成方法は画像データ転送装置が、クライアント端末に対するユーザ操作に係る情報を取得するステップと、ユーザ操作に応じて動画像のフレームを生成するステップと、生成されたフレームのデータをクライアント端末にストリーミング転送するステップと、を含み、フレームを生成するステップは、ユーザ操作がなされた時点での表示内容を特定し、フレームが表す内容を、当該ユーザ操作とその時点での表示内容に対応させることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、通信によるデータ伝送を伴う画像表示において、ユーザ操作に対する表示の応答性を向上させることができる。
本実施の形態における画像処理システムの構成例を示す図である。 本実施の形態のヘッドマウントディスプレイの外観例を示す図である。 本実施の形態におけるサーバと画像処理装置の基本的な構成を示す図である。 本実施の形態における、画像の描画から表示までの処理の様子を概念的に示す図である。 本実施の形態のサーバと画像処理装置におけるフレームの処理の流れを例示する図である。 本実施の形態のサーバおよび画像処理装置の機能ブロックを示す図である。 本実施の形態においてサーバの操作状況特定部が、画像処理装置においてなされたユーザ操作と、その時点での表示内容を特定する手法を説明するための図である。 本実施の形態においてサーバの破棄処理部が、暫定フレームを破棄すべきと判定するケースを例示する図である。 本実施の形態における、暫定フレームのデータ破棄に係る処理の手順を説明するための図である。 本実施の形態においてサーバが、ユーザ操作を反映させながら動画像のフレームを生成する処理手順を示すフローチャートである。
図1は、本実施の形態における画像処理システムの構成例を示す。画像表示システム1は、画像処理装置200、ヘッドマウントディスプレイ100、平板型ディスプレイ302、およびサーバ400を含む。画像処理装置200は、ヘッドマウントディスプレイ100および平板型ディスプレイ302と、無線通信またはUSB Type-C、HDMI(登録商標)などのインターフェース300により接続される。画像処理装置200はさらに、インターネットやLAN(Local Area Network)などのネットワーク306を介してサーバ400に接続される。
サーバ400は、画像データ転送装置として、表示対象の画像の少なくとも一部を生成して画像処理装置200に送信する。ここでサーバ400は、クラウドゲームなど各種配信サービスを提供する企業などのサーバでもよいし、任意の端末にデータを送信する家庭内サーバなどでもよい。したがってネットワーク306は、インターネットなどの公衆ネットワークやLAN(Local Area Network)など、その規模は限定されない。例えばネットワーク306は携帯電話キャリアネットワークや、街中にあるWi-Fiスポット、家庭にあるWi-Fiアクセスポイントを経由したものでもよい。あるいは画像処理装置200とサーバ400は、ビデオインターフェースにより直接接続されてもよい。
画像処理装置200は、サーバ400から送信された画像のデータに必要な処理を施し、ヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかに出力する。例えばサーバ400は、各自ヘッドマウントディスプレイ100を装着した複数のユーザの頭部の動きやユーザ操作を、各ヘッドマウントディスプレイ100に接続された画像処理装置200から受信する。
ここで画像処理装置200には、実行するゲームなどに対するユーザ操作の手段として入力装置304を接続してよい。ただしユーザ操作の手段はこれに限らず、画像処理装置200は図示しないカメラ、モーションセンサ、マイクロフォンなどを介してユーザの動きや音声を取得し、ユーザ操作として受け付けてもよい。画像処理装置200はヘッドマウントディスプレイ100を装着したユーザの頭部の動きを、ジェスチャによるユーザ操作として検出してもよい。いずれにしろ画像処理装置200は、ユーザ操作の内容をサーバ400に逐次送信する。
これに対しサーバ400は例えば、ユーザ操作に応じて変化させた仮想世界を、各ユーザの頭部の動きに対応する視野で描画したうえ、それぞれの画像処理装置200に送信する。画像処理装置200は送信された画像のデータを、必要に応じて、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適した形式に変換したうえ、適切なタイミングでヘッドマウントディスプレイ100や平板型ディスプレイ302に出力する。このような処理を、動画像のフレームごとに繰り返せば、複数のユーザが参加するクラウドゲームシステムを実現できる。
この際、画像処理装置200は、サーバ400から送信された画像に、別途準備したUI(User Interface)プレーン画像(あるいはOSD(On Screen Display)プレーン画像とも呼ぶ)や、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像を合成してから、ヘッドマウントディスプレイ100や平板型ディスプレイ302に出力してもよい。
画像処理装置200はまた、サーバ400から送信された画像を、ヘッドマウントディスプレイ100の表示直前の位置や姿勢に基づき補正することにより、頭部の動きに対する表示の追随性を高めてもよい。画像処理装置200は、平板型ディスプレイ302にも同様の視野で画像を表示させることにより、ヘッドマウントディスプレイ100を装着しているユーザがどのような画像を見ているかを、その他の人が見られるようにしてもよい。
ただし本実施の形態において表示対象とする動画像の内容や、その表示先は特に限定されない。例えばサーバ400は、図示しないカメラによって撮影された画像を表示対象とし、画像処理装置200にライブ配信してもよい。このときサーバ400は、スポーツ競技やコンサートなどのイベント会場を複数のカメラで撮影した多視点画像を取得し、それを用いてヘッドマウントディスプレイ100の動きに応じた視野での画像を作り出すことにより、自由視点のライブ映像を生成し、各画像処理装置200に配信してもよい。
また本実施の形態を適用できるシステムの構成は図示するものに限定されない。例えば画像処理装置200に接続する表示装置はヘッドマウントディスプレイ100と平板型ディスプレイ302のどちらか一方でもよいし、複数のヘッドマウントディスプレイ100であってもよい。また画像処理装置200はヘッドマウントディスプレイ100や平板型ディスプレイ302に内蔵されていてもよい。例えば平板型のディスプレイ、画像処理装置、入力装置を、それらを一体的に備えたパーソナルコンピュータや携帯端末(ポータブルゲーム機、高機能携帯電話、タブレット端末)としてもよい。
これらの装置にさらにヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかを必要に応じて接続できるようにしてもよい。またサーバ400に接続される画像処理装置200の数も限定されない。さらにサーバ400は、各自の平板型ディスプレイ302を視聴している複数のユーザの操作内容を、各平板型ディスプレイ302に接続された画像処理装置200から受信し、それに対応する画像を生成したうえ、それぞれの画像処理装置200に送信してもよい。
図2は、ヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。またヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。
ヘッドマウントディスプレイ100はさらに、筐体108の前面にステレオカメラ110、中央に広視野角の単眼カメラ111、左上、右上、左下、右下の四隅に広視野角の4つのカメラ112を備え、ユーザの顔の向きに対応する方向の実空間を動画撮影する。ある態様においてヘッドマウントディスプレイ100は、ステレオカメラ110が撮影した動画像を即時表示させることにより、ユーザが向いた方向の実空間の様子をそのまま見せるシースルーモードを提供する。
またステレオカメラ110、単眼カメラ111、4つのカメラ112による撮影画像の少なくともいずれかを、表示画像の生成に利用してもよい。例えばSLAM(Simultaneous Localization and Mapping)により周囲の空間に対するヘッドマウントディスプレイ100、ひいてはユーザの頭部の位置や姿勢を所定のレートで取得し、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりしてもよい。あるいは画像処理装置200において、サーバ400から送信された画像に撮影画像を合成し表示画像としてもよい。
またヘッドマウントディスプレイ100は、内部に加速度センサ、ジャイロセンサ、地磁気センサなど、ヘッドマウントディスプレイ100の位置、姿勢、動きを導出するためのモーションセンサのいずれかを備えてよい。この場合、画像処理装置200は、当該モーションセンサの計測値に基づき、ユーザ頭部の位置や姿勢の情報を所定のレートで取得する。この情報は、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりするのに用いることができる。
図3は、本実施の形態におけるサーバ400と画像処理装置200の基本的な構成を示している。本実施の形態におけるサーバ400および画像処理装置200は、表示画像の1フレームより小さい部分画像を記憶するローカルメモリを要所に備える。そしてサーバ400における画像データの圧縮符号化および送信、画像処理装置200におけるデータの受信、復号伸張、各種画像処理、表示装置への出力を、当該部分画像の単位でパイプライン処理する。これにより、サーバ400での画像の描画から、画像処理装置200に接続された表示装置への表示までの遅延時間を軽減させる。
サーバ400において、描画制御部402はCPU(Central Processing Unit)で実現され、画像描画部404における画像の描画を制御する。上述のとおり本実施の形態において表示させる画像の内容は特に限定されないが、描画制御部402は例えば、クラウドゲームを進捗させ、その結果を表す動画像のフレームを画像描画部404に描画させる。この際、描画制御部402は、画像処理装置200からユーザの頭部の位置や姿勢に係る情報を取得し、それに対応する視野で各フレームを描画するように制御してもよい。
画像描画部404はGPU(Graphics Processing Unit)で実現され、描画制御部402の制御のもと、所定または可変のレートで動画像のフレームを描画し、その結果をフレームバッファ406に格納する。フレームバッファ406はRAM(Random Access Memory)によって実現される。ビデオエンコーダ408は、描画制御部402の制御のもと、フレームバッファ406に格納された画像のデータを、1フレームより小さい部分画像の単位で圧縮符号化する。部分画像は、フレームの画像平面を例えば横方向、縦方向、縦横双方向、または斜め方向に設定した境界線で分割してなる、各領域の画像である。
ビデオエンコーダ408はこの際、圧縮符号化に必要な画像が画像描画部404により描画され次第、サーバの垂直同期信号を待たずに、当該フレームの圧縮符号化を開始してよい。フレームの描画や圧縮符号化など各種処理を、垂直同期信号を基準として同期させる従来技術によれば、画像の描画から表示までの各処理に与える時間をフレーム単位で揃えることにより、フレーム順の管理が容易である。しかしながらこの場合、フレームの内容によって描画処理が早く終了しても、圧縮符号化処理を次の垂直同期信号まで待機する必要がある。本実施の形態では後に述べるように、部分画像単位でその生成時刻を管理することにより、無駄な待機時間が生じないようにする。
ビデオエンコーダ408が圧縮符号化に用いる符号化方式は、H.264/AVCやH.265/HEVCなど一般的なものでよい。ビデオエンコーダ408は、圧縮符号化した画像のデータを部分画像記憶部410に格納する。部分画像記憶部410はSRAM(Static Random Access Memory)などで実現されるローカルメモリであり、1フレームより小さい部分画像のデータサイズに対応する記憶領域を有する。以後に述べる「部分画像記憶部」も同様である。ビデオストリーム制御部414は、圧縮符号化された部分画像のデータが部分画像記憶部410に格納される都度、当該データを読み出し、オーディオデータや制御情報などを必要に応じて含めたうえでパケット化する。
制御部412は、部分画像記憶部410に対するビデオエンコーダ408のデータ書き込み状況や、ビデオストリーム制御部414のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。例えば制御部412は、部分画像記憶部410にデータ欠乏、すなわちバッファアンダーランや、データ溢れ、すなわちバッファオーバーランが起きないように制御する。
入出力インターフェース416は画像処理装置200と通信を確立し、ビデオストリーム制御部414がパケット化したデータを、ネットワーク306を介して順次送信する。入出力インターフェース416は画像データのほか、オーディオデータや触覚フィードバックのためのデータなども適宜送信してよい。入出力インターフェース416はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報、後述する各種時間に係る情報、各種通知信号などを画像処理装置200から取得し、描画制御部402などに供給してもよい。
画像処理装置200において入出力インターフェース202は、サーバ400から送信された画像やオーディオのデータ、触覚フィードバックのためのデータ、各種通知信号などを順次取得する。入出力インターフェース202はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報などを入力装置304やヘッドマウントディスプレイ100などから適宜取得し、サーバ400に送信する。入出力インターフェース202はまた、画像処理装置200内部での各種時間に係る情報や各種通知信号を、サーバ400に送信してもよい。
そして入出力インターフェース202は、サーバ400から取得したパケットを復号のうえ、取り出した画像のデータを部分画像記憶部204に格納する。部分画像記憶部204は入出力インターフェース202とビデオデコーダ208の間に設けたローカルメモリである。制御部206は、部分画像記憶部204に対する入出力インターフェース202のデータ書き込み状況や、ビデオデコーダ208のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。
ビデオデコーダ208は、部分画像のデータが部分画像記憶部204に格納される都度、当該データを読み出し、符号化方式に応じた手順で復号伸張したうえ、部分画像記憶部210に順次格納する。部分画像記憶部210はビデオデコーダ208と画像処理部214の間に設けたローカルメモリである。制御部212は、部分画像記憶部210に対するビデオデコーダ208のデータ書き込み状況や、画像処理部214のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。
画像処理部214は、復号伸張された部分画像のデータが部分画像記憶部210に格納される都度、当該データを読み出し、表示に必要な処理を施す。例えばヘッドマウントディスプレイ100において、接眼レンズを介して見たときに歪みのない画像を視認させるために、接眼レンズによる歪みと逆の歪みを与える補正処理を実施する。
あるいは画像処理部214は、別途準備したUIプレーン画像を参照し、サーバ400から送信された画像に合成(スーパーインポーズ)してもよい。また画像処理部214は、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像を、サーバ400から送信された画像に合成してもよい。画像処理部214はまた、処理の時点におけるユーザの頭部の位置や姿勢に対応する視野となるように、サーバ400から送信された画像を補正してもよい。画像処理部214はまた、超解像処理など平板型ディスプレイ302へ出力するのに適した画像処理を行ってもよい。
いずれにしろ画像処理部214は、部分画像記憶部210に格納された部分画像の単位で処理を施し、部分画像記憶部216に順次格納していく。部分画像記憶部216は画像処理部214とディスプレイコントローラ220の間に設けたローカルメモリである。制御部218は、部分画像記憶部216に対する画像処理部214のデータ書き込み状況や、ディスプレイコントローラ220のデータ読み出し状況などを常に監視し、両者の動作を適切に制御する。
ディスプレイコントローラ220は、画像処理後の部分画像のデータが部分画像記憶部216に格納される都度、当該データを読み出し、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適切なタイミングで出力する。具体的には、それらのディスプレイの垂直同期信号に合致するタイミングで、各フレームの最上段の部分画像のデータを出力し、その後、下方に向けて部分画像のデータを順次出力していく。
次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
サーバ400は上述のとおり、フレーム90を部分画像ごとに圧縮符号化する。図では画像平面を水平方向に5分割し、部分画像92a、92b、92c、92d、92eとしている。これにより、部分画像はこの順で次々に圧縮符号化され、矢印に示すように画像処理装置200へ伝送され表示される。すなわち最上段の部分画像92aに対し、圧縮符号化、送信、復号伸張、表示パネル94への出力といった処理が施されている間に、その下の部分画像92b、さらに下の部分画像92c、というように順次部分画像が伝送され表示される。これにより、画像の描画から表示までに必要な各種処理を並列に実施でき、転送時間が介在しても最低限の遅延で表示を進捗させることができる。
一方、クラウドゲームなどにおいては、サーバ400から転送された映像、音声、触覚フィードバックなどのゲーム内容をユーザが認識のうえ、何らかのリアクションを行い、その内容をサーバ400へ返信する、といった手順が発生する。すなわちサーバ400から送信されたフレームが画像処理装置200側で表示された時点で、サーバ400ではそれより先のフレームの処理がなされ、表示されたフレームに対しなされたユーザ操作がサーバ400に到着した頃には、サーバ400ではさらに先のフレームが処理されている。
ここでサーバ400がユーザ操作を検知した時点で、生成中の動画像にそのままユーザ操作を反映させると、ユーザの認識上では、自分の操作が時間差をもって実現した状態となる。その結果、ユーザが意図しない状況が発生したり、場合によっては画像世界が破綻したりすることが起こり得る。図5は、サーバ400と画像処理装置200におけるフレームの処理の流れを例示している。図は横方向を時間経過とし、最上段はサーバ400における動画像の各フレームの生成時間を、フレームの番号とともに太線矢印で示している。さらにそのうちの「1」番目のフレームに対しなされる各種処理の時間を、下方に列記している。
サーバ400は「1」番目のフレームを生成後、そのデータを圧縮符号化し(S10)、画像処理装置200へ転送する(S12)。画像処理装置200は当該データを受信すると、それを復号伸張し(S14)、必要な画像処理を施したうえで(S16)、表示装置に表示させる(S18)。上述のとおりS10~S18の処理は、部分画像単位で進捗させることにより、時間的に重なり合った状態で並列に行える。
ユーザはそのようにして表示された画像を認識したうえ(S20)、ユーザ操作を発生させる(S22)。すると画像処理装置200はそれを受け付け、操作内容に係る情報をサーバ400へ転送する(S24)。これによりサーバ400がユーザ操作の内容を特定するのは、図示する例では「4」番目のフレームを生成している最中となる。結果として、画像処理装置200においてユーザが操作を行ったあとに表示される「2」~「4」番目のフレームは、ユーザ操作がなされなかった前提での画像世界を表している。
上述のとおりサーバ400が検知した時点での動画像に、ユーザ操作をそのまま反映させると、あたかも「5」番目のフレームに対しユーザ操作がなされたような状態が発生する。ローカルな環境でゲームを実施する場合はこのような遅延時間が発生しにくいため、外部との通信を介することによる応答性の悪さが顕在化しやすい。
そこで本実施の形態におけるサーバ400は、ユーザ操作がなされた時点で表示されていた画像世界を特定し、そこでユーザ操作がなされたことの結果として、最新のフレームを生成する。図示する例では、「2」番目のフレームから仮に作ってきた画像世界を遡って修正したうえで、「5」番目以降のフレームを生成する。これにより、通信を介した操作であっても、画像世界やゲームの状況への影響を最小限にできる。なお上述のとおりサーバ400、画像処理装置200での部分画像単位でのパイプライン処理は低遅延化に有効であるが、本実施の形態をそれに限る主旨ではない。すなわち以後述べるユーザ操作の反映処理は、フレーム単位で処理を進捗させる場合であっても同様の効果を発揮する。
図6は、本実施の形態のサーバ400および画像処理装置200の機能ブロックを示している。同図に示す各機能ブロックは、ハードウェア的にはCPU、GPU、エンコーダ、デコーダ、演算器、各種メモリなどで実現でき、ソフトウェア的には、記録媒体からメモリにロードした、情報処理機能、画像描画機能、データ入出力機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、通信部426、およびクライアント情報取得部428を備える。画像生成部420は図3の描画制御部402、画像描画部404、フレームバッファ406で構成され、ゲーム画像など画像処理装置200に送信すべき動画像のフレームを、所定または可変のレートで生成する。あるいは画像生成部420は、図示しないカメラや記憶装置などから動画像のデータを取得してもよい。
詳細には画像生成部420は、インスタンス記憶部430、操作状況特定部432、描画部434、および破棄処理部436を備える。インスタンス記憶部430は、生成する動画像が表す世界の、過去の状態(インスタンス)を所定時間分、保持する。ここで「状態(インスタンス)」とは少なくとも、画像の描画に必要で、かつユーザ操作に応じて変化し得る情報である。例えば電子ゲームにおいては、ユーザによる操作対象のオブジェクトの位置や姿勢、敵キャラクタの位置や姿勢、戦況、ストーリー、会話の内容、周囲のオブジェクトの状態などである。
ただしインスタンスをこれらに限定する主旨ではなく、表現する内容によって様々であってよい。図5の例では、ユーザ操作の内容を正確に画像世界に反映させるためには、「1」番目のフレームにおけるインスタンスが必要となる。したがってインスタンス記憶部430は、所定数のフレーム分のインスタンスを記憶する。操作状況特定部432は、画像処理装置200においてユーザ操作がなされた時点での表示内容を特定する。図5の例では、ユーザ操作がなされた時点での表示が「1」番目のフレームであることを特定する。
操作状況特定部432は、ユーザ操作がなされた時点で表示されていたフレームの特定のみならず、画像処理装置200において当該フレームに施された処理の内容についても特定してよい。例えば上述のとおり画像処理装置200が、ヘッドマウントディスプレイ100の表示直前の位置や姿勢に応じて視野の補正を行う場合、操作状況特定部432は、視野補正後の表示内容を特定する。これにより、ユーザ操作のタイミングのみならず、表示された画像がどのようであったかや、どの位置に対しユーザ操作がなされたか、といった情報を正確に特定できる。
描画部434は、画像処理装置200におけるユーザ操作に対応する変化を有する動画像の各フレームを生成する。具体的には描画部434は、ユーザ操作の検知とともに操作状況特定部432が特定した情報に基づき、過去の画像世界へユーザ操作を反映させたうえで、その後の変化を表す画像を生成する。ただし後述するように、表示済みのフレームとの連続性を踏まえ、ユーザ操作がなされなかったものとしてフレームを生成し続けることがあってよい。
破棄処理部436は、ユーザ操作の検知前にユーザ操作がなされなかった前提で生成された過去のフレームが、不可逆な方向に進行していた場合や、ユーザ操作がなされた前提の画像世界と矛盾する場合、未表示のフレームについてはデータを破棄する処理を実施する。図5の例では、ユーザ操作を反映させることが可能な「5」番目のフレームと、それ以前の「2」~「4」番目のフレームでは、内容に不連続性が生じ得る。
以後、「2」~「4」番目のフレームのように、サーバ400で生成済みで、新たに検知したユーザ操作を反映させていない過去のフレームを「暫定フレーム」と呼ぶ。暫定フレームと新たに生成するフレームとの不連続性が看過できない程度であるとき、例えば破壊された物が元に戻ったり、何もない所に突然、物が表れたりするような状況が発生するとき、破棄処理部436は、可能な範囲で暫定フレームの表示を阻止することで、不連続性を認識されにくくする。
一方、不連続性が容認できる程度であるとき、すなわち暫定フレームと新たに生成するフレームとの差が小さいときは、暫定フレームをそのまま表示させても差し支えない。したがって破棄処理部436は、暫定フレームと新たなフレームを比較するなどして、暫定フレームの表示を阻止するための処理を開始するか否かを判定する。そのため破棄処理部436の内部には、あらかじめ判定基準を設定しておく。定性的には、上述のとおり暫定フレームが不可逆な内容であるときや、暫定フレームと新たなフレームの矛盾が大きいときに破棄すると判定する。
破棄すると判定した場合、破棄処理部436は送信済みのフレームについて、データ破棄を要求する信号を、通信部426を介して画像処理装置200へ送信する。当該要求信号には、フレームのデータを送信するパケットより高い優先度を与えて画像処理装置200へ送信することで、画像処理装置200がフレームのデータより高速に受信できるようにする。すなわちデータ破棄を要求する信号は、サーバ400および画像処理装置200間でのデータの送受に係る機能、例えばパケット化部424、通信部426、入出力インターフェース416、202、ネットワーク、画像データ取得部240において並列に進行している他の通知や転送を、高い優先度を与えることにより追い越して伝送してよい。
そして破棄処理部436は、データ破棄要求の結果を画像処理装置200から取得する。すなわち破棄処理部436は、破棄の要求信号が、表示の阻止が可能な期限内に画像処理装置200に到着したか否かを特定する。要求信号が表示阻止に間に合った場合、破棄処理部436は、画像処理装置200へ未送信の暫定フレームのデータも破棄するように、圧縮符号化部422、パケット化部424、通信部426へ要求する。これにより画像処理装置200へは、ユーザ操作が反映された新たなフレームのデータから送信が再開される。
破棄の要求信号が表示阻止に間に合わなかった場合、破棄処理部436は、ユーザ操作がなされなかったものとして次のフレームを生成するように描画部434に要求する。すなわちユーザ操作と明らかに矛盾のある暫定フレームが表示されてしまった場合は、新たに生成するフレームをそれに合わせることにより画像世界の連続性を優先させる。
圧縮符号化部422は、図3のビデオエンコーダ408、部分画像記憶部410、制御部412で構成され、画像生成部420が生成した画像のデータを、部分画像の単位で圧縮符号化する。ここで圧縮符号化部422は、1行、2行など所定数の行の領域や、16×16画素、64×64画素など所定サイズの矩形領域を単位として動き補償や符号化を行う。したがって圧縮符号化部422は、圧縮符号化に必要な最小単位の領域のデータが画像生成部420により生成されたら、圧縮符号化を開始してよい。
なお圧縮符号化や送信におけるパイプライン処理の単位である部分画像は、当該最小単位の領域と同じでもよいしそれより大きな領域としてもよい。パケット化部424は、図3のビデオストリーム制御部414、制御部412で構成され、圧縮符号化された部分画像のデータを、利用する通信のプロトコルに応じた形式でパケット化する。この際、当該部分画像が描画された時刻(以下、「生成時刻」と呼ぶ)を、画像生成部420または圧縮符号化部422から取得することにより、部分画像のデータと対応づけておく。
通信部426は、図3の入出力インターフェース416で構成され、圧縮符号化された部分画像のデータとその生成時刻を含めたパケットを、画像処理装置200に送信する。これらの構成によりサーバ400は、圧縮符号化、パケット化、送信を、1フレームより小さい部分画像単位でパイプライン処理することにより並列に行う。通信部426はまた、破棄処理部436からの要求に応じて、暫定フレームのデータ破棄の要求信号を高い優先度で画像処理装置200に送信する。
クライアント情報取得部428は、図3の入出力インターフェース416で構成され、画像処理装置200におけるユーザ操作に係る情報を取得する。すなわちクライアント情報取得部428は、ユーザ操作の内容とともに、画像処理装置200において当該ユーザ操作が生じた時点での表示内容を特定するための、時間的な情報を取得する。具体例は後に述べる。クライアント情報取得部428はまた、破棄処理部436が暫定フレームのデータ破棄の要求信号を画像処理装置200に送信したとき、その結果を画像処理装置200から取得する。
クライアント情報取得部428はさらに、画像処理装置200において各フレームに対しなされた画像処理の内容に係る情報を取得してもよい。例えば上述のとおり画像処理装置200が、表示直前のヘッドマウントディスプレイ100の位置や姿勢に基づき表示画像の視野を補正する場合、クライアント情報取得部428は当該補正後の視野に係る情報を取得してよい。クライアント情報取得部428は、取得した情報を、操作状況特定部432や破棄処理部436に適宜供給する。
画像処理装置200は、入力情報取得部248、画像データ取得部240、復号伸張部242、画像処理部244、表示制御部246、およびクライアント情報送信部250を備える。入力情報取得部248は図3の入出力インターフェース202で構成され、入力装置304を介してなされたユーザ操作の内容を取得する。入力情報取得部248はその際、ユーザ操作がなされた時刻を記録する。
入力情報取得部248はさらに、接続されたヘッドマウントディスプレイ100が備える各種カメラやモーションセンサなどから撮影画像や計測値を取得することにより、ヘッドマウントディスプレイ100の位置や姿勢を特定してもよい。ヘッドマウントディスプレイ100の位置や姿勢の情報は、画像処理部244において、表示画像の視野の補正に用いることができる。
画像データ取得部240は、図3の入出力インターフェース202、部分画像記憶部204、および制御部206で構成され、圧縮符号化された部分画像のデータを、その生成時刻とともにサーバ400から取得する。画像データ取得部240はまた、暫定フレームのデータ破棄の要求信号をサーバ400から取得する。復号伸張部242は、図3のビデオデコーダ208、部分画像記憶部210、制御部206、制御部212で構成され、圧縮符号化された部分画像のデータを復号伸張する。ここで復号伸張部242は、動き補償や符号化など圧縮符号化に必要な最小単位の領域のデータが画像データ取得部240により取得されたら、復号伸張処理を開始してよい。
復号伸張部242はまた、サーバ400から送信された暫定フレームのデータ破棄の要求を、画像処理部244や表示制御部246に通知することにより、対象フレームの処理や表示を適宜中止させる。画像処理部244は図3の画像処理部214、部分画像記憶部216、制御部212、制御部218で構成され、部分画像のデータに所定の処理を施し、表示用の部分画像のデータを生成する。なお復号伸張部242と画像処理部244は、部分画像のデータに所定の処理を施し表示用の部分画像のデータを生成するという意味で共通の機能を有し、それらの少なくともいずれかを「画像処理部」と総称することもできる。
画像処理部244は例えば上述のとおり、ヘッドマウントディスプレイ100が備える接眼レンズの歪みを考慮して逆の歪みを与える補正を施す。あるいは画像処理部244は、UIプレーン画像など、動画像とともに表示させるべき画像を、部分画像単位で合成する。または画像処理部244は、その時点でのユーザ頭部の位置や姿勢を取得し、サーバ400が生成した画像を、正しく表示時の視野になるように補正する。これにより、サーバ400からの転送時間によって、ユーザの頭部の動きと表示画像の間に生じる時間的なずれを最小限にすることができる。
画像処理部244はそのほか、一般的になされる画像処理のいずれかまたは組み合わせを実施してもよい。例えば画像処理部244は、ガンマーカーブ補正、トーンカーブ補正、コントラスト強調などを行ってもよい。すなわち表示装置の特性やユーザ指定に基づき、復号伸張した画像データの画素値・輝度値について必要なオフセット補正をしてもよい。また画像処理部244は、近傍画素を参照し、重畳・加重平均・平滑化などの処理を行うノイズ除去処理を行ってもよい。
また画像処理部244は、画像データの解像度と、表示パネルの解像度を合わせたり、近傍画素を参照し、バイリニア・トライリニアなど、加重平均・オーバーサンプリングなどを行ったりしてもよい。また画像処理部244は、近傍画素を参照し、画像テクスチャの種類を判定し、それに応じた、デノイズ・エッジ強調・平滑化・トーン/ガンマ/コントラスト補正を選択的に処理してもよい。このとき画像処理部244は、画像サイズのアップスケーラ・ダウンスケーラと合わせて処理してもよい。
また画像処理部244は、画像データの画素フォーマットと、表示パネルの画素フォーマットが異なる場合にフォーマット変換を行ってもよい。例えばYUVからRGB、RGBからYUV、YUVにおける444、422、420間の変換、RGBにおける8、10、12ビットカラー間の変換などを行ってもよい。また画像処理部244は、デコードした画像データがHDR(High Dynamic Range)の輝度レンジ対応フォーマットである一方、表示ディスプレイのHDRの輝度レンジ対応範囲が狭い場合(表示可能な輝度ダイナミックレンジがHDRフォーマット規定より狭いなど)、できるだけHDR画像の特徴を残しながら、表示パネル対応可能な範囲のHDRの輝度レンジフォーマットへ変換する疑似HDR処理(色空間変更)を行ってもよい。
また画像処理部244は、デコードした画像データがHDR対応フォーマットだったが、表示ディスプレイがSDR(Standard Dynamic Range)のみに対応している場合、できるだけHDR画像の特徴を残しながら、SDRフォーマットへ色空間変換してもよい。デコードした画像データがSDR対応フォーマットだったが、表示ディスプレイがHDRに対応している場合、画像処理部244はできるだけHDRパネルの特性にあわせて、HDRフォーマットへエンハンス変換してもよい。
また画像処理部244は、表示ディスプレイの階調表現能力が低い場合、誤差拡散付加をしてもよいし、画素フォーマット変換とあわせて処理するディザリング処理を実施してもよい。また画像処理部244は、ネットワーク転送データの欠落やビット化けにより、デコードした画像データに部分的な欠損や異常がある場合に、その領域を補正処理してもよい。また画像処理部244は、単色塗りつぶし、近傍画素複製による補正、前フレーム近傍画素による補正、適応型欠損補正により過去フレームや現フレームの周辺から推測した画素による補正をしてもよい。
また画像処理部244は、画像処理装置200から表示装置へ出力するインターフェースの必要帯域を削減するために画像圧縮を行ってもよい。この際、画像処理部244は、近傍画素参照によるライトウェイトなエントロピー符号化、インデックス値参照符号化、ハフマン符号化などを行ってもよい。また表示装置が液晶パネルを採用した場合、高解像度化が可能な反面、反応速度が遅い。表示装置が有機ELパネルを採用した場合は反応速度が速い反面、高解像度化が難しく、また黒色領域とその周辺で色にじみが発生するBlack Smearingと呼ばれる現象が生じ得る。
そこで画像処理部244は、このような表示パネルによる様々な悪影響を解消するように補正を行ってもよい。例えば液晶パネルの場合、画像処理部244はフレーム間に黒い画像を挿入することにより液晶をリセットし、反応速度を向上させる。また有機ELパネルの場合、画像処理部244は輝度値や、ガンマ補正におけるガンマ値にオフセットをかけBlack Smearingによる色にじみを目立ちにくくする。
画像処理部244は画像に対し、高精細度化や、高周波数成分の復元や再構築を行う超解像処理(Super Resolution)を行ってもよい。画像処理部244はこのとき、機械学習や深層学習を用いてあらかじめ構築したデータベースやネットワークモデルへ画像データを入力することにより画像を変換してもよい。ここで画像処理部244は、部分画像単位で変換を実施することにより低遅延化を図ってよい。このときの部分画像単位を、表示パネルの走査順序や分割構成に基づいて決定された部分画像単位と一致させることで、一連の処理をパイプライン化でき、さらなる低遅延化を実現できる。
表示制御部246は、図3のディスプレイコントローラ220と制御部218で構成され、表示用の部分画像のデータを順次、ヘッドマウントディスプレイ100や平板型ディスプレイ302の表示パネルに表示させる。ただし本実施の形態では、部分画像の圧縮符号化データをサーバ400から個別に取得するため、通信状況によっては取得順が入れ替わったり、パケットロスにより部分画像のデータ自体が取得できなかったりすることが考えられる。
そこで表示制御部246は、部分画像が描画されてからの経過時間を、各部分画像の生成時刻から導出したうえ、サーバ400での描画タイミングを再現するように、表示パネルへの部分画像の出力タイミングを調整する。具体的には表示制御部246は、部分画像のデータの生成時刻、および/または生成時刻からの経過時間に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
そして表示制御部246はデータ取得状況に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。例えば表示制御部246はデータ取得状況に応じて、次のフレームに含まれる本来の部分画像のデータを出力するか、それより前のフレームに含まれる部分画像のデータを再度出力するかを決定する。表示制御部246は、次のフレームの表示開始時刻である垂直同期信号のタイミングまでにそのような出力対象を決定する。
例えば表示制御部246は、フレーム中、所定値以上の割合で部分画像が欠落している場合に、出力対象を前のフレームのデータに置き換えるなど、取得された部分画像の量(割合)に応じて出力対象を変化させてもよい。また表示制御部246は、過去のフレームの出力実績や、生成時刻からの経過時間に応じて、次のフレーム表示期間の出力対象を変化させてもよい。そして表示制御部246は、決定した順序およびタイミングで、出力対象として決定された部分画像のデータを表示パネルに出力する。
クライアント情報送信部250は図3の入出力インターフェース202で構成され、入力情報取得部248が取得したユーザ操作の内容をサーバ400に送信する。この際、クライアント情報送信部250は、ユーザ操作が生じた時点での表示内容を特定するための時間的な情報を、ユーザ操作の内容と対応づけてサーバ400に送信する。ここで「時間的な情報」とは、時刻(絶対時間)のほか、差分時間やフレーム番号など、時間軸上の情報を表すパラメータであればよい。
クライアント情報送信部250はまた、画像処理部244が表示画像に対し施した補正の内容をサーバ400に送信してよい。さらにクライアント情報送信部250は、サーバ400から送信された、暫定フレームのデータ破棄要求に対する結果を画像処理部244などから収集し、サーバ400に送信する。この際、クライアント情報送信部250は、当該結果を他より高い優先度で送信することにより、サーバ400が高速で検知できるようにする。すなわち暫定フレームのデータ破棄要求に対する結果は、サーバ400および画像処理装置200間でのデータの送受に係る機能、例えばクライアント情報送信部250、入出力インターフェース416、202、ネットワーク、クライアント情報取得部428において並列に進行している他の通知や転送を、高い優先度を与えることにより追い越して伝送してよい。
図7は、サーバ400の操作状況特定部432が、画像処理装置200においてなされたユーザ操作と、その時点での表示内容を特定する手法を説明するための図である。図の上段はサーバ400における処理の時間軸であり、各フレームの生成時刻をフレームの四辺形で表している。下段は画像処理装置200における処理の時間軸であり、表示装置での表示時刻をフレームの四辺形で表している。
例えばサーバ400において時刻T1で生成されたフレーム12は、上述のとおり圧縮符号化やパケット化がなされた結果、時刻T2で画像処理装置200への送信が開始される。当該データは画像処理装置200において時刻T3で受信が開始され、復号伸張や画像処理がなされた結果、時刻T4で表示装置に出力、表示される。これを見たユーザが、時刻T5で何らかの操作を行うと、その情報は時刻T6でサーバ400により受信される。このような処理の流れにおいてサーバ400は、時刻T6で取得したユーザ操作が画像処理装置200において発生した際に、表示されていた内容を特定する。
例えば上述のとおりサーバ400は、各フレームの生成時刻を画像のデータとともに画像処理装置200に送信している。したがって画像処理装置200のクライアント情報送信部250は、ユーザ操作の内容とともに、その時点で表示されていたフレーム12の生成時刻T1を対応づけてサーバ400に送信する。これによりサーバ400の操作状況特定部432は、送信されたユーザ操作の内容と、その際の表示内容であるフレーム12を特定できる。
あるいはサーバ400においてフレームが生成される時刻(例えば時刻T1)と、画像処理装置200において同じフレームが表示される時刻(例えば時刻T4)との時間ずれ(例えば時間ずれΔT)を、サーバ400と画像処理装置200とのハンドシェイクにより監視してもよい。この場合、画像処理装置200のクライアント情報送信部250は、ユーザ操作の内容とともに、当該ユーザ操作が発生した時刻T5をサーバ400に送信する。するとサーバ400の操作状況特定部432は、ユーザ操作の時刻T5から時間ずれΔTだけ前の時刻の直前に生成されたフレーム12を、ユーザ操作時の表示内容として特定できる。操作状況特定部432はまた、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかも特定してよい。
あるいはサーバ400は、画像のデータとともにそのフレーム番号を画像処理装置200に送信し、画像処理装置200のクライアント情報送信部250は、ユーザ操作の内容とともに、その時点で表示されていたフレーム12の番号と、ユーザ操作がなされた時刻T4(絶対時間)を対応づけてサーバ400に送信してもよい。ユーザ操作がなされた時刻T4の代わりに、動画の表示開始からユーザ操作がなされるまでの差分時間を送信してもよい。あるいはクライアント情報送信部250は、フレーム12の番号をユーザ操作の内容とともに送信するのみとし、当該フレームの表示時間内でユーザ操作がなされた詳細な時刻は特定しなくてもよい。
これらの場合、サーバ400の操作状況特定部432は、送信されたフレーム12の番号と最新フレームの番号との差から、いくつ前のフレームの画像世界に対しユーザ操作がなされたかを特定する。これを実現するため、インスタンス記憶部430には、それまでに生成されたフレームの番号とその時点のインスタンスを紐付けておく。ユーザ操作がなされた時刻T4(絶対時間)や動画の表示開始からユーザ操作がなされるまでの差分時間をさらに取得した場合、操作状況特定部432は、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかも特定する。この場合、インスタンス記憶部430にはさらに、各フレームの生成時刻を紐付けておいてもよい。
図8は、サーバ400の破棄処理部436が、暫定フレームを破棄すべきと判定するケースを例示している。図の横方向が時間軸であり、動画像に表される内容を5つのフレームで模式的に示している。ここでは、ユーザ操作により車のオブジェクトが仮想世界を走るゲームを想定している。まず時刻t1におけるフレーム14では、手前にある車のオブジェクトがカーブに差し掛かっている。ここでユーザがハンドルを左に切る操作を行っても、サーバ400で検知されなければ、時刻t2ではフレーム16のように障害物に衝突した様子が描画される。
そして時刻t3では、フレーム18のように「GAME OVER」、すなわちゲームが終了してしまうこともあり得る。本実施の形態のサーバ400は上述のとおり、時間を遡って入力操作を画像世界に反映させる。すなわち時刻t1のフレームに対しハンドル操作が適切になされたことを時刻t3の前に検知したら、サーバ400は、時刻t2では衝突などは発生せずにカーブを曲がった世界を計算上で導出する。
図ではわかりやすさのために、その様子をフレーム20として表している。なおヘッドマウントディスプレイ100を表示先として、画像処理装置200が表示の直前で視野を補正する場合、操作状況特定部432は上述のとおり、補正後の視野と入力操作を対応づける。これにより、ユーザ操作を画像世界に厳密に反映させることができる。
その結果、サーバ400は、無事に走行が続いている内容のフレーム22を時刻t3に対し生成できる。なおサーバ400がユーザ操作を検知した段階で、それより前に生成済み、または生成中のフレーム16は「暫定フレーム」となる。この例で暫定フレーム16は車が衝突した状態を表しているため、時刻t3の新たなフレーム22で車が走行している状態と矛盾してしまう。
サーバ400が、時刻t3より後にユーザ操作を検知した場合などは、「GAME OVER」のフレーム18の後に車が走行している状態になり、さらに不自然となる。一方で、時刻t2の暫定フレーム16が、多少道を逸れた程度の内容であれば、その後にフレーム22を表示させても大きな違和感は与えにくい。したがって破棄処理部436は、暫定フレーム16と、ユーザ操作を反映させた世界での新たなフレーム22を画像上、または画像世界で比較し、その差が設定条件より大きければ破棄すべきと判定する。
なおこの比較は、新たに生成するフレーム22の直前の暫定フレームのみならず、ユーザ操作がなされた時に表示されていたフレームの次の暫定フレームから順次行ってよい。そして設定条件より大きい差が生じている暫定フレームから破棄の対象としてよい。また上述のとおり、破棄を決定しても画像処理装置200で表示の阻止に間に合わない場合、ユーザ操作がなされなかったとして画像の連続性を保つ。つまり図示する例では、フレーム16が表示されてしまったら、そのままフレーム18を生成したうえでフレーム16の後に表示させる。
図9は、暫定フレームのデータ破棄に係る処理の手順を説明するための図である。図の表し方は図5と同様であるが、同図の場合、後続の「2」番目、「3」番目のフレームに対する各処理も示している。各処理名の末尾の括弧内の数字は、処理対象のフレームの番号である。まず図5と同様に、「1」番目のフレームが処理される。これにより当該フレームを見たユーザによる操作の情報が、時刻T10でサーバ400に受信されるとする。
上述のとおり、サーバ400がユーザ操作の情報を取得した直後に、それを反映させた「5」番目のフレームを生成するにあたり、破棄処理部436は「2」~「4」番目の暫定フレームとその内容を比較し、それらのフレームを破棄すべきか否かを判定する。破棄すべきと判定したフレームが、画像処理装置200へ送信済みあるいは送信中の暫定フレーム、図の例では「3」番目のフレームを含む場合、破棄処理部436は、画像処理装置200に該当データの破棄を要求する。
画像処理装置200での要求信号の受信が破棄対象のフレームの表示前であれば、画像処理装置200は当該フレームの表示を中止する。図示する例では、時刻T11で要求信号が送信された結果、画像処理装置200がそれを受信した時刻T12が、破棄対象である「3」番目のフレームの表示開始時刻T14より前のため、表示阻止が成功する。この場合、サーバ400は内部でも破棄処理を実行する。すなわち「4」番目のフレームを含む暫定フレームに係る処理の結果を破棄し、画像世界の状態を、「1」番目のフレームのタイミングでユーザ操作がなされたとして修正する。そしてサーバ400は、修正した世界での「5」番目のフレームを生成する。
画像処理装置200での要求信号の受信が破棄対象のフレームの表示開始後であったときは、その内容での表示を続行する。図示する例では、時刻T13で要求信号が送信された結果、画像処理装置200がそれを受信した時刻T15が、破棄対象である「3」番目のフレームの表示開始時刻T14より後のため、表示阻止が不成功となる。この場合、画像処理装置200はその旨をサーバ400に通知する。時刻T16で当該通知を取得したら、サーバ400は破棄処理を中止する。すなわち「4」番目のフレームを含む暫定フレームに係る処理の結果は破棄せず、画像世界の状態も修正しない。そしてサーバ400は、ユーザ操作がなされなかったこととして「5」番目のフレームを生成する。
図10は、サーバ400が、ユーザ操作を反映させながら動画像のフレームを生成する処理手順を示すフローチャートである。まずサーバ400の画像生成部420、圧縮符号化部422、パケット化部424、および通信部426は協働して、動画像のフレームの生成および転送処理を開始する(S30)。これによりフレームのデータが部分画像単位で画像処理装置200に送信され、表示される。
画像処理装置200におけるユーザ操作が検知されない期間は(S32のN)、当然、ユーザ操作を反映させることなく(S44)、フレームの生成、転送を続行する(S46のN)。ユーザ操作が検知されたら(S32のY)、すなわちクライアント情報取得部428が画像処理装置200からユーザ操作に係る情報を受信したら、操作状況特定部432は、画像処理装置200においてユーザ操作がなされた時点で表示されていたフレームやその補正内容を特定する。
これにより描画部434は、インスタンス記憶部430に記憶された該当時刻のインスタンスにユーザ操作を反映させた場合のフレーム、あるいはその画像世界を仮に生成する(S33)。そして破棄処理部436は、仮のフレームあるいは画像世界と、暫定フレームあるいはそれが表す世界とを比較し(S34)、所定の判定基準に則り、暫定フレームを破棄するか否かを決定する(S36)。
破棄すべきでなければ(S36のN)、描画部434が仮に生成した、ユーザ操作を反映させたフレームをそのまま画像処理装置200に送信する(S42)。破棄すべきと判定された場合は(S36のY)、送信済みの暫定フレームを破棄するよう画像処理装置200に要求信号を送信する(S38)。当該要求信号が該当フレームの表示開始前に受信され、データ破棄が成功した場合(S40のY)、サーバ400は描画部434が生成した、ユーザ操作を反映させたフレームを画像処理装置200に送信する(S42)。
この際、サーバ400は、装置内に残っていた暫定フレームの処理結果を全て破棄し、インスタンス記憶部430に格納されたインスタンスも、ユーザ操作を反映させたものに修正する。データ破棄が成功しなければ(S40のN)、サーバ400は画像処理装置200からのその旨の通知を受け、ユーザ操作がなされなかったものとして、以降のフレームを生成し送信する(S44)。S32からS44の処理を、ユーザ操作などにより表示を終了させる必要が生じるまで繰り返し(S46のN)、表示終了の必要が生じたら全処理を終了させる(S46のY)。
なおこれまでの説明では、ユーザ操作の反映に係る処理をフレーム単位で実現する例を示したが、それ以外の処理を部分画像単位でパイプライン処理する場合、ユーザ操作の反映に係る処理も部分画像単位としてよい。すなわちフレームが表す内容を前記ユーザ操作とその時点での表示内容に対応させる処理、具体的にはユーザ操作を反映させた画像の描画開始、暫定フレームとの比較、破棄に係る処理などを全て部分画像単位で実施してよい。
以上述べた本実施の形態によれば、サーバ400が生成した画像のデータを、クライアントである画像処理装置200が受信し表示させる形態のシステムにおいて、サーバ400は、クライアント側でユーザ操作がなされた時点での表示内容を特定し、それらに対応する世界が表現されるように次のフレームを生成する。これにより、サーバ400と画像処理装置200間でのデータのやりとりに起因した応答性の低下や、画像世界のストーリーへの影響を最小限に抑えられる。
また、ユーザ操作を後から反映させることに起因して生じ得る、生成済みのフレームとの内容の連続性、整合性を確認し、それに応じてユーザ操作の反映の是非を決定する。例えば不可逆性のあるシーンが表示されてしまった場合は、ユーザ操作がなかったものとして以降のフレームを生成する。表示を阻止できた場合は、当該データを破棄したうえでユーザ操作を反映させたフレームを表示させる。暫定フレームとの不連続性が小さければ、暫定フレームを表示させつつ、ユーザ操作を反映させた以降のフレームも表示させる。以上の措置により、ユーザはデータの伝送経路に関わらず、同様の応答性で違和感なく画像世界を楽しむことができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
以上のように本発明は、サーバ、画像表示装置、ゲーム装置、携帯端末、パーソナルコンピュータなど各種情報処理装置や、それらのいずれかを含む画像表示システムなどに利用可能である。
1 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像処理装置、 240 画像データ取得部、 242 復号伸張部、 244 画像処理部、 246 表示制御部、 248 入力情報取得部、 250 クライアント情報送信部、
302 平板型ディスプレイ、 304 入力装置、 400 サーバ、 420 画像生成部、 422 圧縮符号化部、 424 パケット化部、 426 通信部、 428 クライアント情報取得部、 430 インスタンス記憶部、 432 操作状況特定部、 434 描画部、 436 破棄処理部。

Claims (18)

  1. クライアント端末に対するユーザ操作に係る情報を取得するクライアント情報取得部と、
    前記ユーザ操作に応じて動画像のフレームを生成する画像生成部と、
    生成されたフレームのデータを前記クライアント端末にストリーミング転送する通信部と、
    を備え、
    前記画像生成部は、前記ユーザ操作が検出されない期間は、ユーザ操作を反映させることなく前記フレームを生成し、前記ユーザ操作が検出されたら、当該ユーザ操作がなされた時点で前記クライアント端末に表示されていた、生成中のフレームより過去の画像世界を表すフレームの表示内容を特定し、当該表示内容に対する前記ユーザ操作を、前記過去の画像世界へ反映させたうえ、その後の変化を表す新たなフレームを生成し直すことを特徴とする画像データ転送装置。
  2. 前記画像生成部は、前記画像世界における過去の状態情報を保持するインスタンス記憶部を備え、当該過去の状態に前記ユーザ操作を反映させることを特徴とする請求項に記載の画像データ転送装置。
  3. 前記クライアント情報取得部は、前記ユーザ操作の内容とともに、当該ユーザ操作がなされた時点で表示されていたフレームを特定するための時間的な情報を前記クライアント端末から取得し、
    前記画像生成部は、前記時間的な情報に基づき、前記ユーザ操作がなされた時点での表示内容を特定することを特徴とする請求項1または2に記載の画像データ転送装置。
  4. 前記通信部は、前記フレームのデータとともに、当該フレームの生成時刻を前記クライアント端末に送信し、
    前記クライアント情報取得部は、前記ユーザ操作がなされた時点で表示されていたフレームの生成時刻を、前記時間的な情報として取得し、
    前記画像生成部は、前記生成時刻に基づき、前記ユーザ操作がなされた時点で表示されていたフレームを特定することを特徴とする請求項に記載の画像データ転送装置。
  5. 前記クライアント情報取得部は、前記ユーザ操作がなされた時刻を前記クライアント端末から取得するとともに、前記フレームのデータが生成されてから前記クライアント端末において表示されるまでの時間ずれを取得し、
    前記画像生成部は、前記ユーザ操作がなされた時刻から前記時間ずれだけ前の時刻の直前に生成したフレームを特定することを特徴とする請求項に記載の画像データ転送装置。
  6. 前記画像生成部は、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかを特定することを特徴とする請求項に記載の画像データ転送装置。
  7. 前記クライアント情報取得部は、前記ユーザ操作がなされた時点で表示されていたフレームの番号を、前記時間的な情報として取得し、
    前記画像生成部は、取得した前記フレームの番号と最新のフレームの番号との差から、いくつ前のフレームの画像世界に対しユーザ操作がなされたかを特定することを特徴とする請求項に記載の画像データ転送装置。
  8. 前記クライアント情報取得部は、前記ユーザ操作がなされた時刻または動画の表示開始から前記ユーザ操作がなされるまでの差分時間をさらに取得し、
    前記画像生成部は、フレーム表示期間のどのタイミングでの画像世界に対しユーザ操作がなされたかを特定することを特徴とする請求項に記載の画像データ転送装置。
  9. 前記クライアント情報取得部は、前記クライアント端末においてなされた、前記フレームに対する視野補正に係る情報を取得し、
    前記画像生成部は前記フレームが表す内容を、前記ユーザ操作がなされた時点での視野補正後の表示内容と前記ユーザ操作に対応させることを特徴とする請求項1からのいずれかに記載の画像データ転送装置。
  10. 前記画像生成部は、前記ユーザ操作がなされたことを検知する前に生成した、ユーザ操作後の暫定フレームの内容と、前記ユーザ操作に対応する新たなフレームの内容とを比較し、前記暫定フレームのデータを破棄するか否かを判定することを特徴とする請求項1からのいずれかに記載の画像データ転送装置。
  11. 前記暫定フレームのデータを破棄する判定がなされたとき、前記通信部は、前記クライアント端末へ、当該データの破棄を要求することを特徴とする請求項10に記載の画像データ転送装置。
  12. 前記クライアント情報取得部は、破棄対象のフレームの表示を阻止できなかった旨の通知を前記クライアント端末から取得し、
    前記画像生成部は、前記通知に応じて、前記ユーザ操作がなされなかったこととして新たなフレームを生成することを特徴とする請求項11に記載の画像データ転送装置。
  13. 前記通信部は、前記データの破棄を要求する信号を、前記フレームのデータより高い優先度で前記クライアント端末へ送信することを特徴とする請求項11または12に記載の画像データ転送装置。
  14. 前記データの破棄を要求する信号および、前記クライアント端末から送信される、破棄対象のフレームの表示を阻止できなかった旨の通知は、前記画像データ転送装置および前記クライアント端末間でのデータの送受に係る機能において並列に進行している他の通知および転送を追い越して伝送されることを特徴とする請求項13に記載の画像データ転送装置。
  15. 前記画像生成部は、前記暫定フレームのデータを破棄しない判定を行ったとき、当該暫定フレームに続いて、前記ユーザ操作に対応する新たなフレームを生成することを特徴とする請求項10から14のいずれかに記載の画像データ転送装置。
  16. 前記画像生成部は、前記フレームが表す内容を前記ユーザ操作とその時点での表示内容に対応させる処理を、1フレームより小さい部分画像の単位で実施することを特徴とする請求項1に記載の画像データ転送装置。
  17. クライアント端末に対するユーザ操作に係る情報を取得するステップと、
    前記ユーザ操作に応じて動画像のフレームを生成するステップと、
    生成されたフレームのデータを前記クライアント端末にストリーミング転送するステップと、
    を含み、
    前記フレームを生成するステップは、前記ユーザ操作が検出されない期間は、ユーザ操作を反映させることなく前記フレームを生成し、前記ユーザ操作が検出されたら、当該ユーザ操作がなされた時点で前記クライアント端末に表示されていた、生成中のフレームより過去の画像世界を表すフレームの表示内容を特定し、当該表示内容に対する前記ユーザ操作を、前記過去の画像世界へ反映させたうえ、その後の変化を表す新たなフレームを生成し直すことを特徴とする、画像データ転送装置による画像生成方法。
  18. クライアント端末に対するユーザ操作に係る情報を取得する機能と、
    前記ユーザ操作に応じて動画像のフレームを生成する機能と、
    生成されたフレームのデータを前記クライアント端末にストリーミング転送する機能と、
    をコンピュータに実現させ、
    前記フレームを生成する機能は、前記ユーザ操作が検出されない期間は、ユーザ操作を反映させることなく前記フレームを生成し、前記ユーザ操作が検出されたら、当該ユーザ操作がなされた時点で前記クライアント端末に表示されていた、生成中のフレームより過去の画像世界を表すフレームの表示内容を特定し、当該表示内容に対する前記ユーザ操作を、前記過去の画像世界へ反映させたうえ、その後の変化を表す新たなフレームを生成し直すことを特徴とするコンピュータプログラム。
JP2022512522A 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム Active JP7441936B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/014495 WO2021199128A1 (ja) 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム

Publications (3)

Publication Number Publication Date
JPWO2021199128A1 JPWO2021199128A1 (ja) 2021-10-07
JPWO2021199128A5 JPWO2021199128A5 (ja) 2022-12-27
JP7441936B2 true JP7441936B2 (ja) 2024-03-01

Family

ID=77927979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022512522A Active JP7441936B2 (ja) 2020-03-30 2020-03-30 画像データ転送装置、画像生成方法およびコンピュータプログラム

Country Status (2)

Country Link
JP (1) JP7441936B2 (ja)
WO (1) WO2021199128A1 (ja)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002125203A (ja) 2000-10-12 2002-04-26 Mitsubishi Electric Corp メディア符号器及びメディア復号器
JP2007160015A (ja) 2005-12-16 2007-06-28 Konami Digital Entertainment:Kk ゲーム装置、ゲーム装置の制御方法、プログラム及びネットワークゲームシステム
JP2012033038A (ja) 2010-07-30 2012-02-16 Fujitsu Ltd 模擬映像生成装置、方法、プログラム
JP2013206188A (ja) 2012-03-28 2013-10-07 Fujitsu Ltd シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP2014120830A (ja) 2012-12-14 2014-06-30 Sony Corp 情報処理装置およびその制御方法
JP5635672B1 (ja) 2013-12-05 2014-12-03 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム
JP2015202125A (ja) 2014-04-10 2015-11-16 株式会社コロプラ ゲームシステム及びこれに用いられるゲームサーバ
JP2015212920A (ja) 2014-04-16 2015-11-26 俊介 山内 先行画像生成プログラム、仮想マシーン制御プログラムおよびコンピュータ可読記憶媒体
WO2017221784A1 (ja) 2016-06-21 2017-12-28 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、画像生成システム、および画像生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324799A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バーチャルリアリティ制御方法および装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002125203A (ja) 2000-10-12 2002-04-26 Mitsubishi Electric Corp メディア符号器及びメディア復号器
JP2007160015A (ja) 2005-12-16 2007-06-28 Konami Digital Entertainment:Kk ゲーム装置、ゲーム装置の制御方法、プログラム及びネットワークゲームシステム
JP2012033038A (ja) 2010-07-30 2012-02-16 Fujitsu Ltd 模擬映像生成装置、方法、プログラム
JP2013206188A (ja) 2012-03-28 2013-10-07 Fujitsu Ltd シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP2014120830A (ja) 2012-12-14 2014-06-30 Sony Corp 情報処理装置およびその制御方法
JP5635672B1 (ja) 2013-12-05 2014-12-03 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム
JP2015202125A (ja) 2014-04-10 2015-11-16 株式会社コロプラ ゲームシステム及びこれに用いられるゲームサーバ
JP2015212920A (ja) 2014-04-16 2015-11-26 俊介 山内 先行画像生成プログラム、仮想マシーン制御プログラムおよびコンピュータ可読記憶媒体
WO2017221784A1 (ja) 2016-06-21 2017-12-28 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、画像生成システム、および画像生成方法
JP2017228044A (ja) 2016-06-21 2017-12-28 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置、画像生成システム、および画像生成方法

Also Published As

Publication number Publication date
JPWO2021199128A1 (ja) 2021-10-07
US20230132071A1 (en) 2023-04-27
WO2021199128A1 (ja) 2021-10-07

Similar Documents

Publication Publication Date Title
US20220353555A1 (en) Image display system, moving image distribution server, image processing apparatus, and moving image distribution method
US20220291742A1 (en) Image processing apparatus, image data transfer apparatus, image processing method, and image data transfer method
US20220368945A1 (en) Image data transfer apparatus and image data transfer method
WO2020108091A1 (zh) 视频处理方法、装置、电子设备及存储介质
JP7496677B2 (ja) 画像データ転送装置、画像表示システム、および画像圧縮方法
US11523185B2 (en) Rendering video stream in sub-area of visible display area
US20220377349A1 (en) Image data transfer apparatus and image compression
JP7362903B2 (ja) 画像データ転送装置、画像表示システム、および画像データ転送方法
WO2021199184A1 (ja) 画像表示システム、画像処理装置、画像表示方法、およびコンピュータプログラム
US20220329772A1 (en) Image processing apparatus, image display system, image data transfer apparatus, and image processing method
JP7441936B2 (ja) 画像データ転送装置、画像生成方法およびコンピュータプログラム
US20230091348A1 (en) Method and device for transmitting image content using edge computing service
JP7393267B2 (ja) 画像データ転送装置、画像表示システム、および画像データ転送方法
US12034786B2 (en) Image processing device, image data transfer device, and image generation method
US20220337851A1 (en) Image data transfer apparatus and image compression method
JP7321961B2 (ja) 画像処理装置および画像処理方法
US20240179327A1 (en) Virtual reality streaming system and method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220930

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240219

R150 Certificate of patent or registration of utility model

Ref document number: 7441936

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150