Game system, information processing system, program, and method of controlling game system

The game system optimizes display quality by encoding images with variable bit rates and considering communication state, addressing variability in image transmission quality across devices.

JP2026009425APending Publication Date: 2026-01-20NINTENDO CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025056742
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-28
Publication Date
2026-01-20

AI Technical Summary

Technical Problem

Existing game systems face challenges in determining and maintaining optimal display quality of transmitted images, which can be affected by communication state and encoding bit rate variability.

Method used

A game system that includes a first game device encoding game images with a variable bit rate and transmitting them to a second device, determining display quality based on communication state and encoding bit rate, and displaying an icon indicating quality.

Benefits of technology

Enhances display quality determination by adapting to communication conditions and encoding rates, ensuring optimal image rendering across multiple devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026009425000001_ABST
    Figure 2026009425000001_ABST
Patent Text Reader

Abstract

When an image is transmitted from one game device to another game device and displayed on the other game device, there is room for improvement in a method of determining the display quality of the transmitted image or a method of displaying the transmitted image.SOLUTION: Wherein the first game apparatus receives operation data of the second game apparatus, executes a game program using its own operation data and the received operation data to generate a game image, encodes the generated game image by a method in which a bit rate changes, and transmits the encoded game image to the second game apparatus, the game system determines display quality of the game image in the second game device on the basis of at least one of a communication state in communication of the game image and a bit rate of encoding, and displays an icon indicating the display quality on a display of the second game device together with the game image.SELECTED DRAWING: Figure 22
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure particularly relates to a game system that executes a program for a multiplayer game, an information processing system, a program, and a method for controlling the game system. [Background technology]

[0002] Conventionally, there is a technique for transmitting an image from one game device to another game device and displaying it on the other game device (see, for example, Patent Document 1). There are factors that cause the quality of the displayed image to change. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 6646991 specification Summary of the Invention [Problem to be solved by the invention]

[0004] There is room for improvement in how the display quality of transmitted images is determined or displayed. [Means for solving the problem]

[0005] (Configuration 1) A game system according to one embodiment is a game system including a first game device and a second game device, in which the first game device receives operation data from the second game device, executes a game program using its own operation data and the received operation data to generate a game image, encodes the generated game image using a method in which the bit rate varies, and transmits the encoded game image to the second game device, and the game system determines the display quality of the game image on the second game device based on at least one of the communication state in the communication of the game image and the encoding bit rate, and displays an icon indicating the display quality on the display of the second game device together with the game image.

[0006] "Based on at least one of the communication state in the communication of game images and the encoding bit rate" includes the following aspects: based on the communication state in the communication of game images but not on the encoding bit rate, based on the encoding bit rate but not on the communication state in the communication of game images, and based on the communication state in the communication of game images and the encoding bit rate. "Encoding bit rate" includes both the set bit rate and the resulting bit rate in encoding. The set bit rate may be a target bit rate or a fixed bit rate. The communication state refers to data loss, communication delays, etc. on the communication path.

[0007] (Configuration 2) In configuration 1, the determination is made based on both the communication state in the communication of the game image and the encoding bit rate, and the icon is a single icon that changes depending on both the communication state in the communication of the game image and the encoding bit rate.

[0008] (Configuration 3) In configuration 1, encoding is performed using a method in which the set value of the bit rate (set bit rate) when encoding varies depending on the communication state, and the determination is made based on the communication state and the set bit rate.

[0009] (Configuration 4) In configuration 3, the encoding is further performed in a manner in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information in the game image, and the determination is made based on the communication state and the resulting bit rate.

[0010] (Configuration 5) In configuration 1, the encoding is a method in which the bit rate resulting from encoding (resulting bit rate) varies depending on the amount of information in the game image, and the determination is made based on the communication state and the resulting bit rate.

[0011] (Configuration 6) In configuration 5, the encoding increases the value of the set bit rate based on a comparison between the set bit rate and the resultant bit rate, and the determination is further made based on the comparison result.

[0012] (Configuration 7) In any of configurations 1 to 5, the determination of the communication state is a determination of both a communication delay of the game image and data loss on the communication path.

[0013] (Configuration 8) In any of configurations 1 to 5, the first game device accepts a selection input between local wireless communication and Internet communication as a communication method for transmitting game video, and if local wireless communication is selected in the selection input, the determination is made based at least on data loss on the communication path, and if Internet communication is selected, the determination is made based at least on communication delay.

[0014] (Configuration 9) In configuration 8, encoding is performed using a method in which the set value of the bit rate (set bit rate) when encoding varies depending on the communication state, and when local wireless communication is selected in the selection input, the determination is made based on the set bit rate and data loss on the communication path of the game image, and when Internet communication is selected in the selection input, the determination is made based on the set bit rate and communication delay of the game image.

[0015] (Configuration 10) In any of configurations 1 to 5, a plurality of second game devices are included, and the determination is made based on at least one of the communication status and encoding bit rate of each second game device, and the display is performed by selecting and displaying an icon for each second game device based on the result of the determination.

[0016] (Configuration 11) In configuration 10, encoding is performed using a method in which the bit rate setting value (set bit rate) varies depending on the communication state, the maximum value of the set bit rate is determined according to the number of multiple second game devices, and the judgment is made by comparing the current set bit rate with the maximum value of the set bit rate for each second game device.

[0017] (Configuration 12) An information processing system according to one embodiment includes a first information processing device that encodes and transmits video, and a second information processing device that receives and displays the video transmitted from the first information processing device. The system determines the display quality of the video on the second information processing device based on the communication state of the video and the encoding bit rate, and displays an icon indicating the display quality together with the video on the display of the second information processing device.

[0018] (Configuration 13) A program according to one embodiment is a program used in a game system that includes a first game device and a second game device, in which the first game device receives operation data from the second game device, executes a game program using its own operation data and the received operation data to generate game images, encodes the generated game images using a method that varies the bit rate, and transmits the encoded game images to the second game device, and causes a computer to execute a process of determining the display quality of the game images on the second game device based on at least one of the communication state in the communication of the game images and the encoding bit rate, and executes a process of displaying an icon indicating the display quality on the display of the second game device together with the game image.

[0019] (Configuration 14) In configuration 13, the determination is made based on both the communication state in the communication of the game image and the encoding bit rate, and the icon is a single icon that changes depending on both the communication state in the communication of the game image and the encoding bit rate.

[0020] (Configuration 15) In configuration 13, encoding is performed using a method in which the set value of the bit rate (set bit rate) when encoding varies depending on the communication state, and the determination is made based on the communication state and the set bit rate.

[0021] (Configuration 16) In configuration 13, the encoding is further performed in a manner in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information in the game image, and the determination is made based on the communication state and the resulting bit rate.

[0022] (Configuration 17) In configuration 13, the encoding is a method in which the bit rate resulting from encoding (resulting bit rate) varies depending on the amount of information in the game image, and the determination is made based on the communication state and the resulting bit rate.

[0023] (Configuration 18) In configuration 17, the encoding increases the value of the set bit rate based on a comparison between the set bit rate and the resulting bit rate, and the decision is further made based on the comparison result.

[0024] (Configuration 19) In any of configurations 13 to 17, the determination of the communication state is a determination of both a communication delay of the game image and data loss on the communication path.

[0025] (Configuration 20) In any of configurations 13 to 17, the first game device accepts a selection input between local wireless communication and Internet communication as a communication method for transmitting game video, and if local wireless communication is selected in the selection input, the determination is made based at least on data loss on the communication path, and if Internet communication is selected, the determination is made based at least on communication delay.

[0026] (Configuration 21) In configuration 20, encoding is performed using a method in which the set value of the bit rate (set bit rate) when encoding varies depending on the communication state, and when local wireless communication is selected in the selection input, the determination is made based on the set bit rate and data loss on the communication path of the game image, and when Internet communication selection input is received, the determination is made based on the set bit rate and communication delay of the game image.

[0027] (Configuration 22) In any of configurations 13 to 17, a plurality of second game devices are included, and the determination is made based on at least one of the communication status and encoding bit rate of each second game device, and the display is performed by selecting and displaying an icon for each second game device based on the result of the determination.

[0028] (Configuration 23) In configuration 22, encoding is performed using a method in which the bit rate setting value (set bit rate) varies depending on the communication state, the maximum value of the set bit rate is determined according to the number of multiple second game devices, and the judgment is made by comparing the current set bit rate with the maximum value of the set bit rate for each second game device.

[0029] (Configuration 24) A control method for a game system including a first game device and a second game device according to a certain embodiment, wherein the first game device includes a step of receiving operation data of the second game device, a step of the first game device executing a game program using its own operation data and the received operation data, a step of generating a game image, a step of encoding the generated game image in a manner in which the bit rate varies, and a step of transmitting the encoded game image to the second game device, and the game system includes a step of determining the display quality of the game image on the second game device based on at least one of the communication state in the communication of the game image and the encoding bit rate, and a step of displaying an icon indicating the display quality on the display of the second game device together with the game image.

[0030] (Configuration 25) In configuration 24, encoding is performed using a method in which the set value of the bit rate (set bit rate) when encoding varies depending on the communication state, and the determination step is performed based on the communication state and the set bit rate.

[0031] (Configuration 26) In configuration 25, the encoding is further performed in a manner in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information in the game image, and the determining step is performed based on the communication state and the resulting bit rate.

[0032] (Configuration 27) In configuration 24, the encoding is a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information in the game image, and the determining step is performed based on the communication state and the resulting bit rate.

[0033] (Configuration 28) In configuration 27, the encoding increases the value of the set bit rate based on a comparison between the set bit rate and the resultant bit rate, and the determining step is further performed based on the comparison result.

[0034] (Configuration 29) In any of configurations 24 to 28, the system includes a plurality of second game devices, the determining step is performed based on at least one of the communication status and encoding bit rate of each second game device, and the displaying step is performed by selecting and displaying an icon for each second game device based on the result of the determination. [Brief explanation of the drawings]

