Method for acquiring thumbnails for duplicate files present in source devices, and sink device using same

The method enables a sink device to efficiently handle duplicate files by optimizing the allocation of file requests based on system resource information, addressing inefficiencies in existing technologies by minimizing redundant data processing.

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

Patent Information

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

AI Technical Summary

Technical Problem

Existing technologies face inefficiencies when receiving duplicate files and their thumbnails from multiple source devices, as they often receive redundant information, leading to increased processing time and resource utilization.

Method used

A method for a sink device to efficiently obtain thumbnails for duplicate files by receiving metadata and system resource information from source devices, detecting duplicate files, determining an allocation number for each source device, and requesting thumbnails or duplicate files accordingly.

Benefits of technology

This method allows the sink device to minimize the time and resources required to obtain thumbnails for duplicate files by optimizing the allocation of file requests based on system resource information, thereby improving efficiency and reducing redundancy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024006776_12062025_PF_FP_ABST
    Figure KR2024006776_12062025_PF_FP_ABST
Patent Text Reader

Abstract

Provided is a method by which a sink device acquires thumbnails for duplicate files present in source devices. The method may comprise the steps of: receiving, from each of the source devices, metadata of multimedia files stored in the source device and system resource information of the source device; on the basis of the metadata of the multimedia files of the source device, detecting, for each of the source devices, the duplicate files from among the multimedia files stored in the source device; on the basis of the system resource information of the source device, determining, for each of the source devices, the allocated number for the source device from among the number of duplicate files stored in the source device; and acquiring, for each of the source devices, thumbnails of the duplicate files by requesting duplicate files of the allocated number or thumbnails of the duplicate files of the allocated number.
Need to check novelty before this filing date? Find Prior Art

Description

Method for obtaining thumbnails for duplicate files existing in source devices and a sync device using the same

[0001] The present disclosure relates to a sink device and source devices. More specifically, the present disclosure relates to a method for a sink device to obtain thumbnails for duplicate files existing in source devices.

[0002] Technology is being utilized to connect a source device to a sink device and display files from the source device on the sink device. For example, a TV displays videos or images received from a smartphone.

[0003] If duplicate files exist on the source devices, it is inefficient for the sink device to receive duplicate files from all source devices. Similarly, if duplicate files exist on the source devices, it is inefficient for the sink device to receive thumbnails of the duplicate files from all source devices.

[0004] According to one aspect of the present disclosure, a method for a sink device to obtain thumbnails for duplicate files existing in source devices may be provided. The method may include receiving, from each of the source devices, metadata of multimedia files stored in the source device and system resource information of the source device. The method may include detecting, for each of the source devices, duplicate files among the multimedia files stored in the source device based on the metadata of the multimedia files of the source device. The method may include determining, for each of the source devices, an allocated number for the source device among the number of duplicate files stored in the source device based on the system resource information of the source device. The method may include obtaining thumbnails of the duplicate files by requesting, for each of the source devices, the allocated number of duplicate files or thumbnails of the allocated number of duplicate files.

[0005] According to one aspect of the present disclosure, a sink device for obtaining thumbnails for duplicate files existing in source devices may be provided. The sink device may include a memory storing one or more instructions and one or more processors executing the one or more instructions stored in the memory. The one or more processors may be configured to receive, from each of the source devices, metadata of multimedia files stored in the source device and system resource information of the source device by executing the one or more instructions. The one or more processors may be configured to detect, for each of the source devices, duplicate files among the multimedia files stored in the source device based on the metadata of the multimedia files of the source device by executing the one or more instructions. The one or more processors may be configured to determine, for each of the source devices, an allocation number for the source device among the number of duplicate files stored in the source device based on the system resource information of the source device by executing the one or more instructions. The one or more processors may be configured to obtain thumbnails of the duplicate files by requesting the allocated number of duplicate files or thumbnails of the allocated number of duplicate files for each of the source devices by executing the one or more instructions.

[0006] According to one aspect of the present disclosure, a computer-readable recording medium having recorded thereon a program for causing a sink device to execute any one of the aforementioned and hereinafter described methods for obtaining thumbnails for duplicate files existing in source devices may be provided.

[0007] FIG. 1 is a diagram illustrating a sink device and source devices according to one embodiment.

[0008] FIG. 2A is a diagram illustrating a duplication check module of a sink device according to one embodiment.

[0009] FIG. 2b is a diagram illustrating a monitoring module of a sink device according to one embodiment.

[0010] FIG. 2c is a diagram illustrating a scheduling module of a sink device according to one embodiment.

[0011] FIGS. 3A to 3C are diagrams illustrating scenarios in which a sink device obtains thumbnails according to embodiments.

[0012] FIG. 4 is a diagram illustrating a scheduling module and a generation module of a sink device according to one embodiment.

[0013] FIG. 5 is a diagram illustrating a scenario in which a sink device obtains thumbnails according to one embodiment.

[0014] Figures 6 and 7 are flowcharts of a method for a sink device to obtain thumbnails for duplicate files existing in source devices according to embodiments.

[0015] FIG. 8 is a flowchart of a method for a sink device to obtain duplicate files existing in source devices according to one embodiment.

[0016] FIGS. 9A and 9B are block diagrams of a sink device according to embodiments.

[0017] Hereinafter, terms used in this specification will be briefly described, and the present disclosure will be described in detail. In this disclosure, the expression “at least one of a, b, or c” can refer to “a,” “b,” “c,” “a and b,” “a and c,” “b and c,” “all of a, b, and c,” or variations thereof.

[0018] The terms used in this disclosure are selected from widely used, common terms, taking into account the functions of the disclosure. However, these terms may vary depending on the intentions of those skilled in the art, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, in which case their meanings will be described in detail in the relevant description. Therefore, the terms used in this disclosure should not be defined simply as names, but rather based on the meanings of the terms and the overall content of the disclosure.

[0019] Singular expressions may include plural expressions unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art described herein. Furthermore, terms containing ordinal numbers, such as "first" or "second," used herein may be used to describe various components, but such components should not be limited by such terms. Such terms are used solely to distinguish one component from another.

[0020] When a part of the specification is said to "include" a component, unless otherwise specifically stated, this does not exclude other components but rather implies the inclusion of other components. Furthermore, terms such as "part" and "module" used in the specification refer to a unit that processes at least one function or operation, which may be implemented in hardware, software, or a combination of hardware and software.

[0021] In this disclosure, “multimedia file” may mean any file that may include various media elements beyond text. For example, multimedia files may include image files, video files, audio files, and document files. For example, image file formats may include JPEG, PNG, GIF, TIFF, and BMP; video file formats may include MP4, MOV, WMV, AVI, and FLV; audio file formats may include WAV, FLAC, M4A, AAC, MP3, and WAV; and document file formats may include PDF, PPT, PPTX, DOC, and DOCX, but are not limited to the examples listed.

[0022] In the present disclosure, a “sink device” may mean an electronic device that receives multimedia files from a source device in a relationship with the source device.

[0023] In the present disclosure, a “source device” may mean an electronic device that transmits multimedia files to a sink device in a relationship with the sink device.

[0024] In the present disclosure, “duplicate file” may mean a multimedia file that is stored in duplicate on two or more source devices.

[0025] In the present disclosure, “thumbnail” may mean an indicator representing a multimedia file.

[0026] In this disclosure, “original file” may mean a multimedia file from which a thumbnail is generated.

[0027] Below, with reference to the attached drawings, embodiments of the present disclosure are described in detail 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.

[0028] The present disclosure will be described in detail with reference to the attached drawings below.

[0029] FIG. 1 is a drawing illustrating a sink device (100) and source devices (110, 120, 130) according to one embodiment.

[0030] The sink device (100) may be an electronic device that receives multimedia files from the source devices (110, 120, 130) in a relationship with the source devices (110, 120, 130). For example, the sink device (100) may include at least one of a television, a smart TV, a monitor, a smart monitor, a digital signage, a projector, a smart phone, a wearable device, a tablet, a laptop, or a personal computer (PC), but is not limited to the examples listed.

