Electronic device and method for performing video call

WO2025127456A1PCT designated stage expired Publication Date: 2025-06-19SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/018230
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-12
Filing Date
2024-11-19
Publication Date
2025-06-19

Smart Images

  • Figure KR2024018230_19062025_PF_FP_ABST
    Figure KR2024018230_19062025_PF_FP_ABST
Patent Text Reader

Abstract

A server according to an embodiment of the present disclosure may: receive one or more groups of pictures (GOPs) associated with video data of a first client device connected for a video call from the first client device; store the last received first GOP among the received one or more GOPs in a cache of the server; confirm that a second client device is connected to perform the video call with the first client device; and on the basis of confirming that the second client device is connected, transmit the stored first GOP to the second client device.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic device and method for making a video call

[0001] The present disclosure relates to an electronic device and method for performing a video call.

[0002] Video calling (or video calling) refers to a technology that allows for the simultaneous, real-time exchange of video and audio data in both directions. Users in different locations can communicate face-to-face using electronic devices that support video calling.

[0003] A group video call can refer to a video call conducted between multiple electronic devices, extending beyond the scope of a traditional one-on-one video call. In a group video call, while two or more electronic devices are engaged in a video call, one or more new electronic devices may join the call.

[0004] In a video call or group video call, a video stream may be transmitted and received in units of a group of pictures (GOP). A GOP may represent a group of frames and may include various types of frames, such as an intra (I) frame, a prediction (P) frame, or a bidirectional (B) frame. Among the various types of frames, an I frame may be used as a key frame for decoding the frames included in the GOP.

[0005] An I frame may be the starting frame of a GOP, and the frames following the I frame (e.g., P frames and / or B frames) may be predicted frames based on the I frame. Therefore, in video calls, acquisition of an I frame may be important for video display, as the I frame must be decoded before the frames following it can be decoded.

[0006] When a first electronic device joins a group video call, the second and third electronic devices participating in the group video call may need to provide I-frames to the first electronic device. However, it may be difficult for the second or third electronic device to provide I-frames in real time. In this case, the first electronic device may have no choice but to wait until the second or third electronic device receives an I-frame, or display an alternative screen or image instead of the image associated with the second or third electronic device.

[0007] Because I-frames are larger than P-frames or B-frames, they may be difficult to generate continuously in cases where real-time services, such as real-time video calls, are crucial and are significantly affected by network conditions. If an I-frame is the starting frame of a GOP and is generated in GOP units, the waiting time to acquire an I-frame may correspond to the maximum GOP size (e.g., 5 seconds). In this case, the first electronic device cannot display images associated with the second or third electronic device for up to 5 seconds, so the user of the first electronic device is forced to view an alternative screen or alternative image.

[0008] One embodiment of the present disclosure may provide an electronic device and method for performing a video call.

[0009] One embodiment of the present disclosure can provide a device and method that enable a video call to be performed without delay by providing frames necessary for decoding to an electronic device participating in the video call.

[0010] A device according to one embodiment of the present disclosure comprises: a server (108), a transceiver (1402); a memory (1404) including a cache (110) and storing at least one program; And at least one processor (1406) electrically connected to the memory (1404) and executing at least one command of a program stored in the memory (1404), wherein the at least one processor (1406) is configured to: receive, through the transceiver (1402), one or more GOPs (group of pictures) associated with image data of the first client device (102) from the first client device (102) connected for a video call, store a first GOP received last among the one or more received GOPs in the cache (110), identify that a second client device (104) is connected to perform a video call with the first client device (102), and control the transceiver (1402) to transmit the stored first GOP to the second client device (104) based on the identification that the second client device (104) is connected.

[0011] According to one embodiment, the at least one processor (1406) may control the transceiver (1402) to, in response to the second client device (104) being connected, receive a second GOP associated with image data of the second client device (104) from the second client device (104), store the received second GOP in the cache (110), and transmit the stored second GOP to the first client device (102).

[0012] According to one embodiment, the at least one processor (1406) may identify that one or more third client devices (106) are connected to perform a video call with the first client device (102) and the second client device (104), and, based on the identification that the one or more third client devices (106) are connected, control the transceiver (1402) to transmit the stored first GOP and the stored second GOP to the one or more third client devices (106).

[0013] According to one embodiment, the at least one processor (1406) controls the transceiver (1402) to transmit a request message requesting provision of a new GOP to the first client device (102) based on identification that the second client device (104) is connected, and in response to the request message, receives a response message indicating that provision of the new GOP is impossible from the first client device (102), and controls the transceiver (1402) to transmit the stored first GOP to the second client device (104) based on the received response message.

[0014] According to one embodiment, the at least one processor (1406) controls the transceiver (1402) to transmit a request message requesting that the first client device (102) provide a new GOP based on identifying that the second client device (104) is connected, and in response to the request message, receives a third GOP as the new GOP from the first client device (102), and in response to receiving the third GOP, controls the transceiver (1402) to delete the stored first GOP from the cache (110), store the received third GOP in the cache (110), and transmit the stored third GOP to the second client device (104).

[0015] According to one embodiment, the at least one processor (1406) may control the transceiver (1402) to receive a third GOP from the first client device (102) while transmitting the stored first GOP to the second client device (104), and in response to receiving the third GOP, to delete the stored first GOP from the cache (110), store the received third GOP in the cache (110), stop transmitting the first GOP, and transmit the stored third GOP to the second client device (104).

[0016] According to one embodiment, the transmitted first GOP may include a first type of frame used to decode frames included in the transmitted first GOP.

[0017] Another device according to one embodiment of the present disclosure comprises: a first electronic device (402), comprising: a transceiver (1502); a memory (1504) including a cache (412) and storing at least one program; and at least one processor (1506) electrically connected to the memory (1504) and executing at least one command of the program stored in the memory (1504), wherein the at least one processor (1506) is configured to: perform a connection operation with at least one second electronic device (404, 406) to perform a video call; and in response to performing the connection operation, control the transceiver (1502) to generate a first group of pictures (GOP) associated with image data of the first electronic device (402), store the generated first GOP in the cache (412), and transmit the stored first GOP to the at least one second electronic device (404, 406).

[0018] According to one embodiment, the at least one processor (1506) may generate a second GOP based on a preset cycle, delete the stored first GOP from the cache (412), and store the generated second GOP in the cache (412).

[0019] According to one embodiment, the transmitted first GOP may include a first type of frame used to decode frames included in the transmitted first GOP.

[0020] A method according to one embodiment of the present disclosure may include: a method for a server (108) to support a video call, comprising: an operation (702) of receiving, from a first client device (102) connected for the video call, one or more GOPs (group of pictures) associated with video data of the first client device (102); an operation (704) of storing a last received first GOP among the received one or more GOPs in a cache (110) of the server (108); an operation (706) of identifying that a second client device (104) has connected to perform a video call with the first client device (102); and an operation (708) of transmitting the stored first GOP to the second client device (104) based on identifying that the second client device (104) has connected.

[0021] According to one embodiment, the method may further include: receiving a second GOP associated with image data of the second client device (104) from the second client device (104) based on identifying that the second client device (104) is connected; storing the received second GOP in the cache (110) (906); and transmitting the stored second GOP to the first client device (102) (908).

[0022] According to one embodiment, the method may further include: identifying (1002) that one or more third client devices (106) are connected to perform a video call with the first client device (102) and the second client device (104); and transmitting (1004) the stored first GOP and the stored second GOP to the one or more third client devices (106) based on the identification that the one or more third client devices (106) are connected.