[0035] [Figure 1] 1 is a schematic diagram showing an example of the configuration of an overall system 1 including an information processing system according to an embodiment. [Figure 2] FIG. 2 is a schematic diagram showing another example of the configuration of the overall system 2 including the information processing system according to the embodiment. [Figure 3] FIG. 10 is a schematic diagram of a flow of game processing in an information processing system according to an embodiment. [Figure 4] FIG. 1 is a schematic diagram showing an example of a hardware configuration of a game device 100 according to an embodiment. [Figure 5] FIG. 10 is a diagram illustrating an example of a program stored in flash memory 106 of game device (host) 100-1 according to an embodiment. [Figure 6]FIG. 2 is a diagram illustrating data stored in DRAM 108 of the game device according to the embodiment. [Figure 7] FIG. 10 is a flowchart illustrating game processing in the game device (host) according to the embodiment. [Figure 8] FIG. 10 is a diagram illustrating a menu screen according to the embodiment. [Figure 9] FIG. 10 is a subroutine flow diagram of a member recruitment process according to an embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of a connection confirmation screen according to the embodiment. [Figure 11] FIG. 10 is a flow diagram illustrating a mode saving process in the game sharing function according to the embodiment. [Figure 12] FIG. 10 is a flow diagram illustrating a streaming start process according to an embodiment. [Figure 13] FIG. 10 is a subroutine flow diagram of a streaming process according to an embodiment. [Figure 14] FIG. 10 is a subroutine flow diagram of a target bit rate setting process according to an embodiment. [Figure 15] FIG. 10 is another subroutine flow diagram of the target bit rate setting process according to the embodiment. [Figure 16] 10A and 10B are diagrams illustrating changes in the VBV buffer size according to an embodiment. [Figure 17] FIG. 10 is a subroutine flow diagram of a process for transmitting antenna level related information to a guest G(i) according to an embodiment. [Figure 18] FIG. 10 is another subroutine flow diagram of the process of transmitting antenna level related information to a guest G(i) according to an embodiment. [Figure 19] FIG. 10 is a flowchart illustrating game processing by a game device (guest) according to an embodiment. [Figure 20] FIG. 10 is a subroutine flow diagram of a connection request process of a game device (guest) according to the embodiment. [Figure 21] FIG. 10 is a diagram illustrating an example of a connection request confirmation screen according to an embodiment. [Figure 22]FIG. 10 is a subroutine flow diagram of the process of calculating and displaying the antenna level according to the embodiment. [Figure 23] FIG. 10 is another subroutine flow diagram of the antenna level calculation and display process according to the embodiment. [Figure 24] FIG. 2 is a diagram illustrating a screen of a display 104 of the game device according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0036] The embodiments will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are designated by the same reference numerals and description thereof will not be repeated.

[0037] [A. System configuration example] First, an example of the configuration of a game system, which is an example of an information processing system according to this embodiment, will be described. Furthermore, a game system is also an example of an information processing system, and the information processing system may be a system in which a game is not executed. For example, when referring to a "processor of an information processing system," the term "processor" may refer to one or more processors within a single device, such as a main device, or may refer to some or all of one or more processors provided in each of multiple devices.

[0038] 1 is a schematic diagram showing an example of the configuration of an overall system 1 including an information processing system according to this embodiment. As an example of the information processing system, a game device 100 will be described. However, the information processing system may also be, for example, a personal computer, a smartphone, a tablet, a wearable device, a smart TV, a server, or the like.

[0039] The term "information processing system" encompasses both a configuration in which at least necessary components are packaged in a single housing, and a configuration in which necessary components are packaged separately in multiple housings.

[0040] Referring to FIG. 1, an overall system 1 includes one or more game devices 100. FIG. 1 shows an overall system 1 including four game devices 100 as an example. In the following description, when it is necessary to identify each of the multiple game devices 100, they are distinguished by adding a subnumber (for example, game devices 100-1, 100-2, 100-3, and 100-4 shown in FIG. 1). A case is shown in which game device (host) 100-1 is connected to other game devices (guests) 100-2, 100-3, and 100-4 via local wireless communication as an example of a network. Specific examples of local wireless communication that can be used include communication using the IEEE 802.11 standard, communication based on an improved IEEE 802.11 standard, Bluetooth (registered trademark), and ZigBee (registered trademark).

[0041] In the overall system 1, the game device 100 can participate in one or more player groups (hereinafter also abbreviated as "groups"). In order for the game device 100 to participate in any of the groups, the account of the user who uses the game device 100 may be used, or identification information of the game device 100 may be used.

[0042] A given game device 100 may be able to belong to only one group at a time, or may be able to belong to multiple groups at the same time. As an example, the process for belonging to one group will be described below. An upper limit may be set for the number of game devices 100 that can belong to each group.

[0043] The game device (host) 100-1 stores a game program 240, and by executing the game program 240, it is possible to communicate with one or more other game devices 100 belonging to a group connected via local wireless communication and execute game processing.

[0044] FIG. 2 is a schematic diagram showing another example of the configuration of an overall system 2 including an information processing system according to this embodiment. Referring to FIG. 2, the overall system 2 shows an example of a configuration in which four game devices 100-1 to 100-4 are connected by online connection via an internet communication network 10, which is another example of a network. The game devices 100 exchange data with each other via the network 10. In the overall system 2, the communication method by which each game device 100 connects to the network 10 may be wired or wireless. The overall system 2 may further include a management server 300. The game devices 100 may communicate with each other via the management server 300, or may communicate directly with each other (peer to peer) without going through the management server 300.

[0045] For example, if the game program 240 is playable by multiple people, the game device (host) 100-1 communicates with the other game devices (guests) 100-2, 100-3, and 100-4. The game device (host) 100-1 executes the game program 240 playable by multiple people based on operational inputs from the player of the game device itself and the other game devices.

[0046] As used herein, "multiplayer play" means that multiple players (users) play the same game simultaneously. Alternatively, "multiplayer play" means that multiple players (users) participate in the same player group. Furthermore, "multiplayer play" means that each game device 100 executes the game program 240 based not only on information about the player's operation on that device, but also on information from the other game devices 100.

[0047] In this embodiment, game device (host) 100-1 executes a game program based on its own operation data and operation data received from game devices (guests) 100-2, 100-3, and 100-4 to generate game images, and transmits the generated game images to game devices (guests) 100-2, 100-3, and 100-4. Game devices (guests) 100-2, 100-3, and 100-4 display the received game images on their displays.

[0048] It should be noted that all game devices 100 may store the game program 240 in advance in any manner.

[0049] The management server 300 is responsible for the necessary management of one or more game devices 100. For example, the management server 300 may determine whether or not a game device 100 or a user is permitted to participate. The overall system 2 may include multiple management servers 300. The management server 300 may be a virtual server. Furthermore, the management server 300 may be made up of multiple server devices.

[0050] Participation in a group may be performed on a user-by-user or account-by-account basis. One or more accounts may be registered to one game device 100. In this case, the user of the game device 100 may select an account each time. Alternatively, the user of the game device 100 may operate the game device 100 to access the management server 300 or the like and perform a process such as logging in, whereby an account may be dynamically associated with the game device 100.

[0051] [B. Flow of Game Processing of Game Device 100] FIG. 3 is a schematic diagram of the flow of game processing in an information processing system according to this embodiment. Referring to FIG. 3(A), the flow of game processing in the common image mode of the information processing system is shown as an example. As described above, in this embodiment, game device (host) 100-1 generates a game image. The common image mode is a mode in which the same game image is generated by the game device (host) and the game device (guest). Game device (host) 100-1 has guest member information for the group. As an example, it has information corresponding to guests G(1) to G(3) (collectively referred to as guest G(i), where i is 1 to 3, for example). The guest member information includes user IDs and MAC addresses (or IP addresses) corresponding to guests G(1) to G(3), respectively. Game device (host) 100-1 identifies game devices 100-2, 100-3, and 100-4 corresponding to guests G(1) to G(3), respectively, according to the guest member information, and executes data communication. In this embodiment, game device (host) 100-1 receives operation data from game devices 100-2, 100-3, and 100-4, which respectively correspond to guests G(1) to G(3). Game device (host) 100-1 executes game processing using the operation data of game device (host) 100-1 and the operation data of game device (guest G(i)). Game device (host) 100-1 generates game images (game images common to the game device (host) and game device (guest)) through the game processing and transmits the game images to game devices 100-2, 100-3, and 100-4, which respectively correspond to guests G(1) to G(3).

[0052] Referring to FIG. 3(B), an example of the flow of game processing in individual image mode of the information processing system is shown. Individual image mode is a mode in which game device (host) 100-1 generates different game images for the game device (host) and game devices (guests). In individual image mode, the game image generation process differs from the game processing in common image mode. For example, a game image for the host of game device (host) 100-1, a game image for guest G(1) of game device 100-2, a game image for guest G(2) of game device 100-3, and a game image for guest G(3) of game device 100-4 are each generated independently. Game device (host) 100-1 transmits game images for guests G(1) to G(3) to game devices 100-2, 100-3, and 100-4, which correspond to guests G(1) to G(3), respectively.

[0053] [C. Example of Hardware Configuration of Game Device 100] Next, an example of the hardware configuration of game device 100 according to this embodiment will be described.

[0054] 4 is a schematic diagram showing an example of the hardware configuration of a game device 100 according to this embodiment. Game device 100 is a type of computer. Referring to FIG. 4, game device 100 includes, for example, an operation unit 102, a display 104, a flash memory 106, a DRAM 108, a frame buffer 110, a communication module 112, and an SoC (System on Chip) 120.

[0055] The SoC 120 is a processor and is responsible for processing executed by the game device 100. The SoC 120 includes, for example, at least one of a central processing unit (CPU), a graphics processing unit (GPU), a buffer, etc. For example, the SoC 120 has a VBV buffer used during encoding processing (the VBV buffer may be allocated in a main memory outside the SoC 120, etc.). A VBV buffer is provided for each guest G(i). The CPU, GPU, buffer, etc. may not be implemented on a single board, but may be implemented independently of each other. In addition to the SoC 120, the SoC 120 may include hardwired circuits such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA), and some processing may be performed by these circuits. The SoC 120 may include multiple CPUs and GPUs, or may have multiple cores.

[0056] Flash memory 106 is a non-volatile storage medium, and is primarily used to store various types of data saved in game device 100. Flash memory 106 stores a system program 200 and a game program 240, which will be described later. System program 200 includes computer-readable instructions for basic processing such as controlling the hardware of game device 100 and providing a program execution environment, and also includes system application programs. Game program 240 includes computer-readable instructions for executing a game.

[0057] DRAM (Dynamic Random Access Memory) 108 is a volatile storage medium, and is a memory used mainly for temporarily storing various data used in information processing. "Memory" may include at least flash memory and DRAM, and may also include other storage media.

[0058] The frame buffer 110 temporarily stores image data to be displayed on the display 104. The SoC 120 encodes the image data stored in the frame buffer 110, for example, on a frame-by-frame basis using a hardware or software encoder, and transmits the encoded image data to each game device (guest) 100 via the communication module 112. For example, the SoC 120 sets a bit rate for encoding based on the number of game devices (guests), encodes the generated game images based on the set bit rate, and transmits the encoded game images to the game devices (guests), and the game devices (guests) receive the transmitted game images and display them on their displays.