[0031] The source devices (110, 120, 130) may be electronic devices that transmit multimedia files to the sink device (100) in a relationship with the sink device (100). For example, each of the source devices (110, 120, 130) may include at least one of a camera, a smart phone, a wearable device, a tablet, a laptop, or a PC, but is not limited to the examples listed.

[0032] A sink device (100) may be connected to one or more source devices (110, 120, 130). According to one embodiment, FIG. 1 illustrates a sink device (100) connected to three source devices (110, 120, 130).

[0033] The sink device (100) can communicate with source devices (110, 120, 130). The sink device (100) can communicate with the source devices (110, 120, 130) via wireless communication or wired communication.

[0034] According to one embodiment, FIG. 1 illustrates source devices (110, 120, 130) storing multimedia files (A, B, C, D) and a sink device (100) that obtains thumbnails (a, b, c, d) of the multimedia files.

[0035] Additionally, in one embodiment, the first thumbnail (a) is a thumbnail of the first multimedia file (A), the second thumbnail (b) is a thumbnail of the second multimedia file (B), the third thumbnail (c) is a thumbnail of the third multimedia file (C), and the fourth thumbnail (d) is a thumbnail of the fourth multimedia file (D).

[0036] The sink device (100) can obtain thumbnails (a, b, c, d) by requesting thumbnails (a, b, c, d) from the source devices (110, 120, 130).

[0037] Alternatively, the sink device (100) may obtain thumbnails (a, b, c, d) by requesting multimedia files (A, B, C, D) from source devices (110, 120, 130) and generating thumbnails (a, b, c, d) using the multimedia files (A, B, C, D) received from the source devices (110, 120, 130).

[0038] The sink device (100) can display the acquired thumbnails (a, b, c, d). In addition, the sink device (100) can display the acquired multimedia files (A, B, C, D).

[0039] In one embodiment, the first to third source devices (110, 120, 130) store multimedia files (A, B, C, D) in duplicate. That is, the multimedia files (A, B, C, D) are duplicate files.

[0040] Since there are multiple source devices (110, 120, 130) storing duplicate files (A, B, C, D), there are multiple ways in which the sink device (100) can obtain thumbnails (a, b, c, d). For example, the sink device (100) can obtain thumbnails (a, b, c, d) by requesting the first source device (110) for the first and second duplicate files (A, B) or the first and second thumbnails (a, b), requesting the second source device (120) for the third duplicate file (C) or the third thumbnail (c), and requesting the third source device (130) for the fourth multimedia file (D) or the fourth thumbnail (d). Alternatively, the sink device (100) may obtain the thumbnails (a, b, c, d) by requesting the first duplicate file (A) or the first thumbnail (a) from the first source device (110), requesting the second and third duplicate files (B, C) or the second and third thumbnails (b, c) from the second source device (120), and requesting the fourth multimedia file (D) or the fourth thumbnail (d) from the third source device (130).

[0041] In order for the sink device (100) to efficiently obtain thumbnails of duplicate files, it must be determined which source device among the source devices (110, 120, 130) is used to efficiently obtain thumbnails of many duplicate files.

[0042] Below, various embodiments of a method for a sink device to efficiently obtain thumbnails of duplicate files from source devices storing duplicate files are described.

[0043] FIG. 2a is a drawing illustrating a duplication check module (201) of a sink device (200) according to one embodiment.

[0044] The sink device (200) may include a duplication check module (201), a monitoring module (202), and a scheduling module (203). The monitoring module (202) and the scheduling module (203) are described below with reference to FIGS. 2b and 2c.

[0045] The modules (201, 202, 203) illustrated in FIGS. 2A to 2C may actually be configurations implemented by at least one processor included in the sink device (200) executing a program or command stored in a memory included in the sink device (200). Accordingly, the operations described below as being performed by the modules (201, 202, 203) of the sink device (200) may actually be performed by at least one processor included in the sink device (200).

[0046] In one embodiment, the duplication check module (201) can determine whether multimedia files stored in source devices (210, 220, 230) are duplicate files. For example, the duplication check module (201) can determine whether multimedia files are duplicate files by comparing hash values ​​of multimedia files. For example, the duplication check module (201) can determine whether multimedia files are duplicate files by comparing hash values ​​of metadata of multimedia files. For example, the duplication check module (201) can determine multimedia files with matching hash values ​​as duplicate files.

[0047] The metadata of the multimedia file may include at least one of the hash values ​​of the multimedia files or the hash values ​​of the metadata of the multimedia files. Accordingly, the duplication check module (201) requests the metadata of the multimedia files from the source devices (210, 220, 230), receives the metadata of the multimedia files from the source devices (210, 220, 230) in response, and compares the hash values ​​included in the received metadata, thereby determining whether the multimedia files are duplicate files.

[0048] In one embodiment, the duplication check module (201) may automatically request metadata of multimedia files from the source devices (210, 220, 230) when the source devices (210, 220, 230) are connected to the sink device (200). In one embodiment, the duplication check module (201) may request metadata of multimedia files from the source devices (210, 220, 230) in response to a user input.

[0049] The metadata of the multimedia file received from the source device by the duplication check module (201) may include information on whether the source device stores a thumbnail of the multimedia file.

[0050] In one embodiment, the duplication check module (201) may generate a duplicate file list based on metadata of multimedia files received from source devices (210, 220, 230). The duplication check module (201) may determine, from information contained in the metadata of the multimedia files, which multimedia files stored in the source devices (210, 220, 230) are duplicate files, which source device stores the duplicate files, and which source device stores thumbnails of the duplicate files. Accordingly, the duplicate file list may list duplicate files, source devices storing the duplicate files, and source devices storing thumbnails of the duplicate files.

[0051] In some embodiments, the metadata of a multimedia file may not include information regarding whether the source device stores a thumbnail of the multimedia file. In this case, the duplication check module (201) may separately request information regarding whether each of the source devices (210, 220, 230) stores a thumbnail of the multimedia file, in addition to the metadata of the multimedia file.

[0052] FIG. 2b is a drawing illustrating a monitoring module (202) of a sink device (200) according to one embodiment.

[0053] The monitoring module (202) can receive system resource information of the source devices (210, 220, 230) from the source devices (210, 220, 230). The system resource information can include at least one of hardware resource information including specifications and presence or absence of hardware such as a processor, memory, and hardware accelerator, system performance information including processor usage, memory usage, and hardware accelerator usage, or network information including transmission speed, bandwidth, and usage of a network connected between the source device and the sink device.

[0054] In one embodiment, the monitoring module (202) may receive information from the source devices (210, 220, 230) regarding whether the source devices (210, 220, 230) have the capability to generate thumbnails.

[0055] The monitoring module (202) can request system resource information from each of the source devices (210, 220, 230) and receive system resource information from each of the source devices (210, 220, 230) in response.

[0056] The monitoring module (202) may automatically request system resource information from the source devices (210, 220, 230) when the source devices (210, 220, 230) are connected to the sink device (200). Alternatively, the monitoring module (202) may request system resource information from the source devices (210, 220, 230) in response to a user input. Alternatively, the monitoring module (202) may request system resource information from the source devices (210, 220, 230) when the sink device (200) requests duplicate files or thumbnails of duplicate files from the source devices (210, 220, 230).

[0057] The monitoring module (202) can request fixed system resource information, such as hardware specifications, from the source devices (210, 220, 230) once, and can request changing system resource information, such as processor usage and memory usage, from the source devices (210, 220, 230) multiple times periodically or aperiodically.

[0058] The monitoring module (202) may request system resource information from each of all source devices (210, 220, 230) connected to the sink device (200). Alternatively, the monitoring module (202) may select source devices storing duplicate files among all source devices (210, 220, 230) connected to the sink device (200) based on the duplicate file list, and request system resource information from each of the selected source devices.

[0059] FIG. 2c is a diagram illustrating a scheduling module (203) of a sink device (200) according to one embodiment.

[0060] The scheduling module (203) can schedule how many thumbnails of duplicate files the sink device (200) will obtain from which source devices. The scheduling module (203) can determine, for each of the source devices (210, 220, 230), the number of duplicate files to be allocated to the source device among the number of duplicate files stored in the source device.