[0023] According to one embodiment, the operation (708) of transmitting the stored first GOP to the second client device (104) may include the operation (808) of transmitting a request message requesting that the first client device (102) provide a new GOP based on identification that the second client device (104) is connected; the operation (810) of receiving a response message from the first client device (102) indicating that provision of the new GOP is impossible in response to the request message; and the operation (816) of transmitting the stored first GOP to the second client device (104) based on the received response message.

[0024] According to one embodiment, the operation (708) of transmitting the stored first GOP to the second client device (104) may include the operation (808) of transmitting a request message requesting that the first client device (102) provide a new GOP based on identifying that the second client device (104) is connected; the operation (810) of receiving a third GOP as the new GOP from the first client device (102) in response to the request message; the operation (812) of deleting the stored first GOP from the cache (110) and storing the received third GOP in the cache (110) in response to receiving the third GOP; and the operation (814) of transmitting the stored third GOP to the second client device (104).

[0025] According to one embodiment, the method may further include: receiving a third GOP from the first client device (102) while transmitting the stored first GOP to the second client device (104); deleting the stored first GOP from the cache (110) and storing the received third GOP in the cache (110) in response to receiving the third GOP (1104); and stopping transmission of the first GOP and transmitting the stored third GOP to the second client device (104) (1106).

[0026] According to one embodiment, the transmitted first GOP may include a first type of frame used to decode frames included in the transmitted first GOP.

[0027] Another method according to one embodiment of the present disclosure may include: a method for a first electronic device (402) to perform a video call, the method comprising: performing a connection operation (1202) with at least one second electronic device (404, 406) to perform the video call; generating a first group of pictures (GOP) associated with image data of the first electronic device (402) in response to performing the connection operation (1204); storing the generated first GOP in a cache (412) of the first electronic device (402) (1206); and transmitting the stored first GOP to the at least one second electronic device (404, 406) (1208).

[0028] According to one embodiment, the method may further include: generating a second GOP based on a preset cycle (1302); deleting the stored first GOP from the cache (412) (1304); and storing the generated second GOP in the cache (412) (1306).

[0029] According to one embodiment, the transmitted first GOP may include a first type of frame used to decode frames included in the transmitted first GOP.

[0030] FIG. 1 is a diagram illustrating a first communication system for video communication according to one embodiment.

[0031] FIG. 2A is a signal flow diagram illustrating an operation of client devices connecting to a server for video communication in a first communication system according to one embodiment.

[0032] FIG. 2b is another signal flow diagram illustrating an operation of client devices connecting to a server for video communication in a first communication system according to one embodiment.

[0033] FIG. 3 is a signal flow diagram showing an operation in which a new client device connects to a server while client devices perform video communication in a first communication system according to one embodiment.

[0034] FIG. 4 is a diagram illustrating a second communication system for video communication according to one embodiment.

[0035] FIG. 5 is a signal flow diagram illustrating an operation of performing communication between electronic devices for video communication in a second communication system according to one embodiment.

[0036] FIG. 6 is a signal flow diagram illustrating an operation in which a new electronic device is connected for a video call while performing video communication between electronic devices in a second communication system according to one embodiment.

[0037] FIG. 7 is a flowchart illustrating an operation in which a server transmits a GOP of a first client device to a second client device in a first communication system according to one embodiment.

[0038] FIG. 8 is a flowchart illustrating another operation in which a server transmits a GOP of a first client device to a second client device in a first communication system according to one embodiment.

[0039] FIG. 9 is a flowchart illustrating an operation in which a server transmits a GOP of a second client device to a first client device in a first communication system according to one embodiment.

[0040] FIG. 10 is a flowchart illustrating an operation in which a server transmits GOPs of first and second client devices to a third client device participating in a video call in a first communication system according to one embodiment.

[0041] FIG. 11 is a flowchart illustrating an operation in which a server transmits a new GOP received from a first client device to a second client device in a first communication system according to one embodiment.

[0042] FIG. 12 is a flowchart illustrating an operation of a first electronic device transmitting a GOP of the first electronic device to a second electronic device in a second communication system according to one embodiment.

[0043] FIG. 13 is a flowchart illustrating an operation of a first electronic device updating a GOP stored in a cache in a second communication system according to one embodiment.

[0044] Figure 14 is a block diagram of a server according to one embodiment.

[0045] Fig. 15 is a block diagram of an electronic device according to one embodiment.

[0046] The following description refers to the attached drawings, and specific examples of implementations are illustrated within the drawings. Furthermore, other examples may be utilized and structural changes may be made without departing from the scope of the various examples.

[0047] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In connection with the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Furthermore, in the drawings and related descriptions, descriptions of well-known functions and configurations may be omitted for clarity and conciseness.

[0048] FIG. 1 is a diagram illustrating a first communication system for video communication according to one embodiment.

[0049] Referring to FIG. 1, the first communication system (100) may be a communication system that supports video communication. For example, the video communication may include one-to-one video communication, one-to-many video communication, many-to-many video communication, or group video communication.

[0050] According to one example, the first communication system (100) may include a plurality of client devices and a server (108). The plurality of client devices may perform operations such as communicating for a video call, operating a camera, operating a microphone, processing video data associated with images captured by a camera or transmit / receive streams, or processing audio data associated with a user's voice or sound.

[0051] For example, communication for video calling can be performed using any of a variety of wired or wireless communication protocols, such as Ethernet, GSM (global system for mobile communications), EDGE (enhanced data GSM environment), CDMA (code division multiple access), TDMA (time division multiplexing access), LTE (long term evolution), LTE-A (LTE advance), NR (new radio), Wi-Fi (wireless fidelity), or Bluetooth.

[0052] For example, the multiple client devices may each be an electronic device, such as a portable communication device (e.g., a smartphone or tablet), a portable multimedia device, a computer device, a portable medical device, a wearable device, or a home appliance. However, the multiple client devices are not limited to the aforementioned electronic devices, and may also be other types of electronic devices capable of video calling.

[0053] Hereinafter, an example will be described in which the plurality of client devices includes three client devices, such as a first client device (102), a second client device (104), and a third client device (106). However, the plurality of client devices may include one or more client devices in addition to the three client devices, or may include fewer than three client devices.

[0054] In one example, the server (108) may be a relay server, a network server, or a stream management server. The server (108) may manage connections between multiple client devices for video calls. For example, the server (108) may receive a stream associated with video data from any one of a first client device (102), a second client device (104), and a third client device (106), and may forward (or bypass) the received stream to another one of the first client device (102), the second client device (104), and the third client device (106).