[0059] The operation unit 102 accepts user operations. The operation unit 102 includes, for example, a keyboard, a mouse, a game controller, buttons, a cross key, a joystick, a touch panel, a motion sensor, etc. The operation unit 102 may be an interface with a device that accepts user operations (for example, a game controller). The device that accepts user operations may be located outside the game device 100. The operation unit 102 may be provided in the main body of the game device 100, or may be a controller that is detachably provided in the main body of the game device 100, or may be a controller separate from the game device 100.

[0060] The communication module 112 exchanges data with other game devices 100, etc. The communication module 112 may be connected to the network 10 by wire or wirelessly. For example, a USB (Universal Serial Bus) connection or a parallel connection may be used as the wired connection. For example, Bluetooth (registered trademark), ZigBee (registered trademark), wireless LAN (IEEE 802.11 standard), etc. may be used as the wireless connection.

[0061] The display 104 is, for example, an LCD (Liquid Crystal Display), an organic EL display, a television display, a monitor, or the like.

[0062] For example, game device (host) 100-1 receives operation data from operation unit 102 of other game devices (guests) 100-2, 100-3, and 100-4, executes game program 240 using the operation data of its own operation unit 102 and the received operation data to generate game images, encodes the generated game images using a format with a variable bit rate, and transmits the encoded game images to the other game devices (guests) 100-2, 100-3, and 100-4. The information processing system determines the display quality of the game images on game devices (guests) 100-2, 100-3, and 100-4 based on at least one of the communication status in the communication of the game images and the encoding bit rate, and displays an icon indicating the display quality together with the game image on the displays of game devices (guests) 100-2, 100-3, and 100-4.

[0063] [D. Program Structure] 5 is a diagram illustrating an example of programs stored in flash memory 106 of game device (host) 100-1 according to this embodiment. Referring to FIG. 5, flash memory 106 stores a system program 200 and a game program 240.

[0064] The system program 200 includes a game sharing function program 210 that implements a game sharing function in which one game device 100 (host device) executes a game program 240 and plays a game in accordance with the game program 240 with other game devices 100 (guest devices) (hereinafter referred to as shared play). The game sharing function program 210 includes a host program 220 that implements the functions of the game device 100 that serves as the host when implementing the game sharing function, and a guest program 230 that implements the functions of the game device 100 that serves as the guest when implementing the game sharing function. The host program 220 includes a streaming function program 222 that executes processing to stream game images from the game device 100 that serves as the host to the game device 100 that serves as the guest, a variable bit rate setting function program 224 that variably sets the bit rate when executing the streaming process, and an other function program 226 that implements other functions.

[0065] The guest program 230 executes data exchange between the guest game device 100 and the host game device 100 to realize a game sharing function of game processing based on the game program 240, and includes a function of receiving streaming game images transmitted from the host game device 100 and displaying them on a display. For example, each of the game devices (guests G(i)) 100-2, 100-3, and 100-4 executes the guest program stored in the flash memory 106 to enable game processing in accordance with the game sharing function with the game device (host) 100-1. The guest program 230 may be pre-stored in the flash memory 106 of each of the game devices (guests G(i)) 100-2, 100-3, and 100-4, or may be distributed from the host game device 100 and stored in the flash memory 106 of the guest game device 100, for example.

[0066] In this embodiment, a configuration in which one game program 240 is provided is described, but this is not limiting and a configuration in which multiple game programs with game sharing functions are provided may also be used. The game program 240 includes designation data 242 for common image mode or individual image mode. When the game program 240 is executed, game processing based on either mode is executed by referencing the designation data 242. Note that in this embodiment, a case in which the common image mode or individual image mode is designated in advance according to the game program is described, but the common image mode or individual image mode may also be selected by user selection. In this embodiment, the flash memories 106 of the game devices (guests) 100-2, 100-3, and 100-4 also store a program similar to the system program 200 stored in the flash memory 106 of the game device (host) 100-1.

[0067] 6A and 6B are diagrams illustrating data stored in DRAM 108 of the game device according to this embodiment. Referring to Fig. 6A, data in DRAM 108 on the side of game device (host) 100-1 is shown as an example. The DRAM 108 on the game device (host) 101 side includes guest member information 302, number of guests 304, time data 306, operation data (host) 308, operation data (each guest G(i)) 310, game image (host) (or common image) 312, game image (each guest G(i)) 314, target image bit rate (each guest G(i)) 316, observed image bit rate (each guest G(i)) 318, image VBV buffer size (each guest G(i)) 319, image lost data (each guest G(i)) 320, delay amount data (each guest G(i)) 322, antenna level data (host) 324, and antenna level data (each guest G(i)) 326.

[0068] The guest member information 302 is information about users who participate in the group as guests in the game processing. As an example, the guest member information 302 includes a user ID and a MAC address associated with the user ID. The information is stored according to the number of guests participating in the group. For example, the information may be collected and stored in the member recruitment processing described below.

[0069] The number of guests 304 is the number of users who participate in the group as guests in the game process. The time data 306 is data relating to time, and may be used when synchronizing with other game devices (guests) or calculating the amount of delay.

[0070] Operation data (host) 308 is data according to the operation of operation unit 102 on the side of game device (host) 100-1, which is the player's own device.

[0071] The operation data (guest G(i)) 310 is data received from the other game devices (guests) 100-2, 100-3, and 100-4 in accordance with the operations of the operation units 102 of the other game devices (guests) 100-2, 100-3, and 100-4.

[0072] The game image (host) 312 is image data for the host that is generated based on the game processing.

[0073] The game image (guest G(i)) 314 is image data for the guest that is generated based on the game processing. An image ID is associated with the image data before transmission. The image ID may be a serial ID of the image that is incremented when the image is transmitted, or a timestamp may be used as the ID. Note that in game processing in the common image mode, the image data for the host and the image data for the guest are common, and therefore may not be generated separately. Also, the game image temporarily stored in the DRAM 108 may be transferred to the frame buffer 110. In this embodiment, the game image stored in the frame buffer 110 is encoded using a method that changes the bit rate and transmitted to another game device (guest G(i)) 100. In game processing in the individual image mode, the game image (host) 312 for the host and the game image 314 for the guest are different, but in game processing in the common image mode, the game image (host) 312 for the host and the game image 314 for the guest are common.

[0074] The target bit rate (guest G(i)) 316 of the image is the amount of data per second of encoded image data, and encoding is performed so as to achieve the target bit rate (aiming for this). This data includes the current value, maximum value, and minimum value of the target bit rate. In this embodiment, the current value of the target bit rate is variably set based on the variable bit rate setting function program 224, which variably sets the target bit rate. This target bit rate is sometimes referred to as the set bit rate. Note that although the case where the target bit rate is variably set will be described, the target bit rate may also be set to a fixed value.

[0075] The observed bit rate (guest G(i)) 318 of the image is data that measures the amount of data per second (bit rate) of image data obtained as a result of encoding. For example, the observed bit rate of the image can be calculated by measuring the amount of data output along the time axis and dividing it by the measurement time. The observed bit rate (guest G(i)) 318 may be used to set a target bit rate.

[0076] The image VBV (Video Buffer Verifier) ​​buffer size (guest G(i)) 319 is data that specifies the VBV buffer size when encoding image data. The SoC 120 allocates a VBV buffer according to the VBV buffer size and encodes the image data for each guest G(i) stored in the frame buffer 110. The encoded image data is transmitted to each game device (guest G(i)) via the communication module 112. For example, it is possible to observe the amount of remaining information (fullness) according to the VBV buffer size, control quantization, and change the bit rate. The encoding process has multiple encoding modes, and an appropriate encoding mode is selected through optimization processing tailored to the VBV buffer size. In this embodiment, a VBV buffer is provided for each guest G(i), and the bit rate is changed for each guest G(i).

[0077] Image lost data (guest G(i)) 320 is data indicating that an image has been lost in the game device (guest) (a game image sent by the host does not reach the guest). For example, it may include the image IDs associated with the game images before and after the lost image, or it may include the image ID of the lost image calculated from the image IDs associated with the game images before and after the lost image. Based on this, the host identifies that a loss has occurred and the lost image (the lost image is resent). Image lost data (guest G(i)) 320 may be used to set a target bit rate. It may also be used during the antenna level data generation process.

[0078] The delay amount data (guest G(i)) 322 is the delay time of data transmitted from a game device (host) to another game device (guest). The delay amount data (guest G(i)) 322 may be used to set a target bit rate.

[0079] Antenna level data (host) 324 is data used when displaying an icon indicating the display quality on the game device (guest) of image data transmitted for display on the display 104 of the game device (host). For example, in the case of antenna level data L1, an icon with one antenna is displayed. In the case of antenna level data L2, an icon with two antennas is displayed. In the case of antenna level data L3, an icon with three antennas is displayed. In this embodiment, an icon with three antennas is described, but the number is not limited to this. It is also possible to provide more antenna levels and display an icon with a correspondingly increased number of antennas.

[0080] The antenna level data (guest G(i)) 326 is data used to determine the antenna level data (host) 324. For example, the antenna level data (guest G(i)) 326 is data related to the image quality of image data transmitted from a game device (host) to another game device (guest) in the other game device (guest).

[0081] 6(B), data stored in the DRAM 108 of the game devices (guests G(i)) 100-2, 100-3, and 100-4 is shown as an example. The guest DRAM 108 includes host information 332, the number of guests 334, time data 336, operation data (guest) 338, a game image 340 received from the host, an image ID 341 of the most recent image, image loss data 342, delay amount data 343, and antenna level data 344.

[0082] The host information 332 is information about a user who will participate in a group as a host in the game processing. For example, the host information 332 includes a user ID and a MAC address associated with the user ID. The information is stored according to the host who will participate in the group. For example, the information may be collected and stored in the member recruitment processing described below.

[0083] The number of guests 334 is the number of users who participate in the group as guests in the game process. The time data 336 is data relating to time, and may be used when synchronizing with the game device (host) or calculating the amount of delay.

[0084] The operation data (guest) 338 is data according to the operation of the operation unit 102 on the side of the game device (guest G(i)) which is the player's own device.

[0085] The game image 340 received from the host is the game image 314 for guest G(i) that was generated by the host based on the game processing described in Figure 6(A) and sent from the host to the guest. Note that in the game processing of the common image mode, the game image 340 is a common image and is the same as the game image (host) 312. The image data is associated with and added with the image ID and time information.

[0086] The most recent image image ID 341 is data relating to the image ID associated with the most recent game image received from the host.