[0061] In one embodiment, the scheduling module (203) may determine an allocation number for each of the source devices (210, 220, 230) so as to minimize the time required to receive thumbnails of duplicate files from the source devices (210, 220, 230).

[0062] For example, if the source devices (210, 220, 230) each have four duplicate files, and receive a thumbnail of one duplicate file from the first source device (210), receive thumbnails of two duplicate files from the second source device (220), and receive a thumbnail of the remaining one duplicate file from the third source device (230), and if the time required to receive thumbnails of the duplicate files from the source devices (210, 220, 230) is minimized, the scheduling module (203) may determine the number of allocations for the first source device (210) as 1, the number of allocations for the second source device (220) as 2, and the number of allocations for the third source device (230) as 1.

[0063] The problem of determining the number of allocations for each of the source devices (210, 220, 230) so as to minimize the time required to receive thumbnails of duplicate files from the source devices (210, 220, 230) is an optimization problem. In one embodiment, the scheduling module (203) may utilize various optimization techniques to determine the number of allocations for each of the source devices (210, 220, 230).

[0064] In one embodiment, the time required to receive thumbnails of duplicate files from the source devices (210, 220, 230) may include the transmission time to transmit the assigned number of thumbnails of duplicate files from each of the source devices (210, 220, 230) to the sink device (200).

[0065] For each of the source devices (210, 220, 230), the scheduling module (203) can estimate the transmission time for transmitting thumbnails of an allocated number of duplicate files from the source device to the sink device (200) based on the system resource information of the source device.

[0066] For example, the scheduling module (203) can estimate that the transmission time for transmitting thumbnails of duplicate files will be shorter as the transmission speed of the network of the source device is higher.

[0067] For example, the scheduling module (203) can estimate that the transmission time for transmitting thumbnails of duplicate files will be longer as the network usage of the source device is high.

[0068] The scheduling module (203) can determine the number of allocations for each of the source devices (210, 220, 230) such that a source device with a shorter estimated transmission time has a larger number of allocations. Accordingly, the time required to receive thumbnails of duplicate files from the source devices (210, 220, 230) can be minimized.

[0069] For example, if the estimated transmission time of the first source device (210) is 100 ms, the estimated transmission time of the second source device (220) is 200 ms, the estimated transmission time of the third source device (230) is 400 ms, and the number of duplicate files stored in each of the source devices (210, 220, 230) is 70, the scheduling module (203) may determine the number of allocations for the first source device (210) to be 40, the number of allocations for the second source device (220) to be 20, and the number of allocations for the third source device (230) to be 10.

[0070] In one embodiment, the time required to receive thumbnails of duplicate files from source devices (210, 220, 230) may include a generation time for the source devices (210, 220, 230) to generate thumbnails of an allocated number of duplicate files and a transmission time for transmitting the generated thumbnails from the source devices (210, 220, 230) to the sink device (200).

[0071] The scheduling module (203) can estimate, for each of the source devices (210, 220, 230), a generation time at which the source device generates thumbnails of the allocated number of duplicate files and a transmission time at which the generated thumbnails are transmitted from the source device to the sink device (200) based on the system resource information of the source device.

[0072] For example, the scheduling module (203) can estimate that the generation time for generating a thumbnail will be shorter as the hardware specifications of the source device are higher.

[0073] For example, the scheduling module (203) can estimate a shorter generation time for generating a thumbnail when the source device includes a hardware accelerator than when the source device does not include a hardware accelerator.

[0074] For example, the scheduling module (203) can estimate that the generation time for generating a thumbnail will be longer as the hardware usage of the source device is higher.

[0075] The scheduling module (203) can determine the number of allocations for each of the source devices (210, 220, 230) such that a source device with a shorter sum of the estimated creation time and transmission time has a larger number of allocations. Accordingly, the time required to receive thumbnails of duplicate files from the source devices (210, 220, 230) can be minimized.

[0076] For example, if the sum of the estimated creation time and transmission time of the first source device (210) is 250 ms, the sum of the estimated creation time and transmission time of the second source device (220) is 750 ms, the sum of the estimated creation time and transmission time of the third source device (230) is 500 ms, and the number of duplicate files stored in each of the source devices (210, 220, 230) is 40, the scheduling module (203) may determine the number of allocations for the first source device (210) to be 25, the number of allocations for the second source device (220) to be 5, and the number of allocations for the third source device (230) to be the remaining 10.

[0077] The scheduling module (203) may request thumbnails of the allocated number of duplicate files from each of the source devices (210, 220, 230). In response, each of the source devices (210, 220, 230) may transmit thumbnails of the allocated number of duplicate files to the scheduling module (203).

[0078] For example, if the number of duplicate files stored in each of the source devices (210, 220, 230) is 10, the number of allocations for the first source device (210) is 5, the number of allocations for the second source device (220) is 2, and the number of allocations for the third source device (230) is 3, the scheduling module (203) may request thumbnails of the 5 duplicate files from the first source device (210), request thumbnails of the 2 duplicate files from the second source device (220), and request thumbnails of the remaining 3 duplicate files from the third source device (230).

[0079] The scheduling module (203) may preferentially request thumbnails from the source devices storing thumbnails of duplicate files. For example, if there are no thumbnails of duplicate files in the first source device (210) and there are thumbnails of duplicate files in the second and third source devices (220, 230), the scheduling module (203) may receive thumbnails of duplicate files from the second and third source devices (220, 230). In this case, the scheduling module (203) may determine the allocation number for each of the second and third source devices (220, 230) so as to minimize the time required to receive thumbnails of duplicate files from the second and third source devices (220, 230).

[0080] FIG. 3a is a diagram illustrating a scenario in which a sink device (300) obtains thumbnails according to one embodiment.

[0081] In a scenario according to one embodiment, a sink device (300) is connected to a first source device (310) and a second source device (320).

[0082] In a scenario according to one embodiment, a first source device (310) stores multimedia files (A1 to A20, B) and thumbnails (a1 to a20, b), and a second source device (320) stores multimedia files (A1 to A20, C) and thumbnails (a1 to a20, c).

[0083] In a scenario according to one embodiment, the thumbnails (a1 to a20) are thumbnails of multimedia files (A1 to A20), respectively.

[0084] The duplication check module (301) requests metadata of multimedia files from the first and second source devices (310, 320). In response to the request, the duplication check module (301) receives metadata of multimedia files (A1 to A20, B) from the first source device (310) and receives metadata of multimedia files (A1 to A20, C) from the second source device (320).

[0085] In a scenario according to one embodiment, metadata received from a first source device (310) includes hash values ​​of multimedia files (A1 to A20, B) of the first source device (310) and information that the first source device (310) stores thumbnails (a1 to a20, b). Metadata received from a second source device (320) includes hash values ​​of multimedia files (A1 to A20, C) of the second source device (320) and information that the second source device (320) stores thumbnails (a1 to a20, c).

[0086] The duplication check module (301) detects duplicate files (A1 to A20) among all multimedia files (A1 to A20, B, C) based on metadata received from the first and second source devices (310, 320). More specifically, the duplication check module (301) detects multimedia files (A1 to A20) corresponding to the same hash values ​​as duplicate files (A1 to A20).

[0087] The duplicate check module (301) generates a duplicate file list. In a scenario according to one embodiment, the duplicate file list lists duplicate files (A1 to A20), source devices (310, 320) including the duplicate files (A1 to A20), and source devices (310, 320) including thumbnails (a1 to a20) of the duplicate files.

[0088] In a scenario according to one embodiment, the monitoring module (302) requests system resource information from each of the source devices (310, 320) on the duplicate file list. In response to the request, the monitoring module (302) receives system resource information of the first source device (310) from the first source device (310) and receives system resource information of the second source device (320) from the second source device (320).

[0089] In a scenario according to one embodiment, the system resource information of the first source device (310) includes a transmission speed of 100 Mbps of the network between the first source device (310) and the sink device (300). Additionally, the system resource information of the second source device (320) includes a transmission speed of 20 Mbps of the network between the second source device (320) and the sink device (300).

[0090] For duplicate files (A1 to A20), the scheduling module (303) determines that both the first and second source devices (310, 320) store thumbnails (a1 to a20) of the duplicate files based on the duplicate file list.