[0055] For example, a stream associated with image data may include a video data stream or video stream corresponding to an image captured by a client device (e.g., an image of a user's face). The stream associated with image data may include a plurality of frames. The plurality of frames may be encoded, decoded, and transmitted / received in units of preset frame groups. The preset frame group units may be, for example, a group of pictures (GOP) unit.

[0056] For example, a GOP is a grouping of two or more frames, and the number of frames that can be included in a GOP can be determined based on the hardware specifications or performance of each client device (e.g., encoder or encoding specifications or performance). A GOP can include various types of frames. For example, a GOP can include I (intra) frames, P (prediction) frames, or B (bi-directional) frames.

[0057] An I-frame is a core frame or key frame that serves as the basis for a GOP and can be the starting frame of the GOP. A GOP unit can be indicated by the interval between I-frames. An I-frame can correspond to a complete image and may not reference other frames. An I-frame can be referenced by a P-frame or a B-frame and can be used to decode the frames included in the GOP.

[0058] A P frame can follow an I frame or a P frame (e.g., IP… or IPP…). A P frame can reference a previous I frame or P frame. A P frame can be a forward prediction frame that contains information that predicts forward the data of the difference portion based on the previous I frame or P frame.

[0059] A B frame can be located between an I frame or a P frame (e.g., IBP…), or between two P frames (e.g., IPBP…). A B frame can be a bidirectional predictive frame that contains information that predicts data between the referenced frames by referencing a previous frame (I frame or P frame) and a next frame (P frame).

[0060] According to one example, the server (108) may include a memory (110), and the memory (110) may include or be a cache that stores GOPs received from all or part of the first client device (102), the second client device (104), and the third client device (106). The cache may be referred to by various terms such as stream cache, GOP cache, memory, cache memory, storage, memory device, storage, or database, but for convenience of explanation, it will be referred to as 'cache (110)' hereinafter.

[0061] According to an example, the server (108) may receive a first GOP transmitted from a first client device (102), a second GOP transmitted from a second client device (104), and a third GOP transmitted from a third client device (106) and store them in the cache (110).

[0062] For example, the first GOP, the second GOP, and the third GOP stored in the cache (110) may each include an I frame. The cache (110) may store one or more GOPs per client device, but the following description will be given as an example where the cache (110) stores one GOP per client device.

[0063] In one example, the server (108) may receive a new GOP including a new I-frame from any one of the first client device (102), the second client device (104), and the third client device (106). The server (108) may identify a GOP stored in the cache (110) corresponding to the client device that transmitted the new GOP, and update the identified GOP with the new GOP. For example, the server (108) may delete the GOP stored in the cache (110) and store the new GOP in the cache (110).

[0064] In one example, when a new client device joins a video call being conducted between a first client device (102), a second client device (104), and a third client device (106), the server (108) may request that the first client device (102), the second client device (104), and the third client device (106) each provide a new GOP containing a new I frame.

[0065] If the server (108) indicates that at least one of the first client device (102), the second client device (104) and the third client device (106) is unable to provide a new GOP, the server (108) may transmit the GOP stored in the cache (110) to the new client device for at least one client device.

[0066] When the server (108) receives a new GOP from at least one of the first client device (102), the second client device (104), and the third client device (106), the server can update the cache (110) to store the received new GOP and transmit the new GOP to the new client device.

[0067] For example, when a new client device joins a video call, the server (108) may transmit the first GOP, the second GOP, and the third GOP stored in the cache (110) to the new client device without performing the new GOP provision request operation as described above.

[0068] For example, since the first GOP, the second GOP, and the third GOP each contain an I frame, the new client device can decode and display the frames of the first GOP, the second GOP, and the third GOP on the screen based on each I frame.

[0069] FIG. 2A is a signal flow diagram illustrating an operation of client devices connecting to a server for video communication in a first communication system according to one embodiment.

[0070] Referring to FIG. 2A, in operation 202, a first client device (102) may connect to a server (108) to perform a group video call and transmit a first stream. In one example, the first stream may include at least one group of objects (GOP). For example, the first stream may include a first GOP. In one example, the first client device (102) may transmit information of the first client device (102) to the server (108) together with the first stream or separately. For example, the information of the first client device (102) may include at least one of first identifier (ID) information for identifying the first client device (102), or hardware specification information of the first client device (102) (e.g., encoding information, decoding information, resolution information, or frame rate information).

[0071] In operation 204, the server (108) may receive the first stream and store the first GOP included in the received first stream in the cache (110). For example, the server (108) may store the first GOP corresponding to the first client device (102) in the cache (110), as shown in [Table 1] below.

[0072]

[0073] In one example, when the server (108) receives information about the first client device (102), it may store the first GOP corresponding to the first ID information. In one example, the server (108) may store hardware specification information about the first client device (102) in the cache (110) or in a storage device other than the cache (110).

[0074] In operation 206, the second client device (104) may connect to the server (108) to perform a video call.

[0075] In operation 208, the server (108) may transmit an I-frame creation request message to the first client device (102) in response to the second client device (104) connecting. In one example, the I-frame creation request message may be a message requesting the creation of a new I-frame, or a new GOP request message requesting the provision of a new GOP including a new I-frame.

[0076] In operation 210, the first client device (102) may transmit an I-frame generation impossibility response message to the server (108) indicating that generation of the I-frame (or provision of a new GOP) is impossible if generation of the I-frame is impossible (or if provision of a new GOP is impossible). For example, the first client device (102) may be unable to generate the I-frame if the cycle or point in time for generating the I-frame has not arrived, or if it is performing another operation (e.g., a B-frame or P-frame generation operation).

[0077] In operation 212, in response to receiving an I-frame generation inability response message, the server (108) may transmit a first GOP (e.g., the first GOP of [Table 1]) stored in the cache (110) to the second client device (104). Since the second client device (104) may receive the first GOP including the I-frame from the server (108) even if the first client device (102) is incapable of generating an I-frame, the second client device (104) may perform a decoding operation on the frames included in the first GOP.

[0078] In one example, the second client device (104) may connect to the server (108) in operation 206 and transmit a second stream. In one example, the second stream may include at least one GOP. For example, the second stream may include a second GOP. In one example, the second client device (104) may transmit information of the second client device (104) to the server (108) together with the second stream or separately. For example, the information of the second client device (104) may include at least one of second ID information for identifying the second client device (104) or hardware specification information of the second client device (104) (e.g., encoding information, decoding information, resolution information, or frame rate information).

[0079] In one example, the server (108) may receive a second stream from a second client device (104) and store a second GOP included in the received second stream in the cache (110). In one example, when the server (108) receives information about the second client device (104), the server (108) may store the second GOP corresponding to the second ID information. In one example, the server (108) may store hardware specification information about the second client device (104) in the cache (110) or in a storage device other than the cache (110).

[0080] FIG. 2b is another signal flow diagram illustrating an operation of client devices connecting to a server for video communication in a first communication system according to one embodiment.

[0081] Since operations 222 to 228 of FIG. 2b correspond to operations 202 to 208 of FIG. 2a, a detailed description thereof will be omitted.

[0082] As shown in FIG. 2a, the first client device (102) may transmit an I-frame generation unavailable response message in response to the I-frame generation request message of the server (108). Alternatively, the first client device (102) may perform the operations shown in FIG. 2b in response to the I-frame generation request message of the server (108).

[0083] Referring to FIG. 2B, at operation 230, the first client device (102) may transmit an I-frame generation response message to the server (108) in response to the I-frame generation request message received from the server (108). In one example, the I-frame generation response message may include information indicating that generation of an I-frame is possible, information indicating that provision of a new GOP is possible, or one of the new GOPs generated by the first client device (102). In one example, when the I-frame generation response message does not include a new GOP, the new GOP may be transmitted after the I-frame generation response message is transmitted. The new GOP may include a new I-frame and may be transmitted in a stream form.

[0084] In operation 232, the server (108) may receive an I-frame creation response message or a new GOP and update the first GOP stored in the cache (110) with the new GOP. For example, the server (108) may delete the first GOP stored in the cache (110) and store the new GOP in the cache (110) as the updated first GOP.

[0085] [Table 2] below is a table showing an example of the updated first GOP as a GOP stored in the cache (110).

[0086]

[0087] As illustrated in [Table 2], the server (108) can update the first GOP (e.g., IPPBBPP...) of [Table 1] previously stored in the cache (110) to a new GOP (e.g., IPBPBPP...).

[0088] In operation 234, the server (108) may transmit the updated first GOP stored in the cache (110) to the second client device (104). The second client device (104) may decode the frames included in the first GOP based on the I frame included in the updated first GOP and display the decoding result on the screen.

[0089] FIG. 3 is a signal flow diagram showing an operation in which a new client device connects to a server while client devices perform video communication in a first communication system according to one embodiment.

[0090] Referring to FIG. 3, in operation 302, a first client device (102) may transmit a first stream including a first GOP to a server (108). The server (108) may receive the first stream from the first client device (102) to obtain the first GOP.

[0091] In operation 304, the second client device (104) can transmit a second stream containing a second GOP to the server (108). The server (108) can receive the second stream from the second client device (104) to obtain the second GOP.

[0092] In one example, a first client device (102) and a second client device (104) may be connected to a server (108) and performing a video call. In one example, operations 302 and 304 may be performed after the operations of FIG. 2A or FIG. 2B are performed. Operations 302 and 304 may be performed periodically and may be performed at the same or different times.

[0093] In operation 306, the server (108) may store the first GOP and the second GOP obtained from the first client device (102) and the second client device (104) in the cache (110). For example, the server (108) may store the first GOP and the second GOP in the cache (110) as shown in [Table 3] below.

[0094]

[0095] In one example, when the server (108) receives one or more GOPs from each of the first client device (102) and the second client device (104), the server (108) may store the most recently received GOP or the last received GOP among the one or more GOPs in the cache (110). The server (108) may perform a GOP forwarding operation for a video call, for example, an operation of forwarding the second GOP to the first client device (102) and an operation of forwarding the second GOP to the second client device (104).

[0096] In operation 308, a third client device (106) may connect to a server (108) to perform a video call.

[0097] In operation 310, the server (108) may transmit an I-frame creation request message to the first client device (102) in response to the third client device (106) being connected.

[0098] In operation 312, the server (108) may transmit an I-frame creation request message to the second client device (104) in response to the third client device (106) connecting.

[0099] For example, actions 310 and 312 may be performed sequentially, in reverse order, or simultaneously or in parallel.

[0100] In operation 314, the first client device (102) may transmit an I-frame generation impossibility response message to the server (108) in response to receiving the I-frame generation request message. In one example, the first client device (102) may transmit the I-frame generation impossibility response message to the server (108) when it is impossible to generate an I-frame or when it is impossible to provide a new GOP. The I-frame generation impossibility response message may include information indicating that the first client device (102) is unable to generate an I-frame (or provide a new GOP).

[0101] In operation 316, in response to receiving the I-frame creation request message, the second client device (104) may transmit an I-frame creation response message to the server (108). In one example, the I-frame creation response message may include information indicating that generation of an I-frame is possible, information indicating that provision of a new GOP is possible, or one of the new GOPs generated by the second client device (104). In one example, if the I-frame creation response message does not include a new GOP, the new GOP may be transmitted after the I-frame creation response message is transmitted. The new GOP may include a new I-frame and may be transmitted in a stream form.

[0102] In one example, actions 314 and 316 may be performed sequentially, in reverse order, or simultaneously or in parallel.

[0103] In operation 318, the server (108) may update the second GOP stored in the cache (110) with the new GOP in response to receiving the I-frame creation response message or the new GOP from the second client device (104). For example, the server (108) may delete the second GOP stored in the cache (110) and store the new GOP in the cache (110) as the updated second GOP.

[0104] [Table 4] below is a table showing an example of the updated second GOP stored in the cache (110).

[0105]

[0106] As illustrated in [Table 4], the server (108) may update the second GOP (e.g., IBPPBPB...) of [Table 3], which is previously stored in the cache (110), to a new GOP (e.g., IPPPBPB...). In one example, the server (108) may not perform an update of the first GOP stored in the cache (110) based on receiving an I-frame generation impossibility response message from the first client device (102).

[0107] In operation 320, the server (108) may transmit the first GOP and the updated second GOP stored in the cache (110) to the third client device (106) as illustrated in [Table 4]. In one example, the server (108) may transmit an event to the third client device (106) to display a phrase such as “Live video will be transmitted shortly” before the third client device (106) is connected in operation 308 and operation 320 is performed.

[0108] According to an example, the third client device (104) may decode frames included in the first GOP based on the I frame included in the first GOP and display the decoding result on the screen. The third client device (104) may decode frames included in the second GOP based on the I frame included in the updated second GOP and display the decoding result on the screen.

[0109] In one example, while performing operation 320, the server (108) may receive a new GOP from at least one of the first client device (102) and the second client device (104). In this case, the server (108) may delete a GOP stored in the cache (110) corresponding to the at least one client device and transmit the received new GOP to the third client device (106). For example, the server (108) may receive a new GOP from the first client device (102) while transmitting the first GOP stored in the cache (110) to the third client device (106). In this case, the server (108) may delete the first GOP stored in the cache (110) and transmit the new GOP to the third client device (106). The server (108) may transmit the new GOP to the third client device (106) while storing it in the cache (110), transmit the new GOP to the third client device (106) and then store it in the cache (110), or transmit the new GOP to the third client device (106) after storing it in the cache (110). The third client device (106) may receive a real-time stream from the time it receives the new GOP.

[0110] In one example, a third client device (106) may connect to a server (108) in operation 308 and transmit a third stream. In one example, the third stream may include at least one GOP. For example, the third stream may include a third GOP. In one example, the third client device (106) may transmit information of the third client device (106) to the server (108) together with the third stream or separately. For example, the information of the third client device (106) may include at least one of third ID information for identifying the third client device (106) or hardware specification information of the third client device (106) (e.g., encoding information, decoding information, resolution information, or frame rate information).

[0111] In one example, the server (108) may receive a third stream from a third client device (106) and store a third GOP included in the received third stream in the cache (110). In one example, when the server (108) receives information of the third client device (106), the server (108) may store the third GOP corresponding to the third ID information. In one example, the server (108) may store hardware specification information of the third client device (106) in the cache (110) or in a storage device other than the cache (110). In one example, the server (108) may transmit the third GOP to the first client device (102) and the second client device (104) so ​​that the image of the third client device (106) is displayed.

[0112] For example, the server (108) may identify client devices that cannot immediately generate I-frames in advance and store and manage the GOPs of the identified client devices in the cache (110). Based on hardware specification information received when each client device is connected, the server (108) may identify client devices that can or cannot immediately generate I-frames (e.g., client devices that generate I-frames at preset intervals) in response to a request from the server (108).

[0113] For example, the server (108) may identify the first client device (102) as a client device that cannot immediately generate an I-frame, and may identify the second client device (104) as a client device that can immediately generate an I-frame. Based on this, the server (108) may store the first GOP, which is the GOP of the first client device (102), in the cache (110), and may obtain the second GOP, which is the GOP of the second client device (104), based on the I-frame generation request / response message. The server (108) may transmit the first GOP stored in the cache (110) and the second GOP obtained based on the I-frame generation request / response message to the third client device (106) that has newly participated in the video call. For example, the server (108) can transmit the first GOP stored in the cache (110) to the third client device (106) as soon as the third client device (106) is connected, and the second GOP can be transmitted to the third client device (106) as soon as it is obtained based on the I-frame creation request / response message.

[0114] After the embodiment illustrated in FIG. 3 is performed, one or more fourth client devices may connect to the server (108). In this case, the server (108) may perform operations similar to those illustrated in FIG. 3. For example, in response to the connection of one or more fourth client devices, the server (108) may transmit an I-frame generation request message to each of the first client device (102), the second client device (104), and the third client device (106). When a client device that has transmitted an I-frame generation impossibility response message in response to the I-frame generation request message is identified, the server (108) may transmit a GOP stored in the cache (110) for the identified client device to the one or more fourth client devices. When a client device that has transmitted an I-frame generation response message in response to the I-frame generation request message is identified, the server (108) may transmit a new GOP provided from the identified client device to the one or more fourth client devices.

[0115] FIG. 4 is a diagram illustrating a second communication system for video communication according to one embodiment.

[0116] Referring to FIG. 4, the second communication system (400) may include a plurality of electronic devices. For example, the plurality of electronic devices may include a first electronic device (402), a second electronic device (404), and a third electronic device (406). The first electronic device (402), the second electronic device (404), and the third electronic device (406) may correspond to the first client device (102), the second client device (104), and the third client device (106) of the first communication system (100) described above. The plurality of electronic devices may include one or more electronic devices in addition to the three electronic devices described above, or may include fewer than three electronic devices.

[0117] In one example, the first electronic device (402), the second electronic device (404), and the third electronic device (406) can communicate directly without going through a server (e.g., server (108) of FIG. 1). The direct communication can include peer-to-peer (P2P) communication (e.g., Wi-Fi direct communication, or WebRTC (web real-time communication) that allows web browsers to communicate with each other without the aid of plug-ins).

[0118] According to an example, the first electronic device (402), the second electronic device (404), and the third electronic device (406) may each include a first cache (412), a second cache (414), and a third cache (416) as memories for storing received GOPs. The first electronic device (402) may store the second GOP and the third GOP received from the second electronic device (404) and the third electronic device (406) in the first cache (412). The second electronic device (404) may store the first GOP and the third GOP received from the first electronic device (402) and the third electronic device (406) in the second cache (414). The third electronic device (406) can store the first GOP and the second GOP received from the first electronic device (402) and the second electronic device (404) in the third cache (416).

[0119] For example, the first cache (412), the second cache (414), and the third cache (416) can each store one or more GOPs for each electronic device. Hereinafter, it will be described as an example that the first cache (412), the second cache (414), and the third cache (416) store one GOP for each electronic device. The one GOP stored for each electronic device can be the most recently received GOP or the last received GOP. For example, the first electronic device (402) can store the most recently received GOP or the last received GOP among one or more GOPs received from the second electronic device (404) in the first cache (412) corresponding to the second electronic device (404).

[0120] According to an example, a first electronic device (402), a second electronic device (404), and a third electronic device (406) can exchange information with each other. For example, the first electronic device (402) can receive information from the second electronic device (404) and information from the third electronic device (406), the second electronic device (404) can receive information from the first electronic device (402) and information from the third electronic device (406), and the third electronic device (406) can receive information from the first electronic device (402) and information from the second electronic device (404).

[0121] According to one example, the information of the first electronic device (402) may include at least one of first ID information for identifying the electronic device (402), or hardware specification information of the electronic device (402) (e.g., encoding information, decoding information, resolution information, or frame rate information).

[0122] According to one example, the information of the second electronic device (404) may include at least one of second ID information for identifying the second electronic device (404), or hardware specification information of the second electronic device (404) (e.g., encoding information, decoding information, resolution information, or frame rate information).

[0123] According to one example, the information of the third electronic device (406) may include at least one of third ID information for identifying the third electronic device (406), or hardware specification information of the third electronic device (406) (e.g., encoding information, decoding information, resolution information, or frame rate information).

[0124] FIG. 5 is a signal flow diagram illustrating an operation of performing communication between electronic devices for video communication in a second communication system according to one embodiment.

[0125] Referring to FIG. 5, in operation 502, the first electronic device (402) and the second electronic device (404) may perform a connection. For example, the first electronic device (402) and the second electronic device (404) may perform an operation of establishing a connection for direct communication between electronic devices, such as a P2P connection.

[0126] In operation 504, the first electronic device (402) may generate a first group of objects (GOP) and store it in the first cache (412). In one example, the first electronic device (402) may generate one or more GOPs and store the most recently generated GOP among the one or more generated GOPs as the first GOP in the first cache (412). In one example, the one or more GOPs generated by the first electronic device (402) may include one or more groups of frames associated with image data captured by a camera of the first electronic device (402).

[0127] In operation 506, the second electronic device (404) may generate a second GOP and store the second GOP in the second cache (414). In one example, the second electronic device (404) may generate one or more GOPs and store the most recently generated GOP among the one or more generated GOPs as the second GOP in the second cache (414). In one example, the one or more GOPs generated by the second electronic device (404) may include one or more frame groups associated with image data captured by a camera of the second electronic device (404).

[0128] In operation 508, the first electronic device (402) may transmit an I-frame provision request message to the second electronic device (404). In one example, the I-frame provision request message may be a message requesting provision of an I-frame, or a message requesting provision of a GOP including an I-frame.

[0129] In operation 510, the second electronic device (404) may transmit an I-frame provision response message to the first electronic device (402) in response to the I-frame provision request message of the first electronic device (402). In one example, the I-frame provision response message may include information indicating that provision of an I-frame is possible, information indicating that provision of a GOP is possible, or one of a GOP generated by the second electronic device (404). In one example, when the I-frame provision response message does not include a GOP, the GOP may be transmitted after the I-frame provision response message is transmitted. The GOP included in the I-frame provision response message or the GOP transmitted after the I-frame provision response message is transmitted may be a second GOP stored in the second cache (414) and may be transmitted in the form of a stream.

[0130] In operation 512, the second electronic device (404) may transmit an I-frame provision request message to the first electronic device (402).

[0131] In operation 514, the first electronic device (402) may transmit an I-frame provision response message to the second electronic device (404) in response to the I-frame provision request message of the second electronic device (404). In one example, the I-frame generation response message transmitted by the first electronic device (402) may include one of information indicating that provision of an I-frame is possible, information indicating that provision of a GOP is possible, or a GOP generated by the first electronic device (402). In one example, when the I-frame provision response message does not include a GOP, the GOP may be transmitted after the I-frame provision response message is transmitted. The GOP included in the I-frame provision response message or the GOP transmitted after the I-frame provision response message is transmitted may be a first GOP stored in the first cache (412) and may be transmitted in the form of a stream.

[0132] In one example, unlike as illustrated in FIG. 5, GOP exchange may be performed without transmitting and receiving an I-frame provision request message. For example, the first electronic device (402) may transmit the first GOP to the second electronic device (404) after performing operation 504, or may transmit the first GOP to the second electronic device (404) before generating the first GOP and storing the generated first GOP in the first cache (412). For example, the second electronic device (404) may transmit the second GOP to the first electronic device (404) after performing operation 506, or may transmit the second GOP to the first electronic device (404) before generating the second GOP and storing the generated second GOP in the second cache (414).

[0133] FIG. 6 is a signal flow diagram illustrating an operation in which a new electronic device is connected for a video call while performing video communication between electronic devices in a second communication system according to one embodiment.

[0134] Referring to FIG. 6, in operation 600, the first electronic device (402) and the second electronic device (404) may be in a state of performing a video call. For example, the first electronic device (402) and the second electronic device (404) may be in a state of performing a video call based on the operations illustrated in FIG. 5.

[0135] In operation 602, the first electronic device (402) may periodically or aperiodically update the first GOP of the first cache (412). For example, the first electronic device (402) may generate a GOP based on a preset cycle and update the first GOP stored in the first cache (412) with the generated GOP. As another example, the first electronic device (402) may update the first GOP stored in the first cache (412) with the generated GOP every time the generation of the GOP is completed.

[0136] In operation 604, the second electronic device (404) may periodically or aperiodically update the second GOP of the second cache (414). For example, the second electronic device (404) may generate a GOP based on a preset cycle and update the second GOP stored in the second cache (414) with the generated GOP. As another example, the second electronic device (404) may update the second GOP stored in the second cache (412) with the generated GOP every time the generation of the GOP is completed.

[0137] In one example, the cycles at which the first electronic device (402) and the second electronic device (404) generate GOPs may be the same or different. In one example, the first electronic device (402) and the second electronic device (404) may exchange updated first GOPs and second GOPs while performing a video call.

[0138] In operation 606, the third electronic device (406) may establish a connection with the first electronic device (402) to participate in a video call being performed by the first electronic device (402) and the second electronic device (404). For example, the third electronic device (406) may establish a connection for direct communication, such as a P2P connection, with the first electronic device (402).

[0139] In operation 608, the third electronic device (406) may establish a connection with the second electronic device (404) to participate in a video call being performed by the first electronic device (402) and the second electronic device (404). For example, the third electronic device (406) may establish a connection for direct communication, such as a P2P connection, with the second electronic device (404).

[0140] In operation 610, the third electronic device (406) may transmit an I-frame provision request message to the first electronic device (402) based on being connected to the first electronic device (402).

[0141] In operation 612, the third electronic device (406) may transmit an I-frame provision request message to the second electronic device (404) based on being connected to the second electronic device (404).

[0142] In operation 614, the first electronic device (402) may transmit an I-frame provision response message to the third electronic device (406) in response to the I-frame provision request message of the third electronic device (406). In one example, the I-frame provision response message may include the first GOP (or the updated first GOP) stored in the first cache (412). In one example, when the I-frame provision response message does not include the first GOP, the first GOP stored in the first cache (412) may be transmitted to the third electronic device (406) in the form of a stream after the first frame provision response message is transmitted.

[0143] In operation 616, the second electronic device (404) may transmit an I-frame provision response message to the third electronic device (406) in response to the I-frame provision request message of the third electronic device (406). In one example, the I-frame provision response message may include a second GOP (or an updated second GOP) stored in the second cache (414). In one example, when the I-frame provision response message does not include a second GOP, the second GOP stored in the second cache (414) may be transmitted to the third electronic device (406) in a stream form after the second frame provision response message is transmitted.

[0144] According to an example, unlike that illustrated in FIG. 6, GOP transmission may be performed without transmitting or receiving an I-frame provision request message. For example, the first electronic device (402) may transmit a first GOP stored in the first cache (412) to the third electronic device (406) in response to being connected to the third electronic device (406) based on operation 606. For example, the second electronic device (404) may transmit a second GOP stored in the second cache (414) to the third electronic device (406) in response to being connected to the third electronic device (406) based on operation 608.

[0145] In one example, the third electronic device (406) may transmit a third GOP stored in the third cache (414) to the first electronic device (402) in response to being connected to the first electronic device (402) based on operation 606.

[0146] According to an example, the third electronic device (406) may transmit the third GOP stored in the third cache (414) to the first electronic device (402) in response to being connected to the second electronic device (404) based on operation 608.

[0147] In one example, the third GOP stored in the third cache (414) may be the most recently generated GOP among one or more GOPs generated by the third electronic device (406). In one example, the one or more GOPs generated by the third electronic device (406) may include one or more frame groups associated with image data captured by a camera of the third electronic device (406).

[0148] As described above, since GOPs for video calls between electronic devices are exchanged without delay after a connection operation, each electronic device can decode frames included in the received GOP based on the I-frames included in the received GOP. Each electronic device can display a screen based on the decoding results, thereby enabling smooth video calls without delay.

[0149] As described above, the delay problem that occurs when a new client device or electronic device participates in a video call can be solved by operations based on the cache (110) included in the server of the first communication system (100) or the cache included in each electronic device (e.g., the first cache (412), the second cache (414), and the third cache (416)). In this regard, the operation of the server (108) of the first communication system (100) and the operation of the electronic device (e.g., any one of the first electronic device (402), the second electronic device (404), and the third electronic device (406)) of the second communication system (400) are described below.

[0150] First, the operation of the server (108) of the first communication system (100) will be described with reference to FIGS. 7 to 10.

[0151] FIG. 7 is a flowchart illustrating an operation in which a server transmits a GOP of a first client device to a second client device in a first communication system according to one embodiment.

[0152] Referring to FIG. 7, at operation 702, the server (108) in the first communication system (100) may receive one or more GOPs associated with image data of the first client device (102) from the first client device (102). In one example, the first client device (102) may be connected to the server (108) for a video call.

[0153] In operation 704, the server (108) may store the last received first GOP among one or more GOPs received from the first client device (102) in the cache (110).

[0154] In operation 706, the server (108) may identify that a second client device (104) has connected to perform a video call with the first client device (102).

[0155] At operation 708, the server (108) may transmit the first GOP stored in the cache (110) to the second client device (104) based on identifying that the second client device (104) has connected.

[0156] FIG. 8 is a flowchart illustrating another operation in which a server transmits a GOP of a first client device to a second client device in a first communication system according to one embodiment.

[0157] Referring to FIG. 8, at operation 802, the server (108) may receive one or more GOPs associated with video data of the first client device (102) from the first client device (102). In one example, the first client device (102) may be connected to the server (108) for a video call.

[0158] In operation 804, the server (108) may store the last received first GOP among one or more GOPs received from the first client device (102) in the cache (110).

[0159] In operation 806, the server (108) can identify that a second client device (104) is connected to perform a video call with the first client device (102).

[0160] At operation 808, the server (108) may transmit a request message requesting the first client device (102) to provide a new GOP (or an I-frame creation request message requesting the creation of a new I-frame) based on identifying that the second client device (104) has connected.

[0161] At operation 810, the server (108) may determine, in response to the request message, whether a new GOP is received from the first client device (102).

[0162] At operation 812, the server (108) may update the first GOP stored in the cache (110) based on the new GOP received from the first client device (102). For example, the server (108) may delete the first GOP stored in the cache (110) and store the new GOP in the cache (110) as the updated first GOP.

[0163] In operation 814, the server (108) may transmit the updated first GOP to the second client device (104). In one example, the server (108) may transmit the received new GOP to the second client device (104) before updating the first GOP stored in the cache (110). In this case, after transmitting the new GOP, the server (108) may update the first GOP stored in the cache (110) with the new GOP.

[0164] At operation 816, the server (108) may transmit the first GOP stored in the cache (110) to the second client device (104) without an update operation, based on the fact that no new GOP has been received from the first client device (102).

[0165] FIG. 9 is a flowchart illustrating an operation in which a server transmits a GOP of a second client device to a first client device in a first communication system according to one embodiment.

[0166] Referring to FIG. 9, at operation 902, the server (108) can identify that a second client device (104) is connected to perform a video call with the first client device (102) that is connected.

[0167] At operation 904, the server (108) may receive a second GOP associated with image data of the second client device (104) from the second client device (104) based on identifying that the second client device (104) is connected.

[0168] In operation 906, the server (108) may store the second GOP received from the second client device (104) in the cache (110).

[0169] At operation 908, the server (108) may transmit the second GOP stored in the cache (110) to the first client device (102).

[0170] In one example, the server (108) may transmit the second GOP received from the second client device (104) to the first client device (102) before storing it in the cache (110). For example, the server (108) may transmit the second GOP received from the second client device (104) to the first client device (102) and store the transmitted second GOP in the cache (110).

[0171] FIG. 10 is a flowchart illustrating an operation in which a server transmits GOPs of first and second client devices to a third client device participating in a video call in a first communication system according to one embodiment.

[0172] Referring to FIG. 10, in operation 1002, the server (108) may identify that one or more third client devices (e.g., third client devices (106)) are connected to perform a video call with the first client device (102) and the second client device (104).

[0173] In operation 1004, the server (108) may transmit a first GOP and a second GOP stored in the cache (110) to one or more third client devices based on identifying that one or more third client devices have connected. In one example, the first GOP may be a GOP of a first client device (102) stored in the cache (110), and the second GOP may be a GOP of a second client device (104) stored in the cache (110).

[0174] In one example, the server (108) may receive one or more third GOPs from one or more third client devices and transmit them to the first client device (102) and the second client device (104). The one or more third GOPs may also be stored in the cache (110) by the server (108).

[0175] FIG. 11 is a flowchart illustrating an operation in which a server transmits a new GOP received from a first client device to a second client device in a first communication system according to one embodiment.

[0176] Referring to FIG. 11, in operation 1102, the server (108) may receive a third GOP from the first client device (102) while transmitting the first GOP stored in the cache (110) to the second client device (104). In one example, the third GOP received from the first client device (102) may be a new GOP generated by the first client device (102), or a GOP including a new I-frame.

[0177] In operation 1104, the server (108) may update the cache (110) based on receiving the third GOP. For example, the server (108) may delete the first GOP from the cache (110) and store the third GOP in the cache (110) so that the third GOP is stored instead of the first GOP corresponding to the first client device (102).

[0178] At operation 1106, the server (108) may stop transmitting the first GOP and transmit the third GOP stored in the updated cache (110) to the second client device (104).

[0179] In one example, the server (108) may transmit the third GOP received from the first client device (102) to the second client device (102) before storing it in the cache (110). For example, the server (108) may transmit the third GOP received from the first client device (102) to the second client device (104) and store the transmitted second GOP in the cache (110).

[0180] Next, the operation of the electronic device of the second communication system (400) will be described with reference to FIGS. 12 and 13.

[0181] FIG. 12 is a flowchart illustrating an operation of a first electronic device transmitting a GOP of the first electronic device to a second electronic device in a second communication system according to one embodiment.

[0182] Referring to FIG. 12, in operation 1202, a first electronic device (402) may perform a connection operation with a second electronic device (404) to perform a video call.

[0183] In operation 1204, the first electronic device (402) may generate a first GOP associated with image data of the first electronic device (402).

[0184] In operation 1206, the first electronic device (402) may store the first GOP in a cache (e.g., the first cache (412)).

[0185] In operation 1208, the first electronic device (402) may transmit the stored first GOP to the second electronic device (404).

[0186] FIG. 13 is a flowchart illustrating an operation of a first electronic device updating a GOP stored in a cache in a second communication system according to one embodiment.

[0187] Referring to FIG. 13, in operation 1302, the first electronic device (402) can generate a second GOP based on a preset cycle.

[0188] In operation 1304, the first electronic device (402) may delete the first GOP stored in a cache (e.g., the first cache (412)) in response to generating the second GOP.

[0189] In operation 1306, the first electronic device (402) may store the second GOP in the cache based on the first GOP being deleted from the cache.

[0190] Figure 14 is a block diagram of a server according to one embodiment.

[0191] Referring to FIG. 14, the server (108) of the first communication system (100) may include a transceiver (1402), a memory (1404), and a processor (1406). According to one example, the server (108) may include additional components (e.g., a communication module for communication with another server) in addition to the components illustrated, or may omit at least one of the components illustrated.

[0192] In one example, the transceiver (1402) can communicate with at least one client device. For example, the transceiver (1402) can communicate with at least one client device based on any of a variety of wired or wireless communication protocols, such as Ethernet, GSM, EDGE, CDMA, TDMA, LTE, LTE-A, NR, Wi-Fi, or Bluetooth.

[0193] In one example, the memory (1404) may store various information or data related to the operation of the server (108) and may store at least one program. In one example, the memory (104) may include a cache (110).

[0194] According to one example, the processor (1406) is electrically or operatively connected to the transceiver (1402) and the memory (1404) and can execute at least one instruction of a program stored in the memory (1404). There may be one or more processors (1406) and can perform the operations of the server (108) described above, for example, the operations of the server (108) described in FIGS. 1 to 3 or FIGS. 7 to 11.

[0195] For example, the processor (1406) may control the transceiver (1402) to receive, from the first client device (102) connected for a video call, one or more GOPs associated with video data of the first client device (102), store the last first GOP received among the one or more GOPs received in the cache (110), identify that a second client device (104) has connected to perform a video call with the first client device (102), and transmit the first GOP stored in the cache (110) to the second client device (104) based on the identification that the second client device (104) has connected.

[0196] In one example, the first GOP transmitted to the second client device (104) may include a first type of frame (e.g., an I frame) used to decode the frames included in the first GOP.

[0197] According to one example, in response to the connection of the second client device (104), the processor (1406) may control the transceiver (1402) to receive a second GOP associated with image data of the second client device (104) from the second client device (104), store the received second GOP in the cache (110), and transmit the second GOP stored in the cache (110) to the first client device (102).

[0198] According to one example, the processor (1406) may identify that one or more third client devices (106) are connected to perform a video call with the first client device (102) and the second client device (104), and, based on the identification that one or more third client devices (106) are connected, control the transceiver (1402) to transmit the stored first GOP and the stored second GOP to the one or more third client devices (106).

[0199] According to one example, the processor (1406) controls the transceiver (1402) to transmit a request message requesting that a new GOP be provided to the first client device (102) based on identifying that a second client device (104) has connected, and in response to the request message, receives a response message indicating that provision of a new GOP is impossible from the first client device (102), and controls the transceiver (1402) to transmit the stored first GOP to the second client device (104) based on the received response message.

[0200] According to one example, the processor (1406) controls the transceiver (1402) to transmit a request message requesting that a new GOP be provided to the first client device (102) based on identifying that a second client device (104) has connected, and in response to the request message, receives a third GOP as a new GOP from the first client device (102), and in response to receiving the third GOP, controls the transceiver (1402) to delete the stored first GOP from the cache (110), store the received third GOP in the cache (110), and transmit the stored third GOP to the second client device (104).

[0201] According to one example, the processor (1406) may control the transceiver (1402) to receive a third GOP from the first client device (102) while transmitting the first GOP stored in the cache (110) to the second client device (104), and in response to receiving the third GOP, to delete the first GOP stored in the cache (110), store the received third GOP in the cache (110), stop transmitting the first GOP, and transmit the third GOP stored in the cache (110) to the second client device (104).

[0202] FIG. 15 is a block diagram of an electronic device according to one embodiment.

[0203] Referring to FIG. 15, the electronic device may include a transceiver (1502), a memory (1504), and a processor (1506). In one example, the electronic device may include additional components (e.g., a display and / or a camera) in addition to the illustrated components, or may omit at least one of the illustrated components. In one example, the electronic device may be a client device (e.g., one of the first client device (102), the second client device (104), and the third client device (106)) included in the first communication system (100). In one example, the electronic device may be an electronic device (e.g., one of the first electronic device (402), the second electronic device (404), and the third electronic device (406)) included in the second communication system (400).

[0204] In one example, the transceiver (1502) may communicate with the server (108) or another electronic device. For example, the transceiver (1502) may communicate with the server (108) or another electronic device based on any of a variety of wired or wireless communication protocols, such as Ethernet, GSM, EDGE, CDMA, TDMA, LTE, LTE-A, NR, Wi-Fi, or Bluetooth.

[0205] In one example, the memory (1504) can store various information or data related to the operation of the electronic device and can store at least one program. In one example, the memory (1504) can include a cache (e.g., one of the first cache (412), the second cache (414), and the third cache (416)).

[0206] In one example, the processor (1506) is electrically or operatively connected to the transceiver (1502) and the memory (1504) and can execute at least one instruction of a program stored in the memory (1504). There may be one or more processors (1506) and they can perform the operations of the electronic device described above, for example, the operations of the client device or electronic device described in FIGS. 1 to 13.

[0207] For example, the processor (1506) may perform a connection operation with at least one electronic device to perform a video call, and in response to performing the connection operation, control the transceiver (1502) to generate a first GOP associated with image data of the electronic device, store the generated first GOP in a cache, and transmit the first GOP stored in the cache to the at least one electronic device.

[0208] In one example, a first GOP transmitted to at least one electronic device may include a first type of frame (e.g., an I frame) used to decode frames included in the first GOP.

[0209] According to an example, the processor (1506) may generate a second GOP based on a preset cycle, delete a first GOP stored in the cache, and store the generated second GOP in the cache.

[0210] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0211] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0212] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. In the server (108), Transmitter and receiver (1402); A memory (1404) including a cache (110) and storing at least one program; and At least one processor (1406) electrically connected to the memory (1404) and executing at least one instruction of a program stored in the memory (1404), At least one processor (1406) of the above: Through the above transceiver (1402), one or more GOPs (group of pictures) associated with the video data of the first client device (102) are received from the first client device (102) connected for a video call, Store the last received first GOP among the one or more received GOPs in the cache (110), Identifying that a second client device (104) is connected to perform a video call with the first client device (102), A server that controls the transceiver (1402) to transmit the stored first GOP to the second client device (104) based on identifying that the second client device (104) is connected.