[0087] The image lost data 342 indicates that an image has been lost in a game device (guest). For example, it includes data related to the image ID corresponding to the lost image. The image lost data 342 can be identified by comparing the image ID 341 of the most recent image with the image ID associated with the game image currently received from the host. For example, if the image ID 341 of the most recent image is confirmed and the image IDs arrive in order, no image loss has occurred. On the other hand, if the image ID 341 of the most recent image is confirmed and there is a gap in the image ID, it can be determined that an image loss has occurred corresponding to the missing image ID. The game devices (guests G(i)) 100-2, 100-3, and 100-4 transmit the image lost data 342 corresponding to the missing image ID to the game device (host) 100-1. The game device (host) 100-1 stores the image lost data 342 corresponding to each guest G(i) in the DRAM 108 as image lost data 320.

[0088] The delay amount data 343 is data relating to the amount of delay based on the time information added to the received image data and the current time data 336. For example, the delay amount may be calculated from the difference between the time information added to the image data and the current time data 336.

[0089] The antenna level data 344 is data used when displaying an icon indicating the display quality of received image data to be displayed on the display 104 of the game device (guest). For example, in the case of antenna level data L1, an icon with one antenna is displayed. In the case of antenna level data L2, an icon with two antennas is displayed. In the case of antenna level data L3, an icon with three antennas is displayed. In this embodiment, an icon with three antennas is described, but the number is not limited to this. By providing more antenna levels, an icon with a correspondingly increased number of antennas may be displayed. The antenna level data 344 may be, for example, data calculated based on the antenna level calculation and display process described below.

[0090] [E. Processing Flow] Below, some processes of the embodiment will be described. Note that the processes may include other processes or may not include some processes. Also, the order of each process is an example, and for example, each process may be executed simultaneously or in the reverse order. Also, each process is described separately for convenience, but may be an integrated process.

[0091] 7 is a flow diagram illustrating game processing of a game device (host) according to this embodiment. The processing procedure shown in FIG. 7 is realized by SoC 120 of game device (host) 100-1 reading and executing game program 240 stored in flash memory 106.

[0092] 7, SoC 120 determines whether or not an instruction to activate the game sharing function has been given on the menu screen of the game program (step S2). In step S2, a common image mode or an individual image mode is specified in the system program.

[0093] 8A and 8B are diagrams illustrating a menu screen according to this embodiment. Referring to FIG. 8A, a menu screen 400 is shown displayed on the display 104. The menu screen 400 includes a "single player" icon 402 and a "multiple player shared play" icon 404, both of which are provided to be able to accept a user's selection input. The user can select either icon by operating the operation unit 102. For example, the SoC 120 may determine that a user has instructed to activate the game sharing function when the user selects the "multiple player shared play" icon 404.

[0094] 8(B) shows a case where another menu screen 410 is displayed on display 104. Menu screen 410 shows a case where a "local wireless communication" icon 412 and an "Internet communication" icon 414 are provided so as to be able to receive a user's selection input. The user can select either icon by operating operation unit 102. For example, when the user selects "local wireless communication" icon 412, SoC 120 may determine that an instruction to activate the game sharing function via local wireless communication has been issued. For example, game device (host) 100-1 operates to construct an overall system connected to other game devices (guests) 100-2, etc., via local wireless communication, as described in FIG. 1.

[0095] SoC 120 may determine that a user has instructed activation of the game sharing function via internet communication when the user selects “Internet communication” icon 414. For example, game device (host) 100-1 operates to construct an overall system in which multiple game devices 100 are connected together via online connection via network 10 using internet communication as described in FIG.

[0096] 7, if it is determined in step S2 that activation of the game sharing function has been instructed (YES in step S2), SoC 120 accepts a selection of local wireless communication or Internet communication (step S4). For example, as described in FIG. 8(B), a communication selection input from the user is accepted. In step S4, the selected communication method is notified to the system program.

[0097] On the other hand, if it is determined in step S2 that activation of the game sharing function is not instructed (NO in step S2), the SoC 120 executes other processing (step S3). Then, the processing ends (END). For example, in FIG. 8, if the "Play Alone" icon 402 is selected, the single-player game processing based on the game program 240 may be executed without activating the game sharing function.

[0098] Next, SoC 120 executes a member recruitment process (step S6). For example, the member recruitment process may continue to recruit group members until the number of guests reaches the upper limit value supported by the game program, or may be suspended even if the number of guests does not reach the upper limit value.

[0099] 9 is a subroutine flow diagram of the member recruitment process according to this embodiment. While there are various methods for the member recruitment process, the case of local wireless communication will be described as an example with reference to FIG. 9. SoC 120 of game device (host) 100-1 executes advertising processing (step S30). Game device (host) 100-1 waits for connections from other game devices (guest G) 100-2 and the like by guests through the advertising processing.

[0100] Next, the SoC 120 determines whether or not a guest is connected (step S32). In step S32, if SoC 120 determines that a guest is connected (YES in step S32), it displays on display 104 a connection confirmation screen that allows the user to select whether or not to allow the connection in accordance with the guest information.

[0101] FIG. 10 is a diagram illustrating an example of a connection confirmation screen according to the present embodiment. Referring to FIG. 10, the connection confirmation screen 430 is provided with, for example, a comment such as "P wishes to participate," an "OK" button 432 for permitting the connection, and a "Reject" button 434 for rejecting the connection. For example, when the host user selects the "OK" button 432 on the connection confirmation screen 430, the connection of the game device 100 of the guest (e.g., P) who has requested the connection is permitted. On the other hand, when the user selects the "Reject" button 434 on the connection confirmation screen 430, the connection of the game device 100 of the guest (e.g., P) who has requested the connection is rejected.

[0102] Referring again to FIG. 9, SoC 120 determines whether the user who is the host has selected "OK" on connection confirmation screen 430 (step S36).

[0103] If SoC 120 determines in step S36 that the host user has selected "OK" on connection confirmation screen 430 (YES in step S36), it transmits a connection permission to game device 100 of the guest (e.g., Mr. P) who has requested connection (step S38). For example, the connection permission includes host information. The host information is data including the user ID and MAC address data of the host game device. Game device (guest) 100 that has received the connection permission stores host information 332 in DRAM 108 based on the data.

[0104] Next, SoC 120 generates and stores guest member information (step S40). For example, SoC 120 generates and registers necessary information as guest member information 302 in DRAM (host) 108. As an example, SoC 120 saves the user ID of the guest who has requested connection and the MAC address associated with the user ID. The user ID and MAC address are data acquired from game device 100 of the guest who has requested connection during the advertising process.

[0105] Next, the SoC 120 determines whether the guest number 304 is the maximum (upper limit) number of guests that the game program can accommodate (step S42).

[0106] In step S42, if SoC 120 determines that guest number 304 is not the maximum (upper limit) number of guests that the game program can accommodate (NO in step S42), it returns to step S32 and repeats the above process.

[0107] On the other hand, if SoC 120 determines in step S42 that guest number 304 is the maximum (upper limit) number of guests that the game program can support (YES in step S42), it determines whether a game start operation has been performed (step S43). For example, if the host user has input an operation to start the game, it determines that a game start operation has been performed.

[0108] In step S43, if the game start operation is not performed (NO in step S43), SoC 120 maintains the current state, or may return to the initial menu screen if the game start operation is canceled.

[0109] On the other hand, if SoC 120 determines in step S43 that a game start operation has been performed (YES in step S43), it determines and stores the number of guests (step S44). For example, SoC 120 determines and stores the number of guests based on guest member information 302. If there is one data pair of a user ID and a MAC address, the number of guests is 1; if there are two data pairs of a user ID and a MAC address, the number of guests is 2; and if there are three data pairs of a user ID and a MAC address, the number of guests is 3. SoC 120 saves the counted number of guests as guest number 304.

[0110] Next, SoC 120 executes a process of transmitting a game start command to each guest, along with time data and the number of guests for synchronizing the time data with each guest (step S46). For example, SoC 120 of game device (host) 100-1 transmits a game start command to game devices (guests) 100-2, 100-3, and 100-4, along with the number of guests 304 and time data 306. Game devices (guests) 100-2, 100-3, and 100-4 receive the time data 306 and synchronize their times. This eliminates time variations and enables highly accurate calculation of delay amounts, etc. Game devices (guests) 100-2, 100-3, and 100-4 also store the number of guests 304 as the number of guests 334.

[0111] Then, the process ends (returns). On the other hand, in step S36, if SoC 120 determines that the host user did not select "OK" on connection confirmation screen 430, that is, that the host user selected "Reject" (NO in step S36), it terminates the connection to game device 100 of the guest who requested connection (e.g., Mr. P), and does not transmit a game start instruction, etc. In this case, the process returns to step S32.

[0112] If it is determined in step S32 that no guest is connected (NO in step S32), SoC 120 determines whether an instruction to stop recruitment has been given (step S48).

[0113] If SoC 120 determines in step S48 that an instruction to suspend recruitment has been issued (YES in step S48), it proceeds to step S43 and determines whether or not a game start operation has been issued. For example, it may determine that an instruction to suspend recruitment has been issued when a predetermined period of time has elapsed since the member recruitment process began. Alternatively, it may determine that an instruction to suspend recruitment has been issued in accordance with an operational instruction from the user.

[0114] On the other hand, in step S48, if SoC 120 determines that there is no instruction to suspend recruitment (NO in step S48), it returns to step S32 and repeats the above processing.

[0115] While the member recruitment process for local wireless communication has been described above, the member recruitment process may be performed using the management server 300 in the case of Internet communication, for example. For example, the host may request the management server 300 to create a matching room, the management server 300 may create the matching room and recruit guests. When the matching process is complete, the management server 300 may transmit guest member information to the game device (host), and the game device (host) may transmit necessary data to each game device (guest). For example, the game device (host) may transmit host information, the number of guests, and time data to each game device (guest) along with a connection and game start instruction. Note that the management server 300 may transmit host information, the number of guests, and time data to the game device (guest G(i)) along with a connection and game start instruction. Note that in the case of Internet communication, an IP address may be used instead of the MAC address included in the guest member information and host information.

[0116] 7 again, SoC 120 specifies the number of guests 304 and executes a call for streaming start processing (step S8). For example, SoC 120 starts streaming processing by calling streaming function program 222 included in game sharing function program 210 in flash memory 106. The streaming processing in accordance with streaming function program 222 will be described later.

[0117] Next, SoC 120 executes operation data acquisition processing (step S10). SoC 120 refers to guest member information 302, receives operation data for each guest transmitted from the corresponding game device (guest) via local wireless communication or internet communication, and stores the data as operation data 310 in DRAM 108 for each guest (G(i)).