[0091] For the thumbnails (a1 to a20), the scheduling module (303) estimates a transmission time for transmitting the allocated number of thumbnails from the first source device (310) to the sink device (300) based on the system resource information of the first source device (310). In addition, for the thumbnails (a1 to a20), the scheduling module (303) estimates a transmission time for transmitting the allocated number of thumbnails from the second source device (320) to the sink device (300) based on the system resource information of the second source device (320). A predetermined initial allocated number may be used for the initial estimation.

[0092] The scheduling module (303) determines the number of allocations for each of the source devices (310, 320) based on the estimated transmission time so as to minimize the time required to receive thumbnails (a1 to a20) from the source devices (310, 320).

[0093] In a scenario according to one embodiment, the estimated transmission time for the first source device (310) is shorter than the estimated transmission time for the second source device (320). Accordingly, the scheduling module (303) determines a larger number of allocations for the first source device (310) than for the second source device (320).

[0094] In a scenario according to one embodiment, the scheduling module (303) determines a number of allocations of 15 for the first source device (310) and a number of allocations of 5 for the second source device (320).

[0095] The scheduling module (303) requests thumbnails of the allocated number of duplicate files from each of the source devices (310, 320).

[0096] In a scenario according to one embodiment, the scheduling module (303) requests 15 thumbnails (a1 to a15) from the first source device (310) and receives 15 thumbnails (a1 to a15) from the first source device (310) in response thereto. In addition, the scheduling module (303) requests 5 thumbnails (a16 to a20) from the second source device (320) and receives 5 thumbnails (a16 to a20) from the second source device (320) in response thereto.

[0097] FIG. 3b is a diagram illustrating a scenario in which a sink device (300) obtains thumbnails according to one embodiment.

[0098] In a scenario according to one embodiment, a sink device (300) is connected to a first source device (310) and a second source device (320).

[0099] In a scenario according to one embodiment, a first source device (310) stores multimedia files (A1 to A15), and a second source device (320) stores multimedia files (A1 to A15).

[0100] In a scenario according to one embodiment, the thumbnails (a1 to a15) are thumbnails of multimedia files (A1 to A15), respectively.

[0101] The duplication check module (301) requests metadata of multimedia files from the first and second source devices (310, 320). In response to the request, the duplication check module (301) receives metadata of multimedia files (A1 to A15) from the first source device (310) and receives metadata of multimedia files (A1 to A15) from the second source device (320).

[0102] In a scenario according to one embodiment, metadata received from a first source device (310) includes hash values ​​of multimedia files (A1 to A15) of the first source device (310) and information that the first source device (310) does not store thumbnails (a1 to a15) of the multimedia files (A1 to A15). Metadata received from a second source device (320) includes hash values ​​of multimedia files (A1 to A15) of the second source device (320) and information that the second source device (320) does not store thumbnails (a1 to a15) of the multimedia files (A1 to A15).

[0103] The duplicate check module (301) detects all multimedia files (A1 to A15) as duplicate files (A1 to A15) based on metadata received from the first and second source devices (310, 320).

[0104] The duplicate check module (301) generates a duplicate file list. In a scenario according to one embodiment, the duplicate file list lists duplicate files (A1 to A15), source devices (310, 320) including the duplicate files (A1 to A15), and information that the first and second source devices (310, 320) do not store thumbnails (a1 to a15).

[0105] In a scenario according to one embodiment, the monitoring module (302) requests system resource information from each of the source devices (310, 320) on the duplicate file list. In response to the request, the monitoring module (302) receives system resource information of the first source device (310) from the first source device (310) and receives system resource information of the second source device (320) from the second source device (320).

[0106] In a scenario according to one embodiment, system resource information of a first source device (310) includes hardware resource information including a 2.4 GHz and 8-core Central Processing Unit (CPU), 100 GB of memory, and a hardware accelerator, system performance information including 5% CPU usage, 11% memory usage, and 1% hardware accelerator usage, and network information including a transmission speed of 200 Mbps and a network usage of 45%. System resource information of a second source device (320) includes hardware resource information including a 1 GHz and 1-core CPU and 500 MB of memory, system performance information including 40% CPU usage and 60% memory usage, and network information including a transmission speed of 500 Mbps and a network usage of 25%.

[0107] The scheduling module (303) determines, based on the duplicate file list, that neither of the first nor second source devices (310, 320) stores thumbnails (a1 to a15) of duplicate files.

[0108] The scheduling module (303) estimates, based on the system resource information of the first source device (310), a generation time at which the first source device (310) generates the allocated number of thumbnails and a transmission time at which the generated thumbnails are transmitted from the first source device (310) to the sink device (300). In addition, the scheduling module (303) estimates, based on the system resource information of the second source device (320), a generation time at which the second source device (320) generates the allocated number of thumbnails and a transmission time at which the generated thumbnails are transmitted from the second source device (320) to the sink device (300). A predetermined initial allocation number may be used for the initial estimation.

[0109] The scheduling module (303) determines the number of allocations for each of the source devices (310, 320) so as to minimize the time required to receive thumbnails (a1 to a15) from the source devices (310, 320) based on the sum of the estimated generation time and the estimated transmission time.

[0110] In a scenario according to one embodiment, the sum of the estimated generation time and transmission time for the first source device (310) is shorter than the sum of the estimated generation time and transmission time for the second source device (320). Accordingly, the scheduling module (303) determines a larger number of allocations for the first source device (310) than for the second source device (320).

[0111] In a scenario according to one embodiment, the scheduling module (303) determines a number of allocations of 10 for the first source device (310) and a number of allocations of 5 for the second source device (320).

[0112] The scheduling module (303) requests thumbnails of the allocated number of duplicate files from each of the source devices (310, 320).

[0113] In a scenario according to one embodiment, the scheduling module (303) requests 10 thumbnails (a1 to a10) from the first source device (310). In response, the first source device (310) generates 10 thumbnails (a1 to a10) from 10 duplicate files (A1 to A10) and transmits the generated thumbnails (a1 to a10) to the scheduling module (303). In addition, the scheduling module (303) requests 5 thumbnails (a11 to a15) from the second source device (320). In response to this, the second source device (320) generates five thumbnails (a11 to a15) from five duplicate files (A11 to A15) and transmits the generated thumbnails (a11 to a15) to the scheduling module (303).

[0114] FIG. 3c is a diagram illustrating a scenario in which a sink device obtains thumbnails according to one embodiment.

[0115] In a scenario according to one embodiment, a sink device (300) is connected to a first source device (310) and a second source device (320).

[0116] In a scenario according to one embodiment, a first source device (310) stores multimedia files (A1 to A20) and thumbnails (a12 to a20), and a second source device (320) stores multimedia files (A1 to A20) and thumbnails (a11 to a20).

[0117] In a scenario according to one embodiment, the thumbnails (a1 to a20) are thumbnails of multimedia files (A1 to A20), respectively.

[0118] The duplication check module (301) requests metadata of multimedia files from the first and second source devices (310, 320). In response to the request, the duplication check module (301) receives metadata of multimedia files (A1 to A20) from the first source device (310) and receives metadata of multimedia files (A1 to A20) from the second source device (320).

[0119] In a scenario according to one embodiment, metadata received from a first source device (310) includes hash values ​​of multimedia files (A1 to A20) of the first source device (310), information that the first source device (310) does not store thumbnails (a1 to a11), and information that the first source device (310) stores thumbnails (a12 to a20). Metadata received from a second source device (320) includes hash values ​​of multimedia files (A1 to A20) of the second source device (320), information that the second source device (320) does not store thumbnails (a1 to a10), and information that the second source device (320) stores thumbnails (a11 to a20).

[0120] The duplicate check module (301) detects all multimedia files (A1 to A20) as duplicate files (A1 to A20) based on metadata received from the first and second source devices (310, 320).

[0121] The duplicate check module (301) generates a duplicate file list. In a scenario according to one embodiment, the duplicate file list lists duplicate files (A1 to A20), source devices (310, 320) including the duplicate files (A1 to A20), information that the first source device (310) does not store thumbnails (a1 to a11), information that the first source device (310) stores thumbnails (a12 to a20), information that the second source device (320) does not store thumbnails (a1 to a10), and information that the second source device (320) stores thumbnails (a11 to a20).