2. In paragraph 1, At least one processor (1406) above, In response to the connection of the second client device (104), a second GOP associated with image data of the second client device (104) is received from the second client device (104) through the transceiver (1402), Store the received second GOP in the cache (110), A server that controls the transceiver (1402) to transmit the stored second GOP to the first client device (102).

3. In paragraph 2, At least one processor (1406) above, Identifying that one or more third client devices (106) are connected to perform a video call with the first client device (102) and the second client device (104), A server that controls the transceiver (1402) to transmit the stored first GOP and the stored second GOP to the one or more third client devices (106) based on identifying that the one or more third client devices (106) are connected.

4. In paragraph 1, At least one processor (1406) above, Based on the identification that the second client device (104) has connected, the transmitter / receiver (1402) is controlled to transmit a request message requesting that a new GOP be provided to the first client device (102). In response to the above request message, a response message indicating that provision of the new GOP is impossible is received from the first client device (102), A server that controls the transceiver (1402) to transmit the stored first GOP to the second client device (104) based on the received response message.

5. In paragraph 1, At least one processor (1406) above, Based on the identification that the second client device (104) has connected, the transmitter / receiver (1402) is controlled to transmit a request message requesting that a new GOP be provided to the first client device (102). In response to the above request message, a third GOP is received as the new GOP from the first client device (102), In response to receiving the third GOP, the stored first GOP is deleted from the cache (110) and the received third GOP is stored in the cache (110). A server that controls the transceiver (1402) to transmit the stored third GOP to the second client device (104).