[0118] Next, the SoC 120 calculates and displays the antenna level of the guest G from the loss information of the operation data of the guest G (step S12). The SoC 120 calculates the antenna level of the guest G from the operation data (loss information) of the guest that could not be acquired in the operation data acquisition process of step S10. For example, the SoC 120 calculates the antenna level based on the loss information (for example, the number of losses) of the operation data (guest G(i)) per unit time. The SoC 120 may determine the antenna level as level L1 if the number of losses of the operation data per unit time is m or more. The SoC 120 may determine the level as level L2 if the loss information of the operation data per unit time is n (m>n) or more. The SoC 120 may determine the level as level L3 if the loss information of the operation data per unit time is less than n. The SoC 120 saves the determined level as antenna level data (guest G(i)) 326.

[0119] The SoC 120 stores the minimum value of the antenna level for each guest G(i) included in the antenna level data (guest G(i)) 326 as the antenna level data (host) 324. For example, if the antenna level data (guest G(1)) 326 is level L3, the antenna level data (guest G(2)) 326 is level L2, and the antenna level data (guest G(3)) 326 is level L1, the antenna level data (host) 324 may be set to level L1. The SoC 120 displays an icon indicating the display quality of the image data transmitted to the display 104 of the game device (host) 100 in accordance with the antenna level data (host) 324. For example, in the case of antenna level data L1, an icon with one antenna is displayed. In the case of antenna level data L2, an icon with two antennas is displayed. In the case of antenna level data L3, an icon with three antennas is displayed.

[0120] Next, the SoC 120 executes game processing based on the game program 240 using the operation data (host) 308 and the operation data (guest G(i)) 310 (step S14).

[0121] Next, SoC120 executes a process for generating a game image (host) and each game image (guest G(i)) (step S15). SoC120 saves the generated game image of the host side as game image (host) 312. SoC120 saves the generated game image of each guest (G(i)) side as game image (guest G(i)) 314. The game image is saved in association with an image ID and time information issued when the image was generated. In this embodiment, the generation process for game processing in individual image mode is described; however, in game processing in common image mode, a game image common to the host and guests may be saved as game image 312.

[0122] Next, the SoC 120 determines whether another guest has joined midway through the game (step S16).

[0123] In step S16, if another guest joins mid-game (YES in step S16), SoC 120 requests streaming processing according to streaming function program 222 to change the target bit rate and VBV buffer size based on the new number of guests (step S17). For example, in the case of a game program that accepts mid-game guest participation during game processing, if a guest joins mid-game, SoC 120 updates guest member information 302 and guest number 304 in DRAM 108 of game device (host) 100-1 according to the method described in Fig. 9. Also, SoC 120 updates guest number 334 in DRAM 108 of game device (guest) 100.

[0124] On the other hand, if it is determined in step S16 that another guest will not join midway (NO in step S16), the SoC 120 skips step S17.

[0125] Next, the SoC 120 determines whether or not feedback of image loss has been received from the guest G(i) (step S18).

[0126] In step S18, if SoC 120 determines that it has received feedback about image loss from guest G(i) (YES in step S18), it saves the feedback data in the image lost data of guest G(i) (step S19). For example, if SoC 120 receives information about the ID of a lost image from guest G(i) as feedback about image loss, it saves the information about the image ID as image lost data 320.

[0127] Then, the process returns to step S10 and the above process is repeated. On the other hand, if SoC 120 determines in step S18 that it has not received feedback about image loss from guest G(i) (NO in step S18), it skips step S19 and returns to step S10.

[0128] 11 is a flow diagram illustrating mode saving processing in the game sharing function according to this embodiment. The mode saving processing is realized by reading and executing the host program 220 from the flash memory 106.

[0129] The SoC 120 stores whether the image mode is common or individual based on the designation of the game program (the designation in S2 of FIG. 7 described above) (step S50). For example, the SoC 120 stores whether the image mode is common or individual in the game sharing function based on the designation data 242 included in the game program 240.

[0130] Next, SoC 120 saves whether local wireless communication or Internet communication is selected based on the user's selection (notification based on the selection in S4 of FIG. 7 described above) (step S52). For example, as described in FIG. 8(B), if the user selects the "Local Wireless Communication" icon 412, SoC 120 saves this as a command to select local wireless communication in the game sharing function. On the other hand, if the user selects the "Internet Communication" icon 414, SoC 120 saves this as a command to select Internet communication in the game sharing function. Then, the process ends (END).

[0131] 12 is a flow diagram illustrating the streaming start processing according to the present embodiment. Referring to FIG. 12, the SoC 120 executes the streaming start processing program (included in the streaming function program 222) in response to the call of the streaming start processing described in step S8, thereby executing the streaming start processing.

[0132] Specifically, the SoC 120 determines the maximum, minimum, and initial values ​​of the target bit rate and the initial value of the VBV buffer size according to the number of guests 304 (step S54). For example, the SoC 120 may determine the maximum target bit rate to be 3 Mbps when the number of guests 304 is "3," the maximum target bit rate to be 4 Mbps when the number of guests 304 is "2," and the maximum target bit rate to be 5 Mbps when the number of guests 304 is "1." For example, the SoC 120 may determine the minimum target bit rate to be the same 0.1 Mbps for all guests, or may determine the minimum target bit rate according to the number of guests 304. For example, the SoC 120 may set the initial target bit rate to the maximum value. The SoC 120 may determine the initial VBV buffer size to be 1.5 M when the number of guests 304 is "3," 2 M when the number of guests 304 is "2," and 2.5 M when the number of guests 304 is "1." As an example, the maximum, minimum, and initial values ​​of the target bit rate and the initial value of the VBV buffer size are determined according to the number of guests in the above description, but the number of guests may be determined as the upper limit of the number of guests that the game program can accommodate. It is possible to statically accommodate game devices (guests) that join during game processing.

[0133] In this embodiment, the initial value of the VBV buffer size is set according to the number of guests or the upper limit thereof, so that the VBV buffer size can be set appropriately.

[0134] The SoC 120 stores the data determined for each guest G(i) in the image target bit rate (guest G(i)) 316 and image VBV buffer size (guest G(i)) 319. The current values ​​are set to initial values.

[0135] Next, the SoC 120 starts streaming the game images of each guest G(i) in accordance with the decision (step S56). The streaming process will be described in detail later. Then, the process ends (END).

[0136] In step S54, the process of changing the maximum value of the target bit rate etc. depending on the number of guests 304 has been described, but in the case of Internet communication where there is room on the communication path, this process may or may not be executed.

[0137] 13 is a subroutine flow diagram of streaming processing according to this embodiment. The streaming processing is realized by the SoC 120 executing a streaming function program. Referring to FIG. 13, the SoC 120 executes a target bit rate setting process (step S60). The target bit rate setting process is executed for each guest G(i).

[0138] FIG. 14 is a subroutine flow diagram of the target bit rate setting process according to this embodiment. With reference to FIG. 14, the case of local wireless communication will be described. The SoC 120 determines whether image loss feedback has been received from the guest G(i) (step S70). For example, the SoC 120 references the image loss data 320 to determine whether image loss corresponding to the guest G(i) is stored. If the SoC 120 determines in step S70 that image loss feedback has been received (YES in step S70), it determines whether the image loss in the most recent X frames for the guest G(i) is equal to or greater than a certain value (step S72). X may be set to any value equal to or greater than 1. For example, the host game device (host) 100 divides one frame of game image into multiple communication packets and transmits them. The guest game device (guest) 100 determines whether all transmitted communication packets have been received. If even one communication packet among the multiple communication packets has been lost, it provides feedback indicating image loss for that frame (image ID).

[0139] In step S72, if SoC120 determines that the image loss in the most recent X frames for guest G(i) is equal to or greater than a certain amount (YES in step S72), it reduces the target bit rate for guest G(i) by a certain amount (step S74). If the target bit rate is smaller than the lower limit Min, SoC120 sets it to the lower limit Min. Next, it proceeds to step S76.

[0140] On the other hand, in step S72, if SoC120 determines that the image loss in the most recent X frames for guest G(i) is less than a certain amount (NO in step S72) or if it determines that it has not received feedback on image loss from guest G(i) (NO in step S70), it proceeds to step S76.

[0141] In step S76, SoC 120 receives delay amount data from guest G(i) (step S76). For example, SoC 120 receives delay amount data transmitted from game device 100 of guest G(i) and stores it in DRAM 108 as delay amount data 322.

[0142] Next, SoC 120 determines whether the delay amount is equal to or greater than a certain amount based on the delay amount data 322 of guest G(i) stored in DRAM 108 (step S78). If SoC 120 determines in step S78 that the delay amount for guest G(i) is equal to or greater than a certain amount (YES in step S78), it reduces the target bit rate for guest G(i) by a certain amount (step S80). If the target bit rate is smaller than the lower limit Min, SoC 120 sets it to the lower limit Min. Next, it proceeds to step S82. Note that SoC 120 is not limited to determining whether the delay amount is equal to or greater than a certain amount based on the delay amount data 322 of guest G(i) stored in DRAM 108, and may instead determine whether the increase in delay is equal to or greater than a certain amount.

[0143] On the other hand, in step S78, if SoC 120 determines that the delay amount for guest G(i) is not equal to or greater than a certain amount (NO in step S78), the process proceeds to step S82.

[0144] Next, SoC120 determines whether the image loss and delay amount for guest G(i) are less than a certain amount and whether the observed bit rate of guest G(i) has reached the target bit rate for a certain period of time (step S82).

[0145] In step S82, if SoC120 determines that the image loss and delay amount for guest G(i) are less than a certain amount and that the observed bit rate of guest G(i) has reached the target bit rate for a certain period of time (YES in step S82), it increases the target bit rate for guest G(i) by a certain amount (step S84). If the target bit rate exceeds the upper limit value Max, SoC120 sets it to the upper limit value Max. Then, it ends the process (return).

[0146] In step S82, if SoC120 determines that the image loss and delay amount for guest G(i) are less than a certain amount and that the observed bit rate of guest G has not reached the target bit rate for a certain period of time (NO in step S82), it skips step S84 and terminates the processing (return).

[0147] A state in which image loss and delay are less than a certain level indicates a stable communication state. A state in which the observed bit rate has reached the target bit rate for a certain period of time indicates a state in which the current amount of game image information is being transmitted at an appropriate target bit rate for a certain period of time. In these cases, the target bit rate is increased by a certain amount.