[0122] In a scenario according to one embodiment, the monitoring module (302) requests system resource information from each of the source devices (310, 320) on the duplicate file list. In response to the request, the monitoring module (302) receives system resource information of the first source device (310) from the first source device (310) and receives system resource information of the second source device (320) from the second source device (320).

[0123] In a scenario according to one embodiment, the system resource information of the first source device (310) and the system resource information of the second source device (320) are the same as in the scenario according to one embodiment with reference to FIG. 3b.

[0124] In a scenario according to one embodiment, for duplicate files (A1 to A20), the scheduling module (303) determines that the first and second source devices (310, 320) do not store thumbnails (a1 to a10) based on the duplicate file list.

[0125] For the thumbnails (a1 to a10), the scheduling module (303) estimates, based on the system resource information of the first source device (310), a generation time at which the first source device (310) generates the allocated number of thumbnails and a transmission time at which the generated thumbnails are transmitted from the first source device (310) to the sink device (300). In addition, for the thumbnails (a1 to a10), the scheduling module (303) estimates, based on the system resource information of the second source device (320), a generation time at which the second source device (320) generates the allocated number of thumbnails and a transmission time at which the generated thumbnails are transmitted from the second source device (320) to the sink device (300). A predetermined initial allocation number may be used for the initial estimation.

[0126] The scheduling module (303) determines the number of allocations for each of the source devices (310, 320) so as to minimize the time required to receive thumbnails (a1 to a10) from the source devices (310, 320) based on the sum of the estimated generation time and the estimated transmission time.

[0127] In a scenario according to one embodiment, the sum of the estimated generation time and transmission time for the first source device (310) is shorter than the sum of the estimated generation time and transmission time for the second source device (320). Accordingly, the scheduling module (303) determines a larger number of allocations for the first source device (310) than for the second source device (320).

[0128] In a scenario according to one embodiment, the scheduling module (303) determines a number of allocations of six for the first source device (310) and a number of allocations of four for the second source device (320).

[0129] The scheduling module (303) requests thumbnails of the allocated number of duplicate files from each of the source devices (310, 320).

[0130] In a scenario according to one embodiment, the scheduling module (303) requests six thumbnails (a1 to a6) from the first source device (310). In response, the first source device (310) generates six thumbnails (a1 to a6) from six duplicate files (A1 to A6) and transmits the generated thumbnails (a1 to a6) to the scheduling module (303). In addition, the scheduling module (303) requests four thumbnails (a7 to a10) from the second source device (320). In response to this, the second source device (320) generates four thumbnails (a7 to a10) from four duplicate files (A7 to A10) and transmits the generated thumbnails (a7 to a10) to the scheduling module (303).

[0131] In a scenario according to one embodiment, for a duplicate file (A11), the scheduling module (303) determines that only the second source device (320) stores the thumbnail (a11) based on the duplicate file list.

[0132] The scheduling module (303) requests a thumbnail (a11) from the second source device (320) and receives a thumbnail (a11) from the second source device (320) in response.

[0133] In a scenario according to one embodiment, for duplicate files (A12 to A20), the scheduling module (303) determines that the first and second source devices (310, 320) store thumbnails (a12 to a20) based on the duplicate file list.

[0134] The scheduling module (303) estimates a transmission time for transmitting thumbnails of an allocated number of duplicate files from the first source device (310) to the sink device (300) based on system resource information of the first source device (310). In addition, the scheduling module (303) estimates a transmission time for transmitting thumbnails of an allocated number of duplicate files from the second source device (320) to the sink device (300) based on system resource information of the second source device (320). A predetermined initial allocated number may be used for the initial estimation.

[0135] The scheduling module (303) determines the number of allocations for each of the source devices (310, 320) based on the estimated transmission time so as to minimize the time required to receive thumbnails (a12 to a20) from the source devices (310, 320).

[0136] In a scenario according to one embodiment, the estimated transmission time for the first source device (310) is longer than the estimated transmission time for the second source device (320). Accordingly, the scheduling module (303) determines a larger number of allocations for the second source device (320) than for the first source device (310).

[0137] In a scenario according to one embodiment, the scheduling module (303) determines a number of allocations of two for the first source device (310) and a number of allocations of seven for the second source device (320).

[0138] The scheduling module (303) requests thumbnails of the allocated number of duplicate files from each of the source devices (310, 320).

[0139] In a scenario according to one embodiment, the scheduling module (303) requests two thumbnails (a12 to a13) from the first source device (310) and receives two thumbnails (a12 to a13) from the first source device (310) in response thereto. In addition, the scheduling module (303) requests seven thumbnails (a14 to a20) from the second source device (320) and receives seven thumbnails (a14 to a20) from the second source device (320) in response thereto.

[0140] FIG. 4 is a diagram illustrating a scheduling module (403) and a generation module (404) of a sink device (400) according to one embodiment.

[0141] The sink device (400) may include a duplication check module (401), a monitoring module (402), a scheduling module (403), and a generation module (404).

[0142] The modules (401, 402, 403, 404) illustrated in FIG. 4 may actually be configurations implemented by at least one processor included in the sink device (400) executing a program or command stored in a memory included in the sink device (400). Accordingly, the operations described below as being performed by the modules (401, 402, 403, 404) of the sink device (400) may actually be performed by at least one processor included in the sink device (400).

[0143] The description referring to FIGS. 2A to 3C may be applied to the sink device (400) of FIG. 4. For convenience of explanation, redundant descriptions are omitted.

[0144] If the time taken for the sink device (400) to receive duplicate files from the source devices (410, 420, 430) and generate thumbnails of the duplicate files from the received duplicate files is shorter than the time taken for the source devices (410, 420, 430) to generate thumbnails of the duplicate files and transmit the generated thumbnails of the duplicate files to the sink device (400), the sink device (400) can receive duplicate files from the source devices (410, 420, 430) and generate thumbnails from the received duplicate files.

[0145] The scheduling module (403) can estimate the time required for the sink device (400) to receive duplicate files from the source devices (410, 420, 430) and to generate thumbnails of the duplicate files from the received duplicate files based on the system resource information of the sink device (400) and the system resource information of the source devices (410, 420, 430). In addition, the scheduling module (403) can estimate the time required for the source devices (410, 420, 430) to generate thumbnails of the duplicate files and to transmit the generated thumbnails of the duplicate files to the sink device (400) based on the system resource information of the source devices (410, 420, 430).

[0146] Based on the estimated time required, the scheduling module (403) can determine which method can obtain thumbnails faster. If the sink device (400) determines that the method of receiving duplicate files from the source devices (410, 420, 430) and generating thumbnails of the duplicate files from the received duplicate files is a faster method, the scheduling module (403) can decide to receive the duplicate files from the source devices (410, 420, 430). Otherwise, the scheduling module (403) can decide to receive thumbnails from the source devices (410, 420, 430).

[0147] The scheduling module (403) can schedule how many duplicate files the sink device (400) will acquire from which source devices. The scheduling module (403) can determine, for each of the source devices (410, 420, 430), the number of duplicate files to allocate to the source device among the number of duplicate files stored in the source device.

[0148] In one embodiment, the scheduling module (403) may determine an allocation number for each of the source devices (410, 420, 430) so as to minimize the time required to receive duplicate files from the source devices (410, 420, 430).

[0149] For example, if the source devices (410, 420, 430) each have five duplicate files, receive two duplicate files from the first source device (410), receive two duplicate files from the second source device (420), and receive the remaining one duplicate file from the third source device (430), and if the time required to receive the duplicate files from the source devices (410, 420, 430) is minimized, the scheduling module (403) may determine the number of allocations for the first source device (410) to be 2, the number of allocations for the second source device (420) to be 2, and the number of allocations for the third source device (430) to be 1.

[0150] The problem of determining the number of allocations for each of the source devices (410, 420, 430) so as to minimize the time required to receive duplicate files from the source devices (410, 420, 430) is an optimization problem. In one embodiment, the scheduling module (403) may utilize various optimization techniques to determine the number of allocations for each of the source devices (410, 420, 430).