6. In paragraph 1, At least one processor (1406) above, While transmitting the stored first GOP to the second client device (104), the third GOP is received from the first client device (102) through the transceiver (1402), In response to receiving the third GOP, the stored first GOP is deleted from the cache (110) and the received third GOP is stored in the cache (110). A server that controls the transceiver (1402) to stop transmission of the first GOP and transmit the stored third GOP to the second client device (104).

7. In any of paragraphs 1 to 6, A server, wherein the first GOP transmitted above includes a first type of frame used to decode frames included in the first GOP transmitted above.

8. In the first electronic device (402), Transmitter and receiver (1502); A memory (1504) including a cache (412) and storing at least one program; and At least one processor (1506) electrically connected to the memory (1504) and executing at least one instruction of a program stored in the memory (1504), At least one processor (1506) of the above: Performing a connection operation with at least one second electronic device (404, 406) to perform a video call; In response to performing the above connection operation, a first GOP (group of pictures) associated with image data of the first electronic device (402) is generated, Store the first GOP generated above in the cache (412), A first electronic device that controls the transceiver (1502) to transmit the stored first GOP to at least one second electronic device (404, 406).

9. In paragraph 8, At least one processor (1506) above, Generate a second GOP based on a preset cycle, Delete the above stored first GOP from the cache (412), A first electronic device that stores the generated second GOP in the cache (412).