[0148] Figure 15 is a flowchart showing another subroutine of the target bit rate setting process according to this embodiment. Referring to Figure 15, the case of Internet communication will now be described. Compared to the flowchart of Figure 14, this differs in that step S82 is replaced with step S82#. The other processing is the same as that described in Figure 14, and therefore detailed description thereof will not be repeated.

[0149] In step S82#, SoC 120 determines whether the state in which image loss and delay are less than a certain amount continues for a certain period of time (step S82#).

[0150] In step S82#, if SoC120 determines that the state in which image loss and delay amounts for guest G(i) are less than a certain amount has continued for a certain period of time (YES in step S82#), it increases the target bit rate for guest G(i) by a certain amount (step S84). If the target bit rate exceeds the upper limit value Max, SoC120 sets it to the upper limit value Max. Then, it ends the process (returns).

[0151] In step S82#, if SoC120 determines that the state in which image loss and delay amount for guest G(i) are less than a certain amount has not continued for a certain period of time (NO in step S82#), it skips step S84 and terminates processing (returns).

[0152] A state in which image loss and latency are less than a certain level indicates a stable communication state. In the case of Internet communication, the target bit rate is increased by a certain amount when this state is met. When a simple game image changes to a more complex one, the target bit rate and the observed bit rate may suddenly deviate from each other, and the load on the communication path may fluctuate significantly. Even if this occurs, image loss and latency are unlikely to increase because the communication path has sufficient capacity. On the other hand, in the case of local wireless communication, the communication path is limited, and a sudden change in the load on the communication path may result in image loss and latency. Therefore, in the case of local wireless communication, a condition is set that the current amount of game image information is transmitted at an appropriate target bit rate for a certain period of time, thereby suppressing a sudden deviation between the target bit rate and the observed bit rate. Note that this condition may also be added in the case of Internet communication.

[0153] In this way, in this embodiment, the encoding target bit rate is set according to the number of guests or the upper limit, which allows the host to transmit game images generated by the host to the guests by efficiently utilizing the limited communication bandwidth.

[0154] If the target bit rate is set according to the upper limit of the guest, it will be possible to accommodate a guest joining midway through the session.

[0155] Furthermore, the initial target bitrate is set according to the number of guests or the upper limit, and then the target bitrate is varied according to each factor, making it possible to adapt to the situation after play begins. In this case, too, the maximum target bitrate is determined according to the number of guests or the upper limit, and the bitrate will not exceed this. Therefore, the target bitrate can be set within a range according to the number of guests or the upper limit.

[0156] Referring again to FIG. 13, next, the SoC 120 encodes the image for each guest G(i) using the target bit rate (current value) for each guest G(i) and the VBV buffer size for each guest G(i) (step S61). The SoC 120 encodes the image for each guest G(i) using a variable bit rate scheme. The encoding may be performed using a scheme in which the target bit rate during encoding varies depending on the communication state. The encoding may be performed using a scheme in which the observed bit rate of the encoded result varies depending on the amount of information in the image for each guest G(i). The encoding may be performed using a scheme in which the set bit rate during encoding is increased based on a comparison between the target bit rate during encoding and the observed bit rate of the encoded result. For example, the SoC 120 performs an encoding process on the image data stored in the frame buffer 110 in accordance with the target bit rate and the VBV buffer size. The SoC 120 selects an appropriate encoding mode through optimization processing based on the target bit rate and the remaining amount of the VBV buffer size, and performs encoding processing in accordance with the selected encoding mode.

[0157] Next, the SoC 120 transmits the encoded image generated for each guest G(i) to the game device 100 of each guest G(i) together with an image ID and time information (step S62).

[0158] Next, SoC 120 measures and saves the observed bit rate (step S63). SoC 120 measures and saves the bit rate of the transmission data resulting from encoding (resulting bit rate) as the observed bit rate. For example, SoC 120 can calculate the observed bit rate by measuring the amount of transmission data output along the time axis and dividing by the measurement time. SoC 120 saves the calculated measured bit rate as the observed bit rate of the image (guest G(i)) 318.

[0159] Next, the SoC 120 changes the VBV buffer size of each guest G(i) according to the observed bit rate of the encoded image of each guest (step S64).

[0160] FIG. 16 is a diagram illustrating how the VBV buffer size is changed according to this embodiment. Referring to FIG. 16(A), an example of an initial VBV buffer size value is shown. The SoC 120 sets the initial VBV buffer size value based on the number of guests 304. The SoC 120 changes the VBV buffer size value for each guest G(i) for each game device (guest G(i)) based on the bit rate (observed bit rate) resulting from encoding the game images of the game device (guest G(i)). For example, as shown in FIG. 16(B), the VBV buffer size value may be set to half the observed bit rate for each game device (guest G(i)). The SoC 120 saves the changed VBV buffer size value as VBV buffer size (guest G(i)) 319.

[0161] 13, SoC 120 then determines whether or not there is a change request (step S65). SoC 120 determines whether or not there is a change request as part of the process in step S17 of FIG.

[0162] If SoC 120 determines in step S65 that a change request has been made (YES in step S65), it determines and resets the maximum, minimum, and initial values ​​of the target bit rate and the initial value of the VBV buffer size according to the number of guests (step S66), and then proceeds to step S67.

[0163] On the other hand, if SoC 120 determines in step S65 that there is no change request (NO in step S65), it skips step S66 and proceeds to step S67.

[0164] In step S67, the SoC 120 executes a process of transmitting the antenna level related information to the guest G(i) (step S67). The process of transmitting the antenna level related information to the guest G(i) will be described in detail later.

[0165] Then, the process returns to step S60 and the above processing is repeated. 17 is a subroutine flow diagram of the process of transmitting antenna level related information to guest G(i) according to this embodiment. With reference to FIG. 17, the case of local wireless communication will be described here. SoC120 transmits "data indicating whether the current value of the target bit rate of guest G(i) has reached the maximum value" to guest G(i) (step S90). For example, the "data indicating whether the current value of the target bit rate of guest G(i) has reached the maximum value" is flag information of "0" or "1."

[0166] Next, SoC120 transmits to guest G(i) "data indicating whether the observed bit rate of guest G(i) has been lower than the current target bit rate for a certain period of time" (step S92). For example, the "data indicating whether the observed bit rate of guest G(i) has been lower than the current target bit rate for a certain period of time" is flag information of "0" or "1."

[0167] Then, the process ends (returns). 18 is a flowchart showing another subroutine of the process of transmitting antenna level related information to a guest G(i) according to this embodiment. Here, the case of Internet communication will be described with reference to FIG. 18. For each guest G(i), the SoC 120 calculates "the target bit rate (current value) of the guest G(i) / the target bit rate (maximum value)," and transmits data indicating the calculated value to the guest G(i) (step S94).

[0168] Then, the process ends (returns). The process of transmitting the antenna level related information to the guest G(i) may be performed at predetermined intervals, for example, once every few seconds.

[0169] 19 is a flow diagram illustrating game processing of a game device (guest) according to this embodiment. The processing procedure shown in FIG. 19 may be implemented by the SoC 120 of each game device (guest) 100 executing the guest program 230 included in the system program 200 stored in the flash memory 106.

[0170] The SoC 120 of the game device (guest) executes a connection request process (step S100). The connection request process will be described in detail later.

[0171] FIG. 20 is a subroutine flowchart of the connection request process of the game device (guest) according to this embodiment.

[0172] There are various methods for connection request processing, but as an example, the case of local wireless communication will be described with reference to Figure 20. SoC 120 of game device (guest G(i)) 100 executes a host search process to search for a game device (host) 100 to serve as a host (a host that is transmitting a recruitment advertisement) using local wireless communication (step S120).

[0173] Next, SoC 120 of game device (guest G(i)) 100 determines whether a host is present (step S122). If no host is present (NO in step S122), SoC 120 of game device (guest G(i)) 100 returns to step S120 and continues the host search process.

[0174] On the other hand, if SoC 120 determines in step S122 that a host is present (YES in step S122), it displays a connection request confirmation screen on display 104 for selecting whether or not to request a connection (step S124).

[0175] FIG. 21 is a diagram illustrating an example of a connection request confirmation screen according to this embodiment. Referring to FIG. 21, connection request confirmation screen 440 includes a comment such as "Mr. Q (host) has been found," as well as a "Connect" button 442 for requesting a connection and a "Do Not Connect" button 444 for not requesting a connection. For example, when a guest user selects the "Connect" button 442 on connection request confirmation screen 440, an instruction to request a connection is transmitted from the guest game device (guest) to the host game device (host) 100. On the other hand, when a guest user selects the "Do Not Connect" button 444 on connection request confirmation screen 440, an instruction to request a connection is not transmitted from the guest game device (guest) to the host game device (host) 100.

[0176] Referring again to FIG. 20, SoC 120 of game device (guest G(i)) 100 determines whether or not the guest user has selected "Connect" on connection request confirmation screen 440 (step S126).

[0177] In step S126, if SoC 120 of game device (guest G(i)) 100 determines that the guest user has selected "Do not connect" on connection request confirmation screen 440 (NO in step S126), the process returns to step S120.

[0178] On the other hand, in step S126, if the SoC 120 of the game device (guest G(i)) 100 determines that the guest user has selected "Connect" on the connection request confirmation screen 440 (YES in step S126), it sends an instruction to the host game device (host) 100 requesting connection from the guest game device (guest) (step S128).

[0179] Next, SoC 120 of game device (guest G(i)) 100 determines whether or not connection permission and a game start instruction have been received from host game device (host) 100 (step S130).

[0180] If, in step S130, SoC 120 of game device (guest G(i)) 100 determines that it has received connection permission and a game start instruction from the host game device (host) 100 (YES in step S130), it synchronizes the time and receives and stores the number of guests from the host (step S132). For example, SoC 120 of game device (guest G(i)) 100 receives time data 306 and the number of guests 304 from game device (host) 100-1. Game device (guest G(i)) 100 receives the time data 306 and synchronizes the time. SoC 120 of game device (guest G(i)) 100 stores the received number of guests 304 as the number of guests 334 in DRAM 108.

[0181] Then, the process ends (returns). While the above has described the connection request process for local wireless communication, in the case of Internet communication, for example, a host search process may be executed in which a matching room created by management server 300 is accessed and a game device (host) 100 is searched for. Then, for a host found in the matching room, the connection request confirmation screen described in FIG. 21 may be displayed on display 104, allowing the user to select whether to accept the connection request. When a guest user requests a connection, an instruction to request a connection may be transmitted from the guest game device (guest) 100 to the host game device (host) 100 via management server 300, and the host game device (host) 100 may transmit to the guest game device (guest) 100 host information, the number of guests, and time data along with connection permission and an instruction to start a game.