[0151] In one embodiment, the time required to receive duplicate files from the source devices (410, 420, 430) may include the transmission time to transmit an allocated number of duplicate files from each of the source devices (410, 420, 430) to the sink device (400).

[0152] For each of the source devices (410, 420, 430), the scheduling module (403) can estimate the transmission time for transmitting the allocated number of duplicate files from the source device to the sink device (400) based on the system resource information of the source device.

[0153] For example, the scheduling module (403) can estimate a shorter transmission time for transmitting duplicate files as the transmission speed of the network of the source device increases.

[0154] For example, the scheduling module (403) can estimate that the transmission time for transmitting duplicate files will be longer as the network usage of the source device is high.

[0155] The scheduling module (403) can determine the number of allocations for each of the source devices (410, 420, 430) such that a source device with a shorter estimated transmission time has a larger number of allocations. Accordingly, the time required to receive duplicate files from the source devices (410, 420, 430) can be minimized.

[0156] The scheduling module (403) may request an allocated number of duplicate files from each of the source devices (410, 420, 430). In response, each of the source devices (410, 420, 430) may transmit an allocated number of duplicate files to the scheduling module (403).

[0157] The generation module (404) can generate thumbnails from duplicate files received from the source devices (410, 420, 430). For example, the generation module (404) can generate thumbnails using the same thumbnail generation technique as the source devices (410, 420, 430).

[0158] FIG. 5 is a diagram illustrating a scenario in which a sink device (500) obtains thumbnails according to one embodiment.

[0159] In a scenario according to one embodiment, a sink device (500) is connected to a first source device (510) and a second source device (520).

[0160] In a scenario according to one embodiment, a first source device (510) stores multimedia files (A1 to A10), and a second source device (520) stores multimedia files (A1 to A10).

[0161] The duplication check module (501) requests metadata of multimedia files from the first and second source devices (510, 520). In response to the request, the duplication check module (501) receives metadata of multimedia files (A1 to A10) from the first source device (510) and receives metadata of multimedia files (A1 to A10) from the second source device (520).

[0162] In a scenario according to one embodiment, metadata received from a first source device (510) includes hash values ​​of multimedia files (A1 to A10) of the first source device (510) and information that the first source device (510) does not store thumbnails of the multimedia files (A1 to A10). Metadata received from a second source device (520) includes hash values ​​of multimedia files (A1 to A10) of the second source device (520) and information that the second source device (520) does not store thumbnails of the multimedia files (A1 to A10).

[0163] The duplicate check module (501) detects all multimedia files (A1 to A10) as duplicate files (A1 to A10) based on metadata received from the first and second source devices (510, 520).

[0164] The duplicate check module (501) generates a duplicate file list. In a scenario according to one embodiment, the duplicate file list lists duplicate files (A1 to A10), source devices (510, 520) including the duplicate files (A1 to A10), and information that the first and second source devices (510, 520) do not store thumbnails of the duplicate files (A1 to A10).

[0165] In a scenario according to one embodiment, the monitoring module (502) requests system resource information from each of the source devices (510, 520) on the duplicate file list. In response to the request, the monitoring module (502) receives system resource information of the first source device (510) from the first source device (510) and receives system resource information of the second source device (520) from the second source device (520).

[0166] The scheduling module (503) determines that the first and second source devices (510, 520) do not store thumbnails of duplicate files (A1 to A10) based on the duplicate file list.

[0167] The scheduling module (503) determines that the time required for the sink device (500) to receive duplicate files (A1 to A10) from the source devices (510, 520) and to generate thumbnails of the duplicate files (A1 to A10) from the received duplicate files (A1 to A10) is shorter than the time required for the source devices (510, 520) to generate thumbnails of the duplicate files (A1 to A10) and to transmit the generated thumbnails of the duplicate files (A1 to A10) to the sink device (500), and decides to receive the duplicate files (A1 to A10) from the source devices (510, 520).

[0168] The scheduling module (503) estimates a transmission time for transmitting an allocated number of duplicate files from the first source device (510) to the sink device (500) based on system resource information of the first source device (510). In addition, the scheduling module (503) estimates a transmission time for transmitting an allocated number of duplicate files from the second source device (520) to the sink device (500) based on system resource information of the second source device (520). A predetermined initial allocated number may be used for the initial estimation.

[0169] The scheduling module (503) determines the number of allocations for each of the source devices (510, 520) based on the estimated transmission time so as to minimize the time required to receive duplicate files (A1 to A10) from the source devices (510, 520).

[0170] In a scenario according to one embodiment, the scheduling module (503) determines a number of allocations of six for the first source device (510) and a number of allocations of four for the second source device (520).

[0171] The scheduling module (503) requests an allocated number of duplicate files from each of the source devices (510, 520).

[0172] In a scenario according to one embodiment, the scheduling module (503) requests six duplicate files (A1 to A6) from the first source device (510) and, in response, receives the six duplicate files (A1 to A6) from the first source device (510). In addition, the scheduling module (503) requests four duplicate files (a7 to a10) from the second source device (520) and, in response, receives four duplicate files (a7 to a10) from the second source device (520).

[0173] In a scenario according to one embodiment, the generation module (504) generates thumbnails of duplicate files (A1 to A6) from duplicate files (A1 to A6) received from a first source device (510). In addition, the generation module (504) generates thumbnails of duplicate files (A7 to A10) from duplicate files (A7 to A10) received from a second source device (520).

[0174] FIG. 6 is a flowchart of a method for a sink device to obtain thumbnails for duplicate files existing in source devices according to one embodiment.

[0175] In step S601, the sink device receives, from each of the source devices, metadata of multimedia files stored in the source device and system resource information of the source device.

[0176] In one embodiment, the sink device may receive metadata of multimedia files stored on each of the source devices from each of the source devices. Additionally, the sink device may receive system resource information of each of the source devices from each of the source devices.

[0177] In step S602, the sink device detects duplicate files among multimedia files stored in the source device based on metadata of the multimedia files of the source device for each of the source devices.

[0178] In one embodiment, a sink device can detect duplicate files among multimedia files based on their metadata. The sink device can detect duplicate files among the multimedia files by comparing hash values ​​included in the metadata of the multimedia files. More specifically, the sink device can detect multimedia files with identical hash values ​​as duplicate files.

[0179] In one embodiment, source devices may generate hash values ​​using the same hash function. Accordingly, the sink device may detect duplicate files among multimedia files by comparing the hash values. The hash values ​​used to detect duplicate files may include hash values ​​of the multimedia files and hash values ​​of the metadata of the multimedia files.

[0180] In step S603, the sink device determines, for each of the source devices, the number of duplicate files to be allocated to the source device from among the number of duplicate files stored in the source device based on the system resource information of the source device.

[0181] In one embodiment, the sink device may determine whether to receive thumbnails of duplicate files from the source devices or to receive duplicate files from the source devices.

[0182] In one embodiment, the sink device may determine to receive duplicate files from the source devices if the source devices do not store thumbnails of duplicate files and the time it takes for the sink device to receive duplicate files from the source devices and generate thumbnails of the duplicate files is shorter than the time it takes for the source devices to generate thumbnails of the duplicate files and transmit them to the sink device. Otherwise, the sink device may determine to receive thumbnails of the duplicate files from the source devices.

[0183] In one embodiment, the sink device can determine whether the source device stores thumbnails of duplicate files based on metadata of multimedia files received from the source device.

[0184] In one embodiment, the sink device can estimate, based on system resource information of the source devices and system resource information of the sink device, the time it takes for the sink device to receive duplicate files from the source devices and generate thumbnails of the duplicate files and the time it takes for the source devices to generate thumbnails of the duplicate files and transmit them to the sink device.

[0185] In one embodiment, when a sink device decides to receive thumbnails of duplicate files from source devices, the sink device can determine an allocation number for each of the source devices such that the time taken to receive thumbnails of duplicate files from the source devices is minimized.

[0186] In one embodiment, when a sink device decides to receive duplicate files from source devices, the sink device may determine an allocation number for each of the source devices such that the time taken to receive duplicate files from the source devices is minimized.