10. In either of paragraphs 8 and 9, A first electronic device, wherein the transmitted first GOP includes a first type of frame used for decoding frames included in the transmitted first GOP.

11. In a method for supporting video calls by a server (108), An operation (702) of receiving one or more GOPs (group of pictures) associated with video data of a first client device (102) connected for the video call; An operation (704) of storing the last received first GOP among the one or more received GOPs in the cache (110) of the server (108); An operation (706) for identifying that a second client device (104) is connected to perform a video call with the first client device (102); and A method comprising the operation (708) of transmitting the stored first GOP to the second client device (104) based on identifying that the second client device (104) is connected.

12. In paragraph 11, An operation (904) of receiving a second GOP associated with image data of the second client device (104) from the second client device (104) based on identifying that the second client device (104) is connected; An operation (906) of storing the received second GOP in the cache (110); and A method further comprising the operation (908) of transmitting the stored second GOP to the first client device (102).

13. In paragraph 11 or 12, A method wherein the transmitted first GOP includes a first type of frame used for decoding frames included in the transmitted first GOP.

14. In a method for a first electronic device (402) to perform a video call, An action (1202) of performing a connection action with at least one second electronic device (404, 406) to perform a video call; In response to performing the above connection operation, an operation (1204) of generating a first group of pictures (GOP) associated with image data of the first electronic device (402); An operation (1206) of storing the generated first GOP in the cache (412) of the first electronic device (402); and A method comprising the operation (1208) of transmitting the stored first GOP to at least one second electronic device (404, 406).

15. In paragraph 14, A method wherein the transmitted first GOP includes a first type of frame used for decoding frames included in the transmitted first GOP.

Citation Information

Patent Citations

  • Antiviral compositions comprising Rhododendron fortunei extract

    KR1020240170072A

  • CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC

    KR102274747B1

  • Method and system for allocating wireless resources

    US20140189760A1

  • Method and device for determining properties of a graphical overlay for a video stream

    US20160165271A1

  • Video communication data security

    US20210099433A1