[0182] 19 again, next, SoC 120 of game device (guest G(i)) 100 acquires its own operation data (step S102). SoC 120 of game device (guest G(i)) 100 acquires operation data (guest) 338 stored in DRAM 108.

[0183] Next, the SoC 120 of the game device (guest G(i)) 100 transmits the operation data (guest) 338 to the host (step S104).

[0184] Next, the SoC 120 of the game device (guest G(i)) 100 receives the game image (step S106). For example, the SoC 120 of the game device (guest G(i)) 100 receives the transmitted game image (guest G(i)) 314 and saves it as game image 340.

[0185] Next, the SoC 120 of the game device (guest G(i)) 100 determines whether image loss has occurred (step S108). The SoC 120 of the game device (guest G(i)) 100 references the image ID 341 of the most recent image and compares it with the image ID associated with the game image received from the host to determine whether image loss has occurred. For example, if the image ID is a serial ID, if the serial IDs have arrived in order, it is determined that no image loss has occurred. On the other hand, if the image IDs are out of order and there is a gap, it is determined that an image loss has occurred corresponding to the missing image ID.

[0186] In step S108, if SoC 120 of game device (guest G(i)) 100 determines that an image has been lost (YES in step S108), it transmits feedback about the image loss to the host (step S110). For example, SoC 120 of game device (guest G(i)) 100 transmits feedback to game device (host) 100 that includes information about the serial IDs before and after the loss, or the number of the missing serial ID.

[0187] Next, the SoC 120 of the game device (guest G(i)) 100 stores the serial ID associated with the received game image as the serial ID 341 of the most recent image.

[0188] On the other hand, if SoC 120 of game device (guest G(i)) 100 determines in step S108 that no image loss has occurred (NO in step S108), it skips step S110 and proceeds to step S111.

[0189] Next, the SoC 120 of the game device (guest G(i)) 100 executes a decoding process (step S112). For example, the transmitted encoded game image (guest G(i)) 314 includes information about the encoding mode used for the encoding process. The SoC 120 of the game device (guest G(i)) 100 executes a decoding process on the encoded image data based on the information about the encoding mode, and stores the image data in the frame buffer 110.

[0190] Next, the SoC 120 of the game device (guest G(i)) 100 compares the time information added to the received game image with its own current time information, calculates delay amount data, and transmits the calculated delay amount data 343 to the game device (host) 100 (step S114). For example, the SoC 120 of the game device (guest G(i)) 100 compares the time information added to the received game image with the time data 336 to calculate delay amount data 343 related to the delay amount, and transmits the calculated delay amount data 343 to the game device (host) 100.

[0191] Next, the SoC 120 of the game device (guest G(i)) 100 displays the decoded game image (step S116). For example, the SoC 120 displays the game image developed in the frame buffer 110 on the display 104.

[0192] Next, SoC 120 of game device (guest G(i)) 100 executes the antenna level calculation and display process (step S118). The antenna level calculation and display process is realized by SoC 120 executing guest program 230. The details of the antenna level calculation and display process will be described later. Then, the process returns to step S102 again to continue the process.

[0193] For example, the antenna level may be calculated based on both the communication state (image lost data and delay amount data) in the communication of game images and the encoding bit rate (target bit rate and observed bit rate), or based on either one of them. The antenna level may be calculated based on the communication state (image lost data) and the target bit rate or the observed bit rate. The antenna level may be calculated based on a comparison result between the target bit rate and the observed bit rate. The communication state may be determined based on both the game image delay amount data and the image lost data on the communication path, or on just one of them. If local wireless communication is selected, the communication state may be determined based on at least the image lost data on the communication path, and if Internet communication is selected, the communication state may be determined based on at least the delay amount data. If local wireless communication is selected, the communication state may be determined based on the target bit rate and the image lost data on the communication path, and if Internet communication is selected, the communication state may be determined based on the target bit rate and the delay amount data.

[0194] The display process for the antenna level may be a single icon that changes depending on both the communication status and the encoding bit rate in the communication of game images.

[0195] 22 is a subroutine flow diagram of the antenna level calculation and display process according to this embodiment. Referring to FIG. 22, the case of local wireless communication will be described. The SoC 120 of the game device (guest G(i)) 100 receives "data indicating whether the current value of the target bit rate of guest G(i) has reached the maximum value" from the host (step S120).

[0196] Next, the SoC 120 of the game device (guest G(i)) 100 receives from the host "data indicating whether the observed bit rate of guest G(i) has remained lower than the current target bit rate for a certain period of time" (step S122).

[0197] Next, SoC 120 of game device (guest G(i)) 100 determines whether the number of image losses per unit time is m or more (step S124). For example, SoC 120 of game device (guest G(i)) 100 may refer to image loss data 342 and count the number of missing serial IDs associated with game images most recently received from the host per unit time to determine whether the number of image losses is m or more. Alternatively, SoC 120 of game device (guest G(i)) 100 may determine whether the number of image losses is m or more based on the number of times feedback is transmitted per unit time.

[0198] In step S124, if SoC 120 of game device (guest G(i)) 100 determines that the number of images lost per unit time is m or more (YES in step S124), it determines that the level is L1, stores this as antenna level data 344, and displays the antenna corresponding to this level L1 (step S126). Then, the process ends (returns).

[0199] On the other hand, in step S124, if the SoC 120 of the game device (guest G(i)) 100 determines that the number of images lost per unit time is less than m (NO in step S124), it determines whether the number of images lost per unit time is n or more (step S128).

[0200] On the other hand, in step S128, if SoC 120 of game device (guest G(i)) 100 determines that the number of images lost per unit time is n or more (YES in step S128), it determines that the level is L2, stores this as antenna level data 344, and displays the antenna corresponding to this level L2 (step S130). Then, the process ends (returns).

[0201] On the other hand, in step S128, if the SoC 120 of the game device (guest G(i)) 100 determines that the number of images lost per unit time is less than n (NO in step S128), it determines whether the current value of the target bit rate has reached the maximum value (step S132).

[0202] In step S132, if SoC 120 of game device (guest G(i)) 100 determines that the current value of the target bit rate has reached the maximum value (YES in step S132), it determines that the level is L3, saves this as antenna level data 344, and displays the antenna corresponding to this level L3 (step S136). For example, if the flag received in step S120 is "1", SoC 120 of game device (guest G(i)) 100 may determine that the level is L3. Then, it ends the process (returns).

[0203] On the other hand, if SoC 120 of game device (guest G(i)) 100 determines in step S132 that the current value of the target bit rate has not reached the maximum value (NO in step S132), it determines whether the state in which the observed bit rate is lower than the current value of the target bit rate has continued for a certain period of time (step S134). For example, if the flag received in step S120 is "1", SoC 120 of game device (guest G(i)) 100 determines whether the flag received in step S122 is "1".

[0204] In step S134, if SoC 120 of game device (guest G(i)) 100 determines that the observed bit rate has been lower than the current target bit rate for a certain period of time (YES in step S134), it displays a level L3 antenna (step S136). Then, it ends the process (returns). For example, if the flag received in step S122 is "1", SoC 120 of game device (guest G(i)) 100 may determine that the level is L3. In the case of simple game images, the target bit rate may not reach its maximum value, so if the observed bit rate has been lower than the current target bit rate for a certain period of time and the image quality is stable, it determines that the level is L3.

[0205] On the other hand, in step S134, if SoC 120 of game device (guest G(i)) 100 determines that the observed bit rate has not remained lower than the current target bit rate for a certain period of time (NO in step S134), it displays an antenna of level L2 (step S130). Then, it ends the process (returns). For example, if the flag received in step S122 is "0", SoC 120 of game device (guest G(i)) 100 may determine the level as L2.

[0206] 23 is a flowchart showing another subroutine of the antenna level calculation and display process according to this embodiment. Here, the case of Internet communication will be described with reference to FIG. 23. SoC120 (guest) receives "data indicating whether the target bit rate (current value) / target bit rate (maximum value) of guest G has been reached" from the host (step S140).

[0207] Next, SoC120 of game device (guest G(i)) 100 determines whether the target bit rate (current value) / target bit rate (maximum value) of guest G is equal to or greater than X2, and if so, determines the level to be L3. SoC120 of game device (guest G(i)) 100 determines the level to be L2 if the target bit rate (current value) / target bit rate (maximum value) of guest G is less than X2 and equal to or greater than X1. SoC120 of game device (guest G(i)) 100 determines the level to be L1 if the target bit rate (current value) / target bit rate (maximum value) of guest G is less than X1 (step S142).

[0208] Next, the SoC 120 of the game device (guest G(i)) 100 refers to the delay amount data and determines whether the average value of the delay amount data over a predetermined period is Y1 or less, and if it is Y1 or less, determines it to be level L3. If the average value of the delay amount data over a predetermined period is greater than Y1 and less than Y2, the SoC 120 of the game device (guest G(i)) 100 determines it to be level L2. If the average value of the delay amount data over a predetermined period is greater than Y2, the SoC 120 of the game device (guest G(i)) 100 determines it to be level L1 (step S144).

[0209] Next, SoC 120 of game device (guest G(i)) 100 determines whether the image loss per unit time is m or more, and if the image loss is m or more, determines the level as L1. If the image loss is n or more, determines the level as L2. If the image loss is less than n, determines the level as L3 (step S146). As described above, for example, SoC 120 of game device (guest G(i)) 100 may refer to image loss data 342 and count the number of missing serial IDs associated with game images most recently received from the host per unit time to determine whether the image loss is m or n or more. Alternatively, SoC 120 of game device (guest G(i)) 100 may determine whether the image loss is m or n or more based on the number of times feedback is transmitted per unit time.

[0210] Next, the SoC 120 of the game device (guest G(i)) 100 sets the average value of each value as the antenna level and records it (step S148). Alternatively, the minimum value of each value may be set as the antenna level. For example, the SoC 120 of the game device (guest G(i)) 100 stores the determined data in the DRAM 108 as antenna level data 344.

[0211] Next, the SoC 120 of the game device (guest G(i)) 100 displays the antenna level based on the antenna level data 344 (step S149), and then ends the process (return).