[0187] In step S604, the sink device obtains thumbnails of duplicate files by requesting an allocated number of duplicate files or thumbnails of an allocated number of duplicate files for each of the source devices.

[0188] In one embodiment, when a sink device determines to receive thumbnails of duplicate files from source devices, the sink device may request thumbnails of an assigned number of duplicate files from each of the source devices. The sink device may obtain thumbnails of duplicate files stored on the source devices by receiving the assigned number of thumbnails of duplicate files from each of the source devices in response to the request.

[0189] In one embodiment, when a sink device determines to receive duplicate files from source devices, the sink device may request an assigned number of duplicate files from each of the source devices. In response to the request, the sink device may receive the assigned number of duplicate files from each of the source devices. The sink device may obtain thumbnails for the duplicate files stored on the source devices by generating thumbnails from the received duplicate files.

[0190] FIG. 7 is a flowchart of a method for a sink device to obtain thumbnails for duplicate files existing in source devices according to one embodiment.

[0191] In step S701, the sink device receives metadata of multimedia files from source devices connected to the sink device.

[0192] In one embodiment, the sink device can receive metadata of all multimedia files stored on source devices connected to the sink device.

[0193] In step S702, the sink device determines whether there is a thumbnail that is not stored in the sink device.

[0194] In one embodiment, the sink device can determine whether the sink device stores a multimedia file and whether it stores a thumbnail of the multimedia file based on metadata of the multimedia file received from the source device.

[0195] If the sync device determines that there are no thumbnails that are not stored, step S703 is performed. Alternatively, if the sync device determines that there are no thumbnails that are not stored, step S708 is performed.

[0196] In step S703, the sink device checks whether the multimedia files are duplicate files.

[0197] In one embodiment, the sink device can compare hash values ​​contained in the metadata of multimedia files. The sink device can detect multimedia files corresponding to identical hash values ​​as duplicate files.

[0198] In step S704, the sink device generates a list of source devices containing duplicate files.

[0199] In one embodiment, the sink device may generate a duplicate file list. The duplicate file list may include duplicate files, source devices storing the duplicate files, and source devices storing thumbnails of the duplicate files.

[0200] In step S705, the sink device monitors system resource information of the source devices.

[0201] In one embodiment, the sink device may request system resource information from source devices storing duplicate files. In one embodiment, the sink device may request system resource information from source devices storing thumbnails of duplicate files.

[0202] In step S706, the sink device performs scheduling to obtain thumbnails of duplicate files.

[0203] In one embodiment, when a sink device decides to receive thumbnails of duplicate files from source devices, the sink device can schedule how many thumbnails of duplicate files to obtain from which source devices. The sink device can determine the allocation number for each of the source devices so as to minimize the time taken to receive thumbnails of duplicate files from the source devices.

[0204] In one embodiment, when a sink device decides to receive duplicate files from source devices, the sink device can schedule how many duplicate files to obtain from which source devices. The sink device can determine the allocation number for each source device so as to minimize the time required to receive duplicate files from the source devices.

[0205] In step S707, the sink device obtains thumbnails.

[0206] In one embodiment, the sink device can obtain thumbnails of duplicate files by requesting thumbnails of an allocated number of duplicate files from each of the source devices and receiving the requested thumbnails in response.

[0207] In one embodiment, the sink device may request an allocated number of duplicate files from each of the source devices and receive the requested duplicate files in response. The sink device may obtain thumbnails of the duplicate files by generating thumbnails from the received duplicate files.

[0208] In one embodiment, the sink device may request an assigned number of duplicate files or thumbnails from each of the source devices in a predetermined order. For example, the predetermined order may be the order in which the sink device displays the duplicate files or thumbnails. For example, the predetermined order may be an order based on file name or file size.

[0209] In one embodiment, the sink device may store the acquired duplicate files or thumbnails.

[0210] In step S708, the sink device displays thumbnails.

[0211] If step S708 is performed because step S702 is determined as 'Yes', the sink device can display the thumbnails obtained in step S707. Alternatively, if step S708 is performed because step S702 is determined as 'No', the sink device can display the thumbnails stored in the sink device.

[0212] FIG. 8 is a flowchart of a method for a sink device to obtain duplicate files existing in source devices according to one embodiment.

[0213] In step S801, the sink device determines whether the file to be requested from the source devices is a duplicate file.

[0214] In one embodiment, the sink device may determine whether the original file to be requested from the source devices is a duplicate file in order to request the original file of the thumbnail from the source devices.

[0215] In one embodiment, the sink device can determine whether an original file to be requested from the source devices is a duplicate file based on a list of duplicate files.

[0216] If the sink device determines that the original file being requested is a duplicate file, step S802 is performed. Alternatively, if the sink device determines that the original file being requested is not a duplicate file, step S805 is performed.

[0217] In step S802, the sink device checks the source devices where duplicate files are stored.

[0218] In one embodiment, the sink device can identify source devices storing the original files to be requested based on a list of duplicate files. The list of duplicate files can be generated in advance when the sink device requests thumbnails from the source devices.

[0219] In step S803, the sink device monitors system resource information of source devices where original files, i.e., duplicate files, are stored.

[0220] In one embodiment, the sink device may request system resource information from source devices storing duplicate files, and in response, receive system resource information from the source devices.

[0221] In step S804, the sink device performs scheduling to request a duplicate file.

[0222] In one embodiment, a sink device can schedule which source device to retrieve duplicate files from. The sink device can determine which source device to retrieve duplicate files from so as to minimize the time required to receive the duplicate files.

[0223] In step S805, the sink device requests a file from the source device.

[0224] If step S805 is performed because step S801 is determined as 'Yes', the sink device may request the original file from the source device determined in step S804. Alternatively, if step S801 is determined as 'No' and step S805 is performed, the sink device may request the original file from the source device storing the original file.

[0225] FIG. 9a is a block diagram of a sink device (900) according to one embodiment.

[0226] The sink device (900) may include a processor (910), a memory (920), a communication interface (930), and an input / output interface (940). The processor (910), the memory (920), the communication interface (930), and the input / output interface (940) may communicate with each other via a bus.

[0227] The processor (910) can control the overall operations of the sink device (900). For example, the processor (910) can control the overall operations of the sink device (900) to obtain thumbnails for duplicate files existing in the source devices by executing one or more instructions of a program stored in the memory (920). There can be one or more processors (910).

[0228] The processor (910) may be configured as at least one of, but is not limited to, a CPU, a microprocessor, a graphic processing unit (GPU), an application specific integrated circuits (ASICs), a digital signal processor (DSPs), a digital signal processing device (DSPDs), a programmable logic device (PLDs), a field programmable gate array (FPGAs), an application processor, a neural processing unit, or an artificial intelligence processor designed with a hardware structure specialized for processing an artificial intelligence model.

[0229] The memory (920) may store instructions, data structures, and program codes that can be read by the processor (910). Operations performed by the processor (910) may be implemented by executing instructions or codes of a program stored in the memory (920).

[0230] The memory (920) may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory, etc.), and may include a non-volatile memory including at least one of a ROM (Read-Only Memory), an EEPROM (Electrically Erasable Programmable Read-Only Memory), a PROM (Programmable Read-Only Memory), a magnetic memory, a magnetic disk, or an optical disk, and a volatile memory such as a RAM (Random Access Memory) or an SRAM (Static Random Access Memory).

[0231] The memory (920) may store one or more instructions and / or programs that cause the sink device (900) to operate to obtain thumbnails for duplicate files existing in the source devices.

[0232] The communication interface (930) can perform data communication with other electronic devices under the control of the processor (910).

[0233] The communication interface (930) may include a communication circuit that can perform data communication between the sink device (900) and another electronic device using at least one of data communication methods including, for example, wired LAN, wireless LAN, Wi-Fi, Bluetooth, ZigBee, Wi-Fi Direct (WFD), infrared Data Association (IrDA), Bluetooth Low Energy (BLE), Near Field Communication (NFC), Wireless Broadband Internet (Wibro), World Interoperability for Microwave Access (WiMAX), Shared Wireless Access Protocol (SWAP), Wireless Gigabit Alliances (WiGig), or RF communication.