[0212] FIG. 24 is a diagram illustrating a screen of the display 104 of the game device according to this embodiment. Referring to FIG. 24, a screen 502 of the display 104 is displayed. The screen 502 displays a game image 510 and an antenna 506 indicating display quality. The SoC 120 of the game device (host) 100 displays the antenna 506 based on the antenna level data 324. The SoC 120 of the game device (guest G(i)) 100 displays the antenna 506 based on the antenna level data 344. In this embodiment, an icon with three antennas corresponding to level L3 is displayed. For example, an icon with two antennas may be displayed for level L2, and an icon with one antenna may be displayed for level L1. Information indicating display quality may be displayed in other forms, such as numerical values ​​or text, without being limited to the number of antennas. This allows the host user to easily grasp the display quality of the transmitted image by checking the antenna 506 of the game device (host) 100. Antenna level data 324 is the antenna level data with the lowest level among antenna level data 326 of game device (guest G(i)) 100. Therefore, it is easy for the host to take appropriate measures, such as improving the communication conditions, in accordance with the level of display quality. Furthermore, the guest user can easily grasp the display quality of the received image by checking antenna 506 of game device (guest) 100. Therefore, it is easy for the guest to take appropriate measures, such as improving the communication conditions, in accordance with the level of display quality.

[0213] In games that use a game sharing function in which game images are generated on the host device and sent to the guest device, communicating the current display quality of the game images on the guest device can be a challenge. However, in this embodiment, the display quality is displayed in real time along with the game image using a single icon, so that the display quality of the game image being played can be known in real time.

[0214] [F. Variations] The antenna level calculation and display process according to the above embodiment has been described with reference to a case in which each game device (guest G(i)) 100 determines the antenna level and displays the determination result. Alternatively, the antenna level of each game device (guest G(i)) 100 may be determined by the game device (host) 100. For example, in local wireless communication, the SoC 120 of the game device (host) 100 may retain, without transmitting to the game device (guest G(i)) 100, "data indicating whether the current value of the target bit rate of guest G(i) has reached its maximum value" and "data indicating whether the observed bit rate of guest G(i) has remained lower than the current value of the target bit rate for a certain period of time." The SoC 120 of the game device (host) 100 may execute the process described in FIG. 22 using the image lost data 320 to perform the determination. The SoC 120 of the game device (host) 100 may transmit the determination result to the game device (guest G(i)) 100 and display the antenna 506 based on the antenna level data 3344 according to the received determination result. This is not limited to local wireless communication, but can also be applied to Internet communication. In the case of Internet communication, SoC 120 of game device (host) 100 may calculate the antenna level according to the method described in Fig. 23 instead of the process of step S12 in Fig. 7, store the calculated antenna level as antenna level data (host) 324, and display it on display 104.

[0215] The target bit rate setting process (FIG. 14) and antenna level calculation and display process (FIG. 22) for local wireless communication may be used for Internet communication. Also, the target bit rate setting process (FIG. 15) and antenna level calculation and display process (FIG. 23) for Internet communication may be used for local wireless communication.

[0216] In the above embodiment, a game system that mainly executes game processing has been described, but the present invention is not limited to game processing. For example, the present invention can be similarly applied to an information processing system that distributes video. For example, a first information processing device may encode and transmit video, a second information processing device may receive and display the video transmitted from the first information processing device, and the display quality of the video on the second information processing device may be determined based on the communication status of the video communication and the encoding bit rate, and an icon indicating the display quality may be displayed on the display of the second information processing device together with the video.

[0217] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]

[0218] 1, 2 Overall system, 10 Network, 100 Game device, 102 Operation unit, 104 Display, 106 Flash memory, 108 DRAM, 110 Frame buffer, 112 Communication module, 200 System program, 210 Game sharing function program, 220 Host program, 222 Streaming function program, 224 Variable bit rate setting function program, 226 Other function programs, 230 Guest program, 240 Game program, 242 Designated data, 300 Management server.

Claims

1. A game system including a first game device and a second game device, the first game device, receiving operation data from the second game device, and executing a game program using its own operation data and the received operation data to generate a game image; Encoding the generated game image in a variable bit rate manner; transmitting the encoded game image to the second game device; The game system includes: determining a display quality of the game image on the second game device based on at least one of a communication state in communication of the game image and a bit rate of the encoding; A game system that displays an icon indicating the display quality on the display of the second game device together with the game image.

2. the determination is made based on both a communication state in communication of the game image and a bit rate of the encoding.

2. The game system according to claim 1, wherein the icon is a single icon that changes depending on both a communication state in communication of the game image and an encoding bit rate.

3. the encoding is performed using a method in which a set value of a bit rate (set bit rate) during encoding varies depending on the communication state, The game system according to claim 1 , wherein the determination is made based on the communication state and the set bit rate.

4. the encoding is further performed using a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information of the game image; The game system according to claim 3 , wherein the determination is made based on the communication state and the resulting bit rate.

5. the encoding is a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information of the game image, The game system according to claim 1 , wherein the determination is made based on the communication state and the resulting bit rate.

6. the encoding step increases the value of the set bit rate based on a comparison between the set bit rate and the resulting bit rate; The game system according to claim 5 , wherein the determination is further made based on the comparison result.

7. 6. The game system according to claim 1, wherein the determination of the communication state determines both a communication delay of the game image and data loss on a communication path.

8. the first game device accepts a selection input between local wireless communication and Internet communication as a communication method for transmitting the game video; A game system according to any one of claims 1 to 5, wherein, when local wireless communication is selected in the selection input, the determination is made based on at least data loss on the communication path, and when Internet communication is selected, the determination is made based on at least communication delay.

9. the encoding is performed using a method in which a set value of a bit rate (set bit rate) during encoding varies depending on the communication state, The determination is When the local wireless communication is selected in the selection input, the local wireless communication is performed based on the set bit rate and data loss on the communication path of the game image, The game system according to claim 8 , wherein when the Internet communication is selected in the selection input, the communication is performed based on the set bit rate and the communication delay of the game image.

10. a plurality of said second game devices; the determination is made based on at least one of the communication state and the encoding bit rate for each of the second game devices; 6. The game system according to claim 1, wherein the display is such that an icon is selected and displayed for each of the second game devices based on the result of the determination.

11. The encoding is performed using a method in which a bit rate setting value (set bit rate) varies depending on the communication state, the maximum value of the set bit rate is determined in accordance with the number of the plurality of second game devices; 11. The game system according to claim 10, wherein the determination is made by comparing the currently set bit rate with a maximum value of the set bit rate for each of the second game devices.

12. a first information processing device that encodes and transmits video; a second information processing device that receives and displays the video transmitted from the first information processing device; determining a display quality of the moving image in the second information processing device based on a communication state of the moving image communication and a bit rate of the encoding; An information processing system that displays an icon indicating the display quality on a display of the second information processing device together with the video.

13. A program for use in a game system including a first game device and a second game device, wherein the first game device receives operation data of the second game device, executes a game program using its own operation data and the received operation data to generate game images, encodes the generated game images using a method in which a bit rate is variable, and transmits the encoded game images to the second game device, the program comprising: executing a process of determining a display quality of the game image in the second game device based on at least one of a communication state in communication of the game image and a bit rate of the encoding; a program that causes a process to be executed in which an icon indicating the display quality is displayed on the display of the second game device together with the game image;

14. the determination is made based on both a communication state in communication of the game image and a bit rate of the encoding, 14. The program according to claim 13, wherein the icon is a single icon that changes depending on both a communication state in communication of the game image and an encoding bit rate.

15. the encoding is performed using a method in which a set value of a bit rate (set bit rate) during encoding varies depending on the communication state, 14. The program according to claim 13, wherein the determination is made based on the communication state and the set bit rate.

16. the encoding is further performed using a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information of the game image; The program according to claim 13 , wherein the determination is made based on the communication state and the resulting bit rate.

17. the encoding is a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information of the game image, The program according to claim 13 , wherein the determination is made based on the communication state and the resulting bit rate.

18. the encoding step increases the value of the set bit rate based on a comparison between the set bit rate and the resulting bit rate; 18. The program according to claim 17, wherein the determination is further made based on the comparison result.

19. The program according to any one of claims 13 to 17, wherein the determination of the communication state determines both a communication delay of the game image and data loss on a communication path.

20. the first game device accepts a selection input between local wireless communication and Internet communication as a communication method for transmitting the game video; The program according to any one of claims 13 to 17, wherein, when local wireless communication is selected in the selection input, the determination is made based on at least data loss on the communication path, and when Internet communication is selected, the determination is made based on at least communication delay.

21. the encoding is performed using a method in which a set value of a bit rate (set bit rate) during encoding varies depending on the communication state, when the local wireless communication is selected in the selection input, the determination is made based on the set bit rate and data loss on a communication path for the game image; 21. The program according to claim 20, wherein when a selection input of the Internet communication is accepted, the selection input is performed based on the set bit rate and a communication delay of the game image.

22. a plurality of said second game devices; the determination is made based on at least one of the communication state and the encoding bit rate for each of the second game devices; The program according to any one of claims 13 to 17, wherein the display is such that an icon is selected and displayed for each of the second game devices based on the result of the determination.

23. The encoding is performed using a method in which a bit rate setting value (set bit rate) varies depending on the communication state, the maximum value of the set bit rate is determined in accordance with the number of the plurality of second game devices; 23. The program according to claim 22, wherein the determination is made by comparing the currently set bit rate with a maximum value of the set bit rate for each of the second game devices.

24. A control method for a game system including a first game device and a second game device, comprising: the first game device, receiving operation data of the second game device; a step of executing a game program by the first game device using its own operation data and the received operation data; generating a game image; encoding the generated game images in a variable bit rate manner; transmitting the encoded game image to the second game device; The game system includes: determining a display quality of the game image on the second game device based on at least one of a communication state in communication of the game image and a bit rate of the encoding; and displaying an icon indicating the display quality on the display of the second game device together with the game image.

25. the encoding is performed using a method in which a set value of a bit rate (set bit rate) during encoding varies depending on the communication state, 25. The method for controlling a game system according to claim 24, wherein said determining step is performed based on said communication state and said set bit rate.

26. the encoding is further performed using a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information of the game image; 26. The method of claim 25, wherein the determining step is performed based on the communication state and the resulting bit rate.

27. the encoding is a method in which the bit rate of the encoded result (resulting bit rate) varies depending on the amount of information of the game image, 25. The method of claim 24, wherein the determining step is performed based on the communication state and the resulting bit rate.

28. the encoding step increases the value of the set bit rate based on a comparison between the set bit rate and the resulting bit rate; 28. The method of claim 27, wherein the determining step is further performed based on the comparison result.

29. a plurality of said second game devices; the determining step is performed based on at least one of the communication state and the encoding bit rate for each of the second game devices, A control method for a game system according to any one of claims 24 to 28, wherein the displaying step selects and displays an icon for each of the second game devices based on the result of the determination.

Citation Information

Patent Citations

  • Information processing system, information processing method, information processing device, and information processing program

    JP6646991B2