[0234] The communication interface (930) can perform data communication with source devices. For example, the communication interface (930) can transmit requests to source devices, and in response, receive duplicate files, thumbnails, metadata of multimedia files, system resource information, etc. from the source devices.

[0235] The input / output interface (940) may include an output unit that provides information or images and an input unit that receives input. The output unit may include a display. The display may display duplicate files or thumbnails. The input unit may receive various types of input from the user and may include at least one of a touch panel, a keypad, or a pen recognition panel.

[0236] FIG. 9b is a block diagram of a sink device (900) according to one embodiment.

[0237] In explaining Fig. 9b, any content overlapping with that explained in Fig. 9a is omitted for brevity.

[0238] In one embodiment, the memory (920) may store instructions and / or programs for implementing the functions of the duplication check module (921), the monitoring module (922), and the scheduling module (923). In addition, the memory (920) may further store a generation module (not shown).

[0239] The duplicate check module (921), the monitoring module (922), the scheduling module (923), and the generation module can be executed by the processor (910). Since the descriptions related to the operations of each of the aforementioned modules have already been described in the descriptions of the previous drawings, a repeated description will be omitted.

[0240] Meanwhile, embodiments of the present disclosure may also be implemented in the form of a recording medium containing computer-executable instructions, such as program modules, executed by a computer. Computer-readable media may be any available media that can be accessed by a computer, and include both volatile and nonvolatile media, removable and non-removable media. Furthermore, computer-readable media may include computer storage media and communication media. Computer storage media include both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, or other data. Communication media may typically include computer-readable instructions, data structures, or other data in a modulated data signal, such as program modules.

[0241] Additionally, a computer-readable storage medium may be provided in the form of a non-transitory storage medium. Here, the term "non-transitory storage medium" simply means a tangible device that does not contain signals (e.g., electromagnetic waves). This term does not distinguish between cases where data is permanently stored in the storage medium and cases where data is temporarily stored. For example, a "non-transitory storage medium" may include a buffer in which data is temporarily stored.

[0242] According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.

[0243] The above description of the present disclosure is provided for illustrative purposes only, and those skilled in the art will readily appreciate that modifications to other specific forms can be made without altering the technical spirit or essential features of the present disclosure. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. For example, components described as being single may be implemented in a distributed manner, and similarly, components described as being distributed may be implemented in a combined manner.

[0244] The scope of the present disclosure is indicated by the claims described below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present disclosure.

Claims

1. A method for a sink device to obtain thumbnails for duplicate files existing in source devices, A step (S601) of receiving metadata of multimedia files stored in the source devices and system resource information of the source devices from each of the source devices; For each of the above source devices, a step (S602) of detecting duplicate files among the multimedia files stored in the source device based on metadata of the multimedia files of the source device; For each of the above source devices, a step (S603) of determining the number of duplicate files stored in the source device to be allocated to the source device based on the system resource information of the source device; and A method comprising a step (S604) of obtaining thumbnails of the duplicate files by requesting the allocated number of duplicate files or thumbnails of the allocated number of duplicate files for each of the source devices.

2. In paragraph 1, The step of determining the number of allocations for the above source device is: A method comprising the step of determining the allocation number for each of the source devices so as to minimize the time taken to receive thumbnails of the duplicate files from the source devices.

3. In paragraph 1 or 2, The step of determining the number of allocations for the above source device is: For each of the source devices, a step of estimating a transmission time for transmitting thumbnails of the allocated number of duplicate files from the source device to the sink device based on system resource information of the source device; and A method comprising the step of determining the number of allocations for each of the source devices such that a source device with a shorter estimated transmission time has a larger number of allocations than a source device with a longer estimated transmission time.

4. In paragraph 1 or 2, The step of determining the number of allocations for the above source device is: For each of the source devices, a step of estimating a generation time at which the source device generates thumbnails of the allocated number of duplicate files based on system resource information of the source device and a transmission time at which the thumbnails of the generated duplicate files are transmitted from the source device to the sink device based on system resource information of the source device; and A method comprising the step of determining the number of allocations for each of the source devices such that a source device having a smaller sum of the estimated creation time and the estimated transmission time has a larger number of allocations than a source device having a larger sum of the estimated creation time and the estimated transmission time.

5. In any one of paragraphs 1 to 4, The step of obtaining thumbnails of the above duplicate files is: A step of requesting thumbnails of the allocated number of duplicate files for each of the above source devices; and A method comprising the step of receiving thumbnails of the allocated number of duplicate files from each of the source devices.

6. In paragraph 1, The step of determining the number of allocations for the above source device is: A method comprising the step of determining the allocation number for each of the source devices so as to minimize the time taken to receive the duplicate files from the source devices.

7. In paragraph 6, The step of determining the number of allocations for the above source device is: For each of the source devices, a step of estimating a transmission time for transmitting the allocated number of duplicate files from the source device to the sink device based on system resource information of the source device; and A method comprising the step of determining the number of allocations for each of the source devices such that a source device with a shorter estimated transmission time has a larger number of allocations than a source device with a longer estimated transmission time.

8. In paragraph 6 or 7, The step of obtaining thumbnails of the above duplicate files is: A step of requesting duplicate files of the allocated number for each of the above source devices; A step of receiving the allocated number of duplicate files from each of the above source devices; and A method comprising the step of generating thumbnails of the duplicate files from the received duplicate files.

9. In paragraph 8, The steps of the above paragraph 8 are performed when it is determined that the time taken for the sink device to receive the duplicate files from the source devices and generate thumbnails of the duplicate files from the received duplicate files is shorter than the time taken for the source devices to generate thumbnails of the duplicate files and transmit the thumbnails of the generated duplicate files to the sink device.

10. In any one of paragraphs 1 to 9, A method further comprising the step of displaying thumbnails of the obtained duplicate files.

11. In a sink device (900) for obtaining thumbnails for duplicate files existing in source devices, A memory (920) storing one or more instructions; and comprising one or more processors (910) for executing one or more instructions stored in the memory; The one or more processors (910) execute the one or more instructions, From each of the above source devices, metadata of multimedia files stored in the source device and system resource information of the source device are received, For each of the above source devices, duplicate files are detected among the multimedia files stored in the source device based on metadata of the multimedia files of the source device, For each of the above source devices, the number of duplicate files stored in the source device is determined based on the system resource information of the source device, and the number of allocations for the source device is determined. A sink device configured to obtain thumbnails of the duplicate files by requesting the allocated number of duplicate files or thumbnails of the allocated number of duplicate files for each of the source devices.

12. In paragraph 11, The one or more processors (910) execute the one or more instructions, A sink device configured to determine the allocation number for each of the source devices so as to minimize the time taken to receive thumbnails of the duplicate files from the source devices.

13. In paragraph 11 or 12, The one or more processors (910) execute the one or more instructions, For each of the above source devices, the transmission time for transmitting thumbnails of the allocated number of duplicate files from the source device to the sink device is estimated based on the system resource information of the source device, A sink device configured to determine the number of allocations for each of the source devices such that a source device with a shorter estimated transmission time has a larger number of allocations than a source device with a longer estimated transmission time.

14. In paragraph 11 or 12, The one or more processors (910) execute the one or more instructions, For each of the above source devices, a generation time at which the source device generates thumbnails of the allocated number of duplicate files based on system resource information of the source device and a transmission time at which the thumbnails of the generated duplicate files are transmitted from the source device to the sink device based on system resource information of the source device are estimated, A sink device configured to determine the number of allocations for each of the source devices such that a source device having a smaller sum of the estimated generation time and the estimated transmission time has a larger number of allocations than a source device having a larger sum of the estimated generation time and the estimated transmission time.

15. A computer-readable recording medium having recorded thereon a program for executing the method of any one of clauses 1 to 10 on a computer.

Citation Information

Patent Citations

  • AV device and UI display method

    JP2009177768A

  • Systems and methods for presenting search results from multiple sources

    JP2020519067A

  • Display apparatus connected to multiple source devices and method for controlling the same

    KR101824991B1

  • Storage device and method for distributed processing of multimedia data

    KR1020150060149A

  • METHOD and APPARATUS for sorting stem cell using optical diffraction tomography

    KR1020230126233A