WO2022124679A1 - 복제 비디오를 검출하는 장치 및 방법 - Google Patents
복제 비디오를 검출하는 장치 및 방법 Download PDFInfo
- Publication number
- WO2022124679A1 WO2022124679A1 PCT/KR2021/017862 KR2021017862W WO2022124679A1 WO 2022124679 A1 WO2022124679 A1 WO 2022124679A1 KR 2021017862 W KR2021017862 W KR 2021017862W WO 2022124679 A1 WO2022124679 A1 WO 2022124679A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- video data
- data
- electronic device
- video
- vector
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 69
- 239000013598 vector Substances 0.000 claims abstract description 209
- 238000004891 communication Methods 0.000 claims description 68
- 238000001514 detection method Methods 0.000 claims description 37
- 230000002123 temporal effect Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 30
- 238000010801 machine learning Methods 0.000 description 27
- 239000011159 matrix material Substances 0.000 description 23
- 230000004044 response Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 19
- 239000000284 extract Substances 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 238000013528 artificial neural network Methods 0.000 description 13
- 238000012549 training Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000009966 trimming Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 238000002583 angiography Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- -1 electricity Substances 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
Definitions
- Embodiments of the present disclosure relate to an electronic device for detecting duplicate video, a method for controlling an electronic device, and a recording medium in which a program is recorded.
- the electronic device has a memory for storing data and instructions.
- the memory is implemented with various types of volatile memory and non-volatile memory.
- a memory is an essential resource in an electronic device for the smooth functioning of the electronic device. Since the memory has a certain limited amount of storage space, the electronic device must utilize the memory within the limited storage space.
- the memory stores the operating system, applications installed in the operating system (eg, camera applications, video editors, social media applications, etc.), and data generated by the applications. However, half of the memory's storage space is used by the operating system and applications, reducing the amount of memory available for data storage.
- the data stored in the memory is, for example, video data or image data generated by a camera application or the like.
- the data stored in the memory is data generated by a social media application, and includes a duplicate image, a duplicate video, and the like.
- a number of duplicate images, duplicate videos, etc. are generated by social media applications, they occupy a storage space of the memory, and there is a problem in that the storage space of the memory is insufficient.
- Embodiments of the present disclosure provide an apparatus and method for optimizing a memory. More specifically, embodiments of the present disclosure provide an apparatus and method for solving the problem of insufficient storage space in a memory due to duplicate video.
- embodiments of the present disclosure provide an apparatus and method for automatically detecting a duplicate video and providing information about the duplicate video, without the need for a user to manually search for and manage the duplicate video.
- embodiments of the present disclosure provide an apparatus and method for providing information about a duplicate video to a user and providing a user interface through which the user can delete or transmit the duplicate video.
- Another aspect of the present disclosure is to provide an apparatus and method for easily restoring a subclip by storing metadata about the subclip when a subclip of a duplicate video is deleted.
- a memory for storing first video data and second video data; and at least one processor, wherein the at least one processor is configured to generate first vector data corresponding to the first video data based on image data and audio data of the first video data; Second vector data corresponding to the second video data is generated based on the image data and audio data of the data, and the first vector data and the second vector data are defined in a coordinate system in which the first vector data and the second vector data are defined. calculating a spatial distance between two vector data, and determining one of the first video data and the second video data as a duplicate video or a sub clip based on it being determined that the spatial distance satisfies a first condition; A device is provided.
- the at least one processor is configured to obtain, for each of the plurality of frames sampled from the first video data, at least one image feature value obtained from image data and audio data generating at least one audio feature value, and generating first frame vector data including the at least one image feature value and the at least one audio feature value, each of the plurality of frames of the first video data generating first vector data including a plurality of first frame vector data for generating at least one audio feature value obtained from Second vector data including a plurality of second frame vector data for each may be generated.
- the calculating of the spatial distance includes each of the plurality of first frame vector data included in the first vector data and the plurality of pieces included in the second vector data. calculating the spatial distance between each of the second frame vector data of Thus, one of the first video data and the second video data may be determined as a duplicate video or a sub clip.
- the at least one processor is configured to obtain, for each of the plurality of frames sampled from the first video data, a time information value indicating a reproduction time point in the first video data. generating, inserting the time information value into the first frame vector data, and for each of the plurality of frames sampled from the second video data, a time information value indicating a playback time in the second video data generating, inserting the temporal information value into the second frame vector data, and calculating the spatial distance includes excluding the temporal information value and calculating the spatial distance based on the image feature value and the audio feature value can be calculated.
- the at least one processor is configured to, when the entire frame period of the first video data and the entire frame period of the second video data correspond to each other, the first video data and the When it is determined that the second video data is a duplicate video, and an entire frame period of one of the first video data and the second video data corresponds to a part of a frame period of the other video data, the one video data It can be determined as a sub clip of the other video data.
- the generating of the image feature value for the first video data and the second video data includes converting each frame into a gray scale image, and the gray scale image
- the image feature value including a plurality of binary values may be generated based on the pixel value of the small image and converted into a small image by reducing the size of .
- the generating of the audio feature value for the first video data and the second video data corresponds to each of a plurality of frames sampled from the video data, and a predetermined time Obtaining an audio sample corresponding to a section, converting the audio sample into a frequency domain, obtaining an intensity distribution of a frequency detected in the audio sample, and obtaining the audio corresponding to information on a predetermined number of higher frequencies having high intensity You can create feature values.
- the at least one processor is configured to: based on determining that the first video data and the second video data are a duplicate video or a subclip, the first video data and the second video data One of the data can be deleted.
- the electronic device further includes a display and an input interface, and the at least one processor determines that the first video data and the second video data are duplicate videos or sub-clips. outputting, through the display, information on whether the first video data and the second video data are duplicate videos or subclips, and attribute information of the first video data and the second video data, based on the One of the first video data and the second video data may be deleted from the memory based on an input signal input through the input interface.
- the at least one processor wherein one of the first video data and the second video data determined to be a duplicate video or a sub clip is master video data, and the other is a sub clip
- the video data corresponding to the subclip is deleted, and for the deleted video data, the access path information of the master video data, the starting point in the master video data, the playback time, the resolution, the frame rate, or the file size Meta data including at least one piece of information may be stored.
- the electronic device further includes a communication unit, and the at least one processor receives the sub clip information input through the communication unit and corresponds to the received sub clip information. It is possible to retrieve the meta data to be used, and create a sub clip from the master video data based on the meta data.
- the generating of the sub clip may include upscaling at least a portion of the master video data using a generative adversarial network (GAN), or at least one API (Application Programming Interface) Interface) using at least one of downscaling at least a portion of the master video data.
- GAN generative adversarial network
- API Application Programming Interface
- the electronic device further includes a communication unit, and the second video data is video data stored in at least one external device connected through the communication unit or a cloud storage space, and the at least one the processor of , based on determining that one of the first video data and the second video data is a duplicate video or a subclip, deletes one of the first video data and the second video data,
- the access path of the master video data can be transferred to the device where the deleted video data is stored or to the cloud storage space.
- the electronic device further includes a display, a communication unit, and an input interface, and the at least one processor, when transmitting the first video data to an external device or a server, 1 Detect at least one duplicate video or at least one subclip for video data, display information on the at least one duplicate video or at least one subclip through the display, and input through the input interface
- the duplicated video or duplicated subclip selected by the input signal may be transmitted to the external device or service.
- the method comprising: storing first video data and second video data; generating first vector data corresponding to the first video data based on image data and audio data of the first video data; generating second vector data corresponding to the second video data based on image data and audio data of the second video data; calculating a spatial distance between the first vector data and the second vector data in a coordinate system in which the first vector data and the second vector data are defined; and determining one of the first video data and the second video data as a duplicate video or a sub clip based on it being determined that the spatial distance satisfies a first condition.
- a computer-readable recording medium in which a program for performing an electronic device control method in a computer is recorded.
- FIG. 1 is a diagram illustrating an operation of an electronic device according to an embodiment of the present disclosure.
- FIG. 2 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
- FIG. 3 is a block diagram illustrating a structure of an electronic device according to another exemplary embodiment of the present disclosure.
- FIG. 4 is a flowchart illustrating a method for controlling an electronic device according to an embodiment of the present disclosure.
- FIG. 5 is a block diagram illustrating a structure of a processor according to an embodiment of the present disclosure.
- FIG. 6 is a flowchart illustrating a method of optimizing a memory in an electronic device according to an embodiment of the present disclosure.
- FIG. 7 is a flowchart illustrating a method for determining a spatial distance between first video data and second video data according to an embodiment of the present disclosure.
- FIG. 8 is a flowchart illustrating a method for an electronic device to regenerate a sub clip from second video data using a data file according to an embodiment of the present disclosure.
- FIG. 9 is a flowchart illustrating a method of generating a sub clip from second video data by an electronic device based on a constraint of an application, according to an embodiment of the present disclosure.
- FIG. 10 is a diagram illustrating a method of generating a scaled gray scale image from second video data by an electronic device in a scenario according to an embodiment of the present disclosure
- FIG. 11 illustrates a method of generating binary data from a grayscale image resized by an electronic device in an exemplary scenario according to an embodiment of the present disclosure.
- FIG. 12 is a diagram illustrating a method in which an electronic device extracts an audio chunk from second video data according to an embodiment of the present disclosure.
- FIG. 13 is a diagram illustrating a method of determining a dominant frequency of an audio chunk in an electronic device according to an embodiment of the present disclosure.
- FIG. 14 is a diagram illustrating a method in which an electronic device generates second vector data from second video data, according to an embodiment of the present disclosure.
- 15 is a diagram illustrating a method for an electronic device to identify a subclip of second video data according to an embodiment of the present disclosure.
- 16A is a diagram illustrating a method of estimating, by an electronic device, a spatial distance between duplicate video and second video data according to an embodiment of the present disclosure.
- 16B is a diagram illustrating a method for an electronic device to estimate a spatial distance between a subclip and second video data according to an embodiment of the present disclosure.
- 17A and 17B illustrate a meta data file of a sub clip of the second video data, according to an embodiment of the present disclosure.
- 18A, 18B, and 18C are diagrams illustrating a method in which an electronic device regenerates a sub clip from a master video using a metadata file in an example scenario according to an embodiment of the present disclosure.
- FIG. 19 illustrates a cloud storage device for storing duplicate video, according to an embodiment of the present disclosure.
- 20A is a diagram illustrating a method of displaying, by an electronic device, a sub clip of master video data according to an embodiment of the present disclosure.
- 20B is a diagram illustrating a method for an electronic device to provide a sub clip of a master video to a user for sharing to an application in an exemplary scenario, according to an embodiment of the present disclosure.
- 21 is a block diagram of an electronic device in a network environment, according to various embodiments of the present disclosure.
- module or “unit” may be implemented as one or a combination of two or more of software, hardware, or firmware, and according to embodiments, a plurality of “module” or “unit” may be one It is also possible that it is implemented as an element of , or that one “module” or “part” includes a plurality of elements.
- a component when referred to as “connected” or “connected” with another component, the component may be directly connected or directly connected to the other component, but in particular It should be understood that, unless there is a description to the contrary, it may be connected or connected through another element in the middle.
- FIG. 1 is a diagram illustrating an operation of an electronic device according to an embodiment of the present disclosure.
- the electronic device 100 executes various types of applications.
- the electronic device 100 may perform a chatting application, a social networking service (SNS) application, and the like.
- SNS social networking service
- Such an application may provide a function for sharing multimedia data.
- the electronic device 100 receives multimedia data using various applications or transmits multimedia data to an external device. These applications, when transmitting multimedia data to an external device or server, create a copy of the multimedia data, create a compressed version with reduced capacity, or create a sub clip created by trimming some sections, and then transmit the newly created file.
- SNS social networking service
- an application creates a translation to convert data to a file extension required by the application.
- a chatting application transmits video data having an extension such as mkv, avi, mov, it converts the video data into a file with an mp4 extension to generate a converted version, and transmits the converted version of the mp4 extension.
- an extension such as mkv, avi, mov
- Such copies, compressed copies, sub clips, and converted copies are collectively referred to as duplicate data.
- Such duplicate data includes image data, video data, or audio data and the like.
- the electronic device 100 when video data is transmitted using a chatting application, the electronic device 100 generates duplicate videos 110a and 110b and transmits the corresponding video data.
- duplicate data generated by an application for transmitting multimedia data remains in the memory of the electronic device even after the multimedia data is transmitted.
- a duplicate video 122a or sub clip 122b is stored in memory along with the original video data 120 .
- the storage space of the memory is insufficient by occupying the storage space of the memory.
- video data since video data has a larger capacity than image data and audio data, it is a major cause of insufficient storage space in a memory. This problem will be described in detail with reference to FIG. 1 .
- the GUI view 130 of FIG. 1 shows information about the memory (RAM, ROM, etc.) of the electronic device.
- the electronic device has 128 GB of total storage and 59.09 GB is in use.
- Photos and videos occupy a large portion of the memory to the extent that photos and videos occupy 17 GB of the total storage space of the memory.
- video data occupies 50% of the memory in the smartphone, so the proportion of video data occupying the memory is high. In this way, when the video data excessively occupies the memory, the user must delete the existing data undesirably.
- various applications are recently used in the electronic device 100 , since the memory storage space used by the operating system and a plurality of applications in the electronic device 100 is large, the problem of insufficient storage space in the memory has been highlighted.
- the embodiments of the present disclosure provide a function to detect, manage, and delete duplicate videos or sub clips in the electronic device 100, and implement such a function
- a function to detect, manage, and delete duplicate videos or sub clips in the electronic device 100 and implement such a function
- FIG. 2 is a block diagram illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
- the electronic device 100a includes a processor 210 and a memory 220 .
- the electronic device 100a may be implemented as various types of devices including a memory and a processor.
- the electronic device 100a may be, for example, a smartphone, a tablet personal computer, a mobile phone, a video phone, an e-book reader, or a desktop personal computer (PC).
- computer laptop personal computer, netbook computer, workstation, server, personal digital assistant (PDA), portable multimedia player (PMP), MP3 player, mobile medical device, camera ), a wearable device, or a flexible device may include at least one of.
- the wearable device may be an accessory type (eg, a watch, ring, bracelet, anklet, necklace, eyeglass, contact lens, or head-mounted-device (HMD)), a fabric or an integrated garment (HMD). It may include at least one of: electronic clothing), body attachable (eg skin pad or tattoo), or bioimplantable (eg implantable circuit).
- HMD head-mounted-device
- the electronic device 100a may be a home appliance.
- Home appliances are, for example, televisions, digital video disk (DVD) players, audio, refrigerators, air conditioners, vacuum cleaners, ovens, microwave ovens, washing machines, air purifiers, set-top boxes, home automation controls. It may include at least one of a home automation control panel, a security control panel, a TV box, a game console, an electronic dictionary, an electronic key, a camcorder, or an electronic picture frame.
- DVD digital video disk
- the electronic device 100a may include various medical devices (eg, various portable medical measuring devices (eg, a blood glucose meter, a heart rate monitor, a blood pressure monitor, or a body temperature monitor), magnetic resonance angiography (MRA), etc.). ), magnetic resonance imaging (MRI), computed tomography (CT), imagers, or ultrasound machines, etc.), navigation devices, global navigation satellite system (GNSS), EDR (event data recorder), FDR ( flight data recorders), automotive infotainment devices, marine electronic equipment (e.g.
- marine navigation systems gyro compasses, etc.
- avionics security devices
- vehicle head units industrial or domestic robots
- a financial institution's automatic teller's machine (ATM) a store's point of sales (POS), or Internet of things (e.g. light bulbs, sensors, electricity or gas meters, sprinkler devices, smoke alarms, thermostats) thermostat), street lamps, toasters, exercise equipment, hot water tanks, heaters, boilers, etc.).
- ATM automatic teller's machine
- POS point of sales
- Internet of things e.g. light bulbs, sensors, electricity or gas meters, sprinkler devices, smoke alarms, thermostats) thermostat
- street lamps toasters, exercise equipment, hot water tanks, heaters, boilers, etc.
- the electronic device 100a is a piece of furniture or a building/structure, an electronic board, an electronic signature receiving device, and a projector. , or various measurement devices (eg, water, electricity, gas, or radio wave measurement devices).
- the electronic device 100a may be a combination of one or more of the various devices described above.
- the electronic device 100a according to an embodiment of the present disclosure is not limited to the above-described devices, and may include a new type of electronic device according to technological development.
- the processor 210 controls the overall operation of the electronic device 100a.
- the processor 210 may be implemented with one or more processors.
- the processor 210 may execute an instruction or a command stored in the memory 220 to perform a predetermined operation.
- the processor 210 corresponds to a general-purpose processor such as a central processing unit (CPU) and a mobile application processor (AP).
- the processor 210 may correspond to a dedicated processor such as a graphics-only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), or an AI-only processor (eg, a neural processing unit).
- the processor 210 may include multiple cores for executing instructions.
- the processor 210 controls the processing of input data according to a predefined operation rule or ML model stored in the memory 220 .
- Pre-defined operational rules or ML models are provided through training or learning.
- learning means to apply a learning method to a plurality of training data to create an ML model with predefined operation rules or desired characteristics.
- Learning may be performed in the electronic device 100a itself on which ML is performed according to an embodiment, or may be implemented through a separate server or system.
- the learning method is a method of inducing, permitting, or controlling a predetermined target device (eg, a robot or the electronic device 100a) to make a judgment or prediction by training a predetermined target device using a plurality of learning data.
- Learning methods include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
- An ML model may consist of a plurality of neural network layers. ML models are provided through training or learning. Each layer has a plurality of weight values, and a layer operation is performed through calculation of the previous layer and calculation of a plurality of weights.
- Examples of neural networks include Convolutional Neural Network (CNN), Deep Neural Network (DNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), Generative Adversarial There are Network (GAN) and deep Q-network.
- the memory 220 stores various data and instructions.
- the memory 220 stores image data, video data, audio data, metadata files, and the like.
- the memory 220 stores various programs or software.
- the memory 220 stores an operating system, middleware, or an application.
- the memory 220 may include a volatile memory or a non-volatile memory.
- the memory 220 may include a flash memory type, a hard disk type, a multimedia card micro type, or a card type memory (eg, SD or XD memory). etc.), RAM (Random Access Memory), SRAM (Static Random Access Memory), ROM (Read-Only Memory), EPROM (Electrically Programmable Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM ( programmable read-only memory), a magnetic memory, a magnetic disk, and an optical disk may include at least one type of storage medium.
- Memory 220 may be considered a non-transitory storage medium in some examples.
- the term non-tansitory may indicate that the storage medium is not embodied in a carrier wave or a propagated signal.
- the term 'non-transient' should not be construed as meaning that the memory 220 is immobile.
- memory 220 may be configured to store a greater amount of information than each memory 220 .
- the non-transitory storage medium may store data that may change over time (eg, in random access memory (RAM) or cache).
- RAM random access memory
- the memory 220 stores the first video data and the second video data.
- the processor 210 generates first vector data corresponding to the first video data based on image data and audio data of the first video data stored in the memory 220 . Also, the processor 210 generates second vector data corresponding to the second video data based on the image data and the audio data of the second video data stored in the memory 220 .
- the processor 210 defines first vector data and second vector data in a predetermined coordinate system.
- the first vector data and the second vector data include a plurality of elements.
- the plurality of elements includes at least one image feature value generated from image data and at least one audio feature value generated from audio data.
- the processor 210 calculates a spatial distance between the first vector data and the second vector data in a predetermined coordinate system.
- the spatial distance may correspond to a normal value between the first vector data and the second vector data.
- the processor 210 determines one of the first video data and the second video data as a duplicate video or a sub clip based on determining that the spatial distance satisfies the first condition.
- the two video data have the same reproduction time and the same content.
- a sub clip is video data generated by trimming a partial section of other video data. For example, when the playback time of video data is 1 minute, a section between 15 seconds and 45 seconds of playback time among all video data is cut and stored as a separate file to generate a sub clip.
- the processor 210 detects a duplicate video or subclip by comparing some or all frames of the first video data and the second video data, respectively.
- FIG. 3 is a block diagram illustrating a structure of an electronic device 100b according to another exemplary embodiment of the present disclosure.
- the electronic device 100b includes a processor 210 , a memory 220 , an input interface 310 , a communication unit 320 , and a display 330 . At least one of the input interface 310 , the communication unit 320 , and the display 330 may be omitted according to an exemplary embodiment. In the description of FIG. 3, portions overlapping those of the description of FIG. 2 with respect to the processor 210 and the memory 220 will be omitted, and differences will be mainly described.
- the input interface 310 is an interface for receiving an external input.
- the input interface 310 may receive commands or data from an external (eg, a user).
- the input interface 310 may include, for example, a touch screen, a touch pad, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
- the input interface 310 receives a command to control an application.
- the input interface 310 may receive a video data selection signal, a video data transmission command, and the like.
- the input interface 310 may receive a command to delete the duplicate video or sub clip.
- the communication unit 320 may communicate with an external device by wire or wirelessly.
- the communication unit 320 may perform short-range communication, for example, Bluetooth, Bluetooth Low Energy (BLE), Near Field Communication, WLAN (Wi-Fi), Zigbee, infrared (IrDA). Data Association) communication, WFD (Wi-Fi Direct), UWB (ultra wideband), Ant+ communication, etc. can be used.
- the communication unit 320 may use mobile communication, and may transmit/receive a wireless signal to/from at least one of a base station, an external terminal, and a server over a mobile communication network.
- the communication unit 320 transmits video data to an external device or a server.
- the communication unit 320 transmits the original video data, the duplicate video, or the sub clip to an external device or server.
- the display 330 displays an operation screen and data of the electronic device 100b.
- the display 330 operates to display predetermined information based on a driving signal provided from the processor 210 .
- the display 330 displays a graphical user interface view (GUI View, Graphic User Interface View), image data, or video data.
- GUI View graphical user interface view
- the display 330 may be implemented in the form of, for example, a liquid crystal display device, an organic electroluminescence display device, an electrophoretic display device, or the like.
- FIG. 4 is a flowchart illustrating a method for controlling an electronic device according to an embodiment of the present disclosure.
- Each step of the image processing method of the present disclosure may be performed by various types of electronic devices including a processor and a memory.
- an exemplary embodiment in which the electronic device 100 , 100a , or 100b according to the embodiments of the present disclosure performs the electronic device control method will be mainly described. Accordingly, the embodiments described for the electronic device 100 , 100a , or 100b are applicable to the embodiments for the electronic device control method, and on the contrary, the embodiments described for the electronic device control method are the electronic device 100 , 100a , or 100b).
- the electronic device control method according to the disclosed embodiments is not limited to being performed by the electronic device 100 , 100a , or 100b disclosed in the present disclosure, and may be performed by various types of electronic devices. In the present disclosure, when the electronic device 100 , 100a , or 100b according to various embodiments is collectively referred to, an identification number is described as the electronic device 100 .
- the electronic device 100 detects a duplicate video or a sub clip by selecting the first video data and the second video data in a predetermined operation mode. For example, when the user selects a function for managing the storage space of the memory 220 , the electronic device 100 starts a detection operation of a duplicate video or a sub clip. As another example, when the storage space of the memory 220 is insufficient, the electronic device 100 starts an operation of detecting a duplicate video or a sub clip. As another example, when performing an operation of transmitting video data through a predetermined application, the electronic device 100 detects a duplicate video or subclip.
- the electronic device 100 stores the first video data and the second video data in the memory 220 .
- the processor 210 may sequentially select the first video data and the second video data to compare the video data one-to-one within all the video data groups stored in the memory 220 or a video data group designated by the user.
- the processor 210 may sequentially select a combination of the first video data and the second video data to compare the video data one-to-one within all video data groups or a video data group designated by the user.
- the processor 210 of the electronic device 100 generates first vector data corresponding to the first video data in step S404, and generates first vector data corresponding to the second video data in step 406 create
- the order of steps S404 and S406 may be arbitrarily determined, and may be performed in parallel.
- the processor 210 generates first vector data from image data and audio data of the first video data.
- the image data of the first video data includes a plurality of frames.
- the processor 210 generates the first vector data by using all or part of the plurality of frames.
- the processor 210 samples some of the plurality of frames at predetermined time intervals, and generates first vector data by using the sampled frames. For example, the processor 210 may sample the frame at intervals of 0.2 seconds. According to an embodiment, the processor 210 may extract an image frame in a bitmap format from the video data using the FFmpegMediaMetadataRetriever() function of the open source library.
- the image frame is a color image
- each pixel of the image frame may include R (red), G (green), and B (blue) values.
- Each of the R, G, and B values may include a value between 0 and 255.
- a pixel value contains the color (eg red, green, blue) values at a specific location in the image frame.
- each image of size 100 * 100 has 100 * 100 pixels
- each pixel has three values that define the color values of R, G, and B.
- data representing the R value may be referred to as an R channel
- data representing the G value may be referred to as a G channel
- data representing the B value may be referred to as a B channel.
- the processor 210 converts the extracted image frame into a gray scale image by normalizing the R, G, and B values of each pixel of the image frame.
- the extracted image frame is converted to a grayscale image to keep the hash code independent of the color quality or small watermark in the extracted image frame.
- a pixel value of a gray scale image is defined between 0 and 255.
- the processor 210 resizes the gray scale image to a lower size (eg, 10x10 pixels).
- the size of a grayscale image is 1200x750 pixels and the size of a scaled grayscale image is 10x10 pixels.
- the processor 210 is configured to perform bilinear downsampling of the gray scale image using the Bitmap.createScaledBitmap() function of the open source library to resize the gray scale image.
- the processor 210 is configured to convert pixel values ranging from 0 to 225 of the gray scale image into binary data, where the binary data is important information in an image frame of a video.
- the processor 210 obtains an image feature value from frames of the sampled first video data.
- An image feature value is a set of values obtained from frame data.
- the processor 210 may obtain a set of binary image feature values.
- the processor 210 obtains an audio feature value from the audio data of the first video data.
- the processor 210 obtains an audio sample corresponding to each of the plurality of frames sampled from the first video data and corresponding to a predetermined time period. Audio samples may be referred to as audio chunks.
- the audio sample may correspond to the time point of the frame corresponding to the center of the time interval, and may correspond to audio data having a duration of 0.2 seconds. According to an embodiment, each audio sample may overlap an adjacent audio sample by 20%.
- the processor 210 obtains audio feature values from a plurality of audio samples.
- the processor 210 converts the audio samples into a decoded array.
- the processor 210 is configured to use an Open Media Acceleration (OMX) decoder to convert the audio samples into a decoded array, wherein the decoded array determines the amplitude (e.g., 80 dB).
- OMX Open Media Acceleration
- the processor 210 is configured to transform the decoded array into the frequency domain by performing a fast Fourier transform (FFT) on the decoded array.
- FFT fast Fourier transform
- the processor 210 is configured to determine the magnitude of each frequency in the frequency domain.
- the processor 210 is configured to identify a frequency in the frequency domain having a magnitude greater than a threshold value (eg, 10 dB), where the threshold value is a preset value.
- the processor 210 is configured to select a dominant frequency from the identified frequency based on the magnitude of the identified frequency, wherein the dominant frequency is important information in an audio sample of the video.
- the processor 210 may obtain an audio feature value based on the dominant frequency information.
- the processor 210 generates first vector data including an image feature value and an audio feature value.
- the first vector data may include 64 image feature values and 5 audio feature values, and may correspond to 69-dimensional vector data.
- the dominant frequencies are the top 5 frequencies having a larger magnitude among the identified frequencies, wherein the top 5 frequencies are arranged in an increasing order of magnitude.
- Processor 210 is configured to identify temporal information (ie, timestamps) of image frames and audio samples.
- the processor 210 is configured to combine the critical information of the image frame, the critical information of the audio sample, and the temporal information of the image frame and the audio chunk to generate vector data of the video data.
- Important information of an image frame corresponds to an image feature value
- important information of an audio sample corresponds to an audio feature value.
- vector data of video data includes n 70-dimensional vector data, where n is a natural number.
- the 70-dimensional vector data represents 64 values representing important information of the sampled image frame at time t, 5 values representing important information of the audio sample sampled at time t, and the timestamp of time t.
- the first vector data may include a time information value corresponding to the time of the corresponding frame.
- the time information value is a value indicating a playback time of the corresponding frame among the total playback times of video data to which the corresponding frame belongs.
- the time information value may be defined in the form of a time stamp, a frame identification number, or the like.
- the first vector data may include 64 image feature values, five audio feature values, and one time information value, and may correspond to 70-dimensional vector data.
- the processor 210 generates second vector data from the second video data in a process similar to that of generating the first vector data from the first video data.
- the processor 210 samples some frames from the image data of the second video data at predetermined time intervals to generate image feature values from the sampled frames.
- the processor 210 extracts an audio sample at a predetermined time interval from the audio data of the second video data, and obtains an audio feature value from the extracted audio sample.
- the processor 210 generates second vector data from the extracted image feature values and audio feature values.
- the second vector data may further include a time information value indicating time information of each frame.
- step S408 the processor 210 calculates a spatial distance between the first vector data and the second vector data.
- the processor 210 may determine a spatial distance between the first vector data and the second vector data using Equation (1).
- d(P, Q) corresponds to the spatial distance between two moving images.
- Y represents the number of 70-dimensional vector data in the first vector data P.
- L i represents the number of 70-dimensional vector data in the second vector data Q.
- P k represents the k-th first vector data
- Q j represents the j-th second vector data.
- step S410 the processor 210 determines whether the spatial distance satisfies the first condition.
- the first condition is whether the spatial distance is smaller than a predetermined first reference value.
- the processor 210 determines that one of the first video data and the second video data is the other duplicate video or sub clip in step S412 .
- the processor 210 may determine one of the two video data as the master video data and the other as the duplicate video according to a predetermined criterion. For example, the processor 210 may determine data having a high resolution among the first video data and the second video data as master video data, and may determine data having a low resolution as the duplicate video. If the resolutions of the first video data and the second video data are the same, the master video data may be determined based on different criteria. For example, when the resolutions of the first video data and the second video data are the same, the processor 210 may determine video data having a fast file creation time, video data having a high image quality, etc. as the master video data.
- the processor 210 determines video data having a longer playback time as master video data and video data having a shorter playback time as a sub clip. can do.
- the processor 210 is configured to determine a property of the first video with respect to the second video data in response to detecting that the first video data is a subclip of the second video.
- the property of the first video data with respect to the second video data is a starting point (ie, start time) (eg, 3 seconds) of the first video data in the second video data, the second in the second video data It includes the duration of the video data (eg, 20 seconds), the quality of the first video data (eg, 480p, 720p), and the like.
- the processor 210 is configured to determine a property of the second video data.
- the properties of the second video data include the storage location of the second video data stored in the memory 220 (ie, the storage location of the second video data in the memory 220) and the name of the second video data.
- the processor 210 may detect a duplicate video or subclip with respect to the video data stored in the memory 220 , and may generate a duplicate data group based on a relationship between the video data. For example, when video data A is the master video data, video data B is a subclip of video data A, and video data C is a subclip of video data A, the processor 210 may generate video data A and video data B. , and video data C may be determined as a duplicate data group.
- the processor 210 may define a redundant data group and store information on the redundant data group together with at least one of video data of the corresponding group in the form of metadata.
- metadata for the redundant data group may be stored in an EXIF (Exchangeable Image File Format) file header of video data A.
- metadata is stored as a metadata file, and the properties (eg, file name, access path, etc.) of the metadata file are included in the duplicate data group corresponding to the metadata as an EXIF file of each video data. can be stored in
- the master video data may correspond to, for example, video data received from an external device, video data generated using a camera application included in the electronic device 100 , and the like.
- a sub clip may be generated based on a user input.
- the processor 210 may select a specific section and generate a subclip based on a user input requesting trimming of video data.
- the processor creates a trimmed subclip from the video data using, for example, a Java API.
- the processor 210 determines whether the quality of the trimmed video data is higher or lower than that of the master video data.
- the quality of video data is determined based on resolution, bit rate, and the like.
- the processor 210 obtains information on the quality of the video data based on the properties of the video data stored in the EXIF file.
- the processor 210 is configured to provide the trimmed video as a subclip in response to determining that the quality of the original video data and the quality of the trimmed video data are the same.
- the processor 210 generates modified video data in response to determining that the quality of the trimmed video data is lower than the quality of the original video data.
- the processor 210 may upscale the trimmed video data based on the quality of the original video data. When the quality of the trimmed video data is equal to or better than that of the original video data, the processor 210 provides the trimmed video data as a sub clip.
- the processor 210 is configured to perform a predetermined action using the subclip. Examples of performing an action using a subclip include sharing the subclip with an application, using the application to play the subclip, and using the application to convert the subclip to another format.
- the processor 210 downscales (or downsamples) video data using a Java API. Also, according to an embodiment of the present disclosure, the processor 210 upscales video data using a machine learning (ML) model.
- the processor 210 may perform an operation of the ML model.
- the memory 220 stores instructions for executing the ML model, and the ML model may operate in a storage space on the memory 220 .
- the processor 210 is configured to receive an input from an application to create a duplicate video or subclip.
- the processor 210 is configured to determine size and quality constraints of the application.
- the size limit of the application includes the maximum size (eg 15 MB) or maximum length (eg 30 seconds) of a video that the application can receive or upload.
- An application's quality constraints include the maximum bit rate (eg 40MB/s) or maximum resolution (eg 320p) of the video that the application can receive or upload.
- the processor 210 is configured to transform the video data based on size and quality constraints of the application. In the example scenario, video data is transformed using a Java API. Further, the processor 210 is configured to provide the converted video data to the application. In addition, the processor 210 is configured to delete the converted video data in the electronic device 100 as the converted video data is provided to the application.
- the processor 210 is configured to generate a metadata file of the first video data based on the property of the first video data and the property of the second video data.
- the metadata file is an Exchangeable Image File Format (EXIF) file.
- the processor 210 is configured to store the metadata file in the memory 220 .
- the processor 210 is configured to generate an EXIF file (ie, a metadata file) of the second video data, wherein the EXIF file of the second video data is stored in the memory 220 . Contains the storage location of the subclip.
- the processor 210 is configured to store the EXIF file of the second video data in the memory 220 . Whenever the second video data is moved to another storage location of the memory 220 , the processor 210 updates the storage location of the second video data to an EXIF file of the first video data.
- the processor 210 is configured to display an indicator (eg, a thumbnail, an icon) indicating an entry of a sub clip on the electronic device 100 .
- the processor 210 is configured to link the indicator to the metadata file.
- the processor 210 is configured to delete the first video data in the electronic device 100 and display a thumbnail of the first video data, where the thumbnail is linked to the EXIF file.
- the processor 210 retrieves the EXIF file from the memory 220 to open or share the first video data.
- the master video data may correspond to, for example, video data received from an external device, video data generated using a camera application included in the electronic device 100 , and the like.
- FIG. 5 is a block diagram illustrating a structure of a processor according to an embodiment of the present disclosure.
- the processor 210 includes a vector data generation unit 510 , a spatial distance estimation unit 520 , a duplicate video detection unit 530 , and a sub clip detection unit 540 .
- the vector data generation unit 510 , the spatial distance estimation unit 520 , the duplicate video detection unit 530 , and the sub clip detection unit 540 are implemented by a processing circuit such as a logic gate, an integrated circuit, a microprocessor, and a microcontroller. .
- the circuit may be implemented on a substrate support such as, for example, one or more semiconductor chips or printed circuit boards.
- the vector data generator 510 receives the first video data. According to an embodiment, the vector data generator 510 detects first video data stored in the memory 220 . The spatial distance estimator 520 determines a spatial distance between the first video data and the second video data in response to receiving or detecting the first video data. In an embodiment, the vector data generator 510 generates first vector data of the first video data and second vector data of the second video data. The spatial distance estimator 520 determines a spatial distance between the first vector data and the second vector data.
- the vector data generator 510 extracts an image frame from a video (ie, the first video data or the second video data) at regular intervals.
- the vector data generator 510 samples the video at a predetermined sampling interval (ie, a constant interval).
- the vector data generator 510 extracts an image frame from the sampled image.
- the vector data generator 510 normalizes the color channel of the image frame from the extracted image frame and converts it into a gray scale image.
- the vector data generator 510 adjusts the size of the gray scale image to a lower size.
- the vector data generator 510 may perform double linear downsampling of the gray scale image by using the Bitmap.createScaledBitmap() function of the open source library to adjust the size of the gray scale image.
- the vector data generator 510 converts pixel values ranging from 0 to 225 of the gray scale image into binary data.
- the vector data generator 510 extracts audio chunks from video at regular intervals, where each audio chunk overlaps an adjacent audio chunk by 20%. According to another embodiment, the vector data generator 510 extracts an audio chunk from the sampled video. The vector data generator 510 converts the audio chunk into a decoded array. According to an embodiment, the vector data generator 510 uses an OMX decoder to convert an audio chunk into a decoded array. The vector data generator 510 converts the decoded array into a frequency domain by performing FFT on the decoded array. Also, the vector data generator 510 determines the magnitude of each frequency in the frequency domain.
- the vector data generator 510 identifies a frequency in the frequency domain having a magnitude greater than a threshold. The vector data generator 510 selects a dominant frequency from the identified frequency based on the magnitude of the identified frequency. The vector data generator 510 identifies time information (ie, time stamps) of the image frame and the audio chunk. The vector data generator 510 generates video vector data by combining important information of an image frame, important information of an audio chunk, and time information of an image frame and audio chunk. The spatial distance estimator 520 determines the spatial distance between the first vector data and the second vector data using Equation 1 described above.
- the spatial distance estimator 520 determines whether the spatial distance between the first video data and the second video data satisfies a spatial threshold condition, that is, a first reference value.
- the spatial distance estimator 520 stores the first video data in the memory 220 in response to determining that the spatial distance between the first video data and the second video data does not satisfy the spatial threshold condition.
- the spatial distance estimator 520 determines whether the first video data is a duplicate video of the second video data and the second video data. It detects that it is one of the sub clips.
- the spatial distance estimator 520 detects that the first video data is one of a duplicate video of the second video data and a subclip of the second video data, and provides the user with an option to manually delete the first video data. According to an embodiment, the spatial distance estimator 520 checks whether the automatic deletion mode is activated in the electronic device 100 . When the automatic deletion mode is deactivated, the spatial distance estimator 520 provides a duplicate video list of the second video data and a subclip of the second video data to the user so that the user can manually delete the duplicate video and the subclip. When the automatic deletion mode is activated in the electronic device 100 , the spatial distance estimator 520 determines whether the length of the first video data and the length of the second video data are the same.
- the duplicate video detection unit 530 In response to determining that the duration of the first video data and the duration of the second video data are the same, the duplicate video detection unit 530 detects that the first video data is a duplicate video of the second video data. Also, the duplicate video detection unit 530 deletes one of the first video data and the second video data in the electronic device 100 .
- the sub clip detection unit 540 detects that the first video data is a sub clip of the second video data in response to determining that the duration of the first video data is not the same as the duration of the second video data. In response to detecting that the first video data is a subclip of the second video data, the subclip detection unit 540 determines a property of the first video data with respect to the second video data. Also, the sub clip detection unit 540 determines a property of the second video data. The sub clip detector 540 generates a metadata file of the first video data based on the properties of the first video data and the properties of the second video data. The sub clip detection unit 540 stores the metadata file in the memory 220 .
- the sub clip detector 540 generates an EXIF file (ie, a metadata file) of the second video data. Also, the sub clip detection unit 540 stores the EXIF file of the second video data in the memory 220 . In addition, the sub clip detection unit 540 displays a display indicating the entry of the sub clip on the electronic device 100 . Also, the sub clip detection unit 540 connects the indicator to the metadata file. Also, the sub clip detection unit 540 deletes the first video data in the electronic device 100 .
- EXIF file ie, a metadata file
- the sub-clip detection unit 540 receives an input from an application to generate a sub-clip. According to another embodiment, the sub-clip detection unit 540 receives an input for an indicator to generate a sub-clip.
- the sub clip detection unit 540 fetches the metadata file linked to the indicator from the memory 220 .
- the sub clip detection unit 540 extracts attributes from the meta data file of the sub clip.
- the sub clip detector 540 searches for second video data in the metadata file based on the name and storage location of the second video data.
- the sub clip detector 540 retrieves the second video data based on the name and storage location of the second video data.
- the sub clip detector 540 trims the second video data based on the start time and duration of the sub clip to generate a trimmed video.
- the sub clip detection unit 540 determines whether the quality of the trimmed video is higher or lower than the quality of the first video data in the attribute of the first video data.
- the sub clip detection unit 540 provides the trimmed video as a sub clip in response to determining that the quality of the first video data and the quality of the trimmed video are the same.
- the sub clip detection unit 540 upscaling or upscaling the trimmed video based on the quality of the first video data for generating the modified video in response to determining that the quality of the trimmed video is lower than the quality of the first video data.
- upscaling (ie, upsampling) on the trimmed video is performed using an ML model, where the ML model is provided through training or learning.
- the sub-clip detection unit 540 is configured to generate a modified video in response to determining that the quality of the trimmed video is greater than the quality of the first video data based on the quality of the trimmed video data. downscaling or downsampling. Also, the sub clip detection unit 540 regards the modified image as a sub clip and performs an action using the sub clip.
- the duplicate video detection unit 530 receives an input for generating a duplicate video or sub clip from an application.
- the duplicate video detection unit 530 determines the size and quality constraints of the application.
- the duplicate video detection unit 530 converts the second video data based on the size and quality constraints of the application.
- the duplicate video detection unit 530 uses an ML model to transform the second video data, wherein the ML model is provided through training or learning.
- the duplicate video detection unit 530 provides the converted second image to the application.
- the duplicate video detection unit 530 deletes the converted second image in the electronic device 100 in response to providing the converted second image to the application.
- the processor 210 may include fewer components.
- the label or name of the component is used for illustrative purposes only and does not limit the scope of the present application.
- One or more components may be combined together to perform the same or substantially similar function for detecting duplicate videos and subclips of the second video data stored in the electronic device 100 .
- FIG. 6 is a flowchart illustrating a method of optimizing a memory in an electronic device according to an embodiment of the present disclosure.
- the electronic device 100 receives first video data.
- the electronic device 100 allows the processor 210 to receive the first video data.
- the electronic device 100 determines a spatial distance between the first video data and the second video data stored in the memory 220 .
- the electronic device 100 controls the spatial distance estimator 520 to determine the spatial distance between the first video data and the second video data stored in the memory 220 of the electronic device 100 . .
- the electronic device 100 determines whether the spatial distance satisfies a spatial threshold condition. According to an embodiment, the electronic device 100 allows the spatial distance estimator 520 to determine whether the spatial distance satisfies a spatial threshold condition.
- the electronic device 100 stores the first video data in the memory 220 . According to an embodiment, if it is determined that the spatial distance does not satisfy the spatial threshold condition, the electronic device 100 controls the spatial distance estimator 520 to store the first video data in the memory 220 .
- the electronic device 100 when determining that the spatial distance satisfies the spatial threshold condition, the electronic device 100 detects that the first video data is a duplicate video of the second video data or a subclip of the second video data.
- the spatial distance estimator 520 when determining that the spatial distance satisfies the spatial threshold condition, detects that the first video data is a duplicate video of the second video data or a subclip of the second video data.
- step 612 the electronic device 100 determines whether the automatic deletion mode is activated.
- the spatial distance estimator 520 determines whether the automatic deletion mode is activated.
- the electronic device 100 when it is determined that the automatic deletion mode is not activated, the electronic device 100 provides the user with an option to manually delete the first video data.
- the spatial distance estimator 520 when it is determined that the automatic deletion mode is not activated, the spatial distance estimator 520 provides the user with an option to manually delete the first video data.
- the electronic device 100 determines whether the duration of the first video data and the duration of the second video data are the same. According to an embodiment, when it is determined that the automatic deletion mode is activated, the spatial distance estimator 520 determines whether the duration of the first video data and the duration of the second video data are the same.
- the electronic device 100 detects that the first video data is a duplicate video of the second video data.
- the duplicate video detector 530 detects that the first video data is a duplicate video of the second video data.
- the electronic device 100 when detecting that the first video data is a duplicate video of the second video data, deletes the first video data.
- the duplicate video detection unit 530 deletes the first video data from the memory 220 .
- the electronic device 100 detects that the first video data is a subclip of the second video data.
- the sub clip detector 540 detects that the first video data is a sub clip of the second video data.
- the electronic device 100 generates a metadata file of the first video data based on the properties of the first video data and the properties of the second video data.
- the sub clip detector 540 generates a metadata file of the first video data based on the properties of the first video data and the properties of the second video data.
- the electronic device 100 stores the metadata file in the memory 220 .
- the sub clip detection unit 540 allows the meta data file to be stored in the memory 220 .
- the electronic device 100 deletes the first video data by performing step 620 when storing the metadata file.
- FIG. 7 is a flowchart illustrating a method for determining a spatial distance between first video data and second video data according to an embodiment of the present disclosure.
- the electronic device 100 samples the first video data at regular intervals.
- the electronic device 100 may sample the first video data at a predetermined time interval (eg, 0.2 seconds).
- the electronic device 100 extracts an image frame from the sampled video. In operation 706, the electronic device 100 converts the extracted image frame into a gray scale image. In operation 708 , the electronic device 100 resizes the gray scale image to a lower size. In operation 710 , the electronic device 100 converts pixel values of the gray scale image into binary data.
- the electronic device 100 extracts an audio chunk from the sampled video.
- the electronic device 100 converts the audio chunk into a decoded array.
- the electronic device 100 converts the decoded array into a frequency domain.
- the electronic device 100 determines a dominant frequency from the frequency domain.
- the electronic device 100 identifies time information of the image frame and the audio chunk. In operation 722, the electronic device 100 generates first vector data of the first video data by combining the binary data, dominant frequency, and time information. In operation 724 , the electronic device 100 determines a spatial distance between the first vector data and the second vector data.
- steps 702 to 724 are performed by the processor 210 .
- step 724 is performed by the spatial distance estimation unit 520 of the processor 210 .
- FIG. 8 is a flowchart illustrating a method for an electronic device to regenerate a sub clip from second video data using a data file according to an embodiment of the present disclosure.
- step 802 the electronic device 100 receives a request for sharing a subclip from an application.
- the electronic device 100 extracts an attribute from the EXIF file of the subclip.
- the electronic device 100 searches for the master video based on the name and storage location of the master video.
- the electronic device 100 includes generating trimmed video data from the master video based on the start time and duration of the sub clip.
- step 810 when the resolution of the trimmed video data is different from the resolution of the master video, the electronic device 100 performs upscaling or downscaling on the trimmed video data based on the quality information of the EXIF file.
- upscaling ie, upsampling
- the electronic device 100 shares the sub clip of the master video data to the application.
- the sub clip detection unit 540 performs steps 802 to 812 .
- the proposed method has an advantage of maintaining and restoring a subclip of the second video data based on information in the metadata file even when the subclip is deleted in the electronic device 100 .
- the user does not need to edit the second video data once more to create a sub clip. Therefore, according to the embodiments of the present disclosure, there is an effect of improving the user experience.
- meta data for the subclip is stored, so that the subclip can be easily restored.
- FIG. 9 is a flowchart illustrating a method of generating a sub clip from second video data by an electronic device based on a constraint of an application, according to an embodiment of the present disclosure.
- step 902 the electronic device 100 receives a video sharing request from the application.
- step 904 the electronic device 100 identifies size and quality constraints of the application.
- the electronic device 100 converts the master video data based on the size and quality constraints of the application.
- the duplicate video detection unit 530 may use the ML model to transform the master video data.
- ML models are provided through training or learning.
- step 908 the electronic device 100 shares the converted master video to the application. Also, the electronic device 100 may delete the converted master video data when sharing the converted master video data with an application.
- the duplicate video detection unit 530 may perform steps 902 to 908 .
- FIG. 10 is a diagram illustrating a method of generating a scaled gray scale image from second video data by an electronic device in a scenario according to an embodiment of the present disclosure.
- FIG. 10 an example of generating second vector data by extracting an image frame at intervals of 0.2 seconds from second video data having a length of 1.2 seconds will be described.
- the electronic device 100 detects the second video data 1002 having a length of 1.2 seconds stored in the memory 220 .
- the size of the second video data 1002 is 1200x720 pixels.
- the electronic device 100 extracts each image frame having a size of 1200x720 pixels at regular intervals of 0.2 seconds from the second video data 1002 . Accordingly, the electronic device 100 extracts a total of six image frames 1004A, 1004B, 1004C, 1004D, 1004E, and 1004F from the second video data 1002 .
- the electronic device 100 converts the extracted image frames 1004A, 1004B, 1004C, 1004D, 1004E, and 1004F into 1200x720 gray scale images 1006A, 1006B, 1006C, 1006D, 1006E, and 1006F. .
- the electronic device 100 resizes the gray scale images 1006A, 1006B, 1006C, 1006D, 1006E, and 1006F to a size of 10x10 pixels.
- 1008A is the first scaled grayscale image
- 1008B is the second scaled grayscale image
- 1008C is the third scaled grayscale image
- 1008D is the fourth scaled grayscale image
- 1008E is the fifth scaled grayscale image.
- 1008F is the sixth scaled grayscale image.
- FIG. 11 illustrates a method of generating binary data from a grayscale image resized by an electronic device in an exemplary scenario according to an embodiment of the present disclosure.
- the electronic device 100 generates a matrix 1101 of size 10x10, which corresponds to a first scaled gray scale image 1008A, where each element of the matrix 1101 is an element of the first scaled gray scale image.
- the pixel value of the corresponding pixel is a matrix 1101 of size 10x10, which corresponds to a first scaled gray scale image 1008A, where each element of the matrix 1101 is an element of the first scaled gray scale image. The pixel value of the corresponding pixel.
- the electronic device 100 quantizes the pixel values of the matrix 1101 excluding the pixel values of the boundary region 1102 to generate a binary matrix 1105 having a size of 8x8, that is, binary data.
- the binary matrix 1105 contains the binary number of the pixel values of the matrix 1101 excluding the pixel values of the boundary region 1102 .
- the electronic device 100 determines the binary number of the pixel value in the matrix 1101 using Equation 2 .
- g(x, y) is an element of the binary matrix 1105 .
- x and y represent rows and columns of the binary matrix 1105, respectively.
- the electronic device 100 selects only pixel values of the matrix 1101 having 8 neighboring pixel values from the matrix 1101 to convert to a binary number.
- An adjacent pixel value is a pixel value that is adjacent to a pixel in the image. Accordingly, the electronic device 100 generates the binary matrix 1105 of size 8x8, ignoring the pixel values in the boundary region 1102 of the matrix 1101 for generating the binary matrix 1105 .
- the electronic device 100 determines whether at least 5 adjacent pixel values out of 8 adjacent pixel values with respect to the central pixel value are greater than the central pixel value of the matrix 1101 .
- the central pixel value is the value of the pixel under consideration to produce a binary value (ie, 1 or 0).
- the electronic device 100 sets the value of the binary matrix 1105 to 1 as the central pixel value. If at least 5 adjacent pixel values out of 8 adjacent pixel values of the central pixel value are not greater than the central pixel value, the electronic device 100 sets the value of the binary command 1105 to 0 as the central pixel value.
- the adjacent pixel values of the central pixel value 60 are 40, 50, 65, 30, 70, 70, 90, 80. where the five neighboring pixel values 65, 70, 70, 90, 80 are greater than the central pixel value 60. Accordingly, the electronic device 100 sets the central pixel value of 60 to 1 ( 1106 ) in the binary matrix 1105 . Looking at the select box 1104 of the matrix 1101 where the adjacent pixel values of the central pixel value 65 are 50, 55, 60, 65, 65, 70, 75, 10, 26, the two adjacent pixel values 70, 750,000 are the central pixel values. greater than 65.
- the electronic device 100 sets the central pixel value of 65 to 0 (1107) in the binary matrix 1105 . Also, the electronic device 100 determines the binary number of all pixel values of the matrix 1101 and updates the 64-dimensional binary matrix 1105 . Similarly, the electronic device 100 generates the binary matrix 1105 of the remaining scaled gray scale images 1008B, 1008C, 1008D, 1008E, 1008F.
- FIG. 12 is a diagram illustrating a method in which an electronic device extracts an audio chunk from second video data according to an embodiment of the present disclosure.
- FIG. 12 illustrates an example of extracting an audio chunk from the second video data 1002 having a length of 1.2 seconds.
- the electronic device 100 extracts audio data 1202 from the second video data 1002 .
- the audio data 1202 is data having the same duration as the second video data 1002 .
- the electronic device 100 divides the extracted audio data 1202 at regular intervals to generate audio chunks 1204A, 1204B, 1204C, 1204D, 1204E, and 1204F.
- each audio chunk 1204A, 1204B, 1204C, 1204D, 1204E, and 1204F is 0.2 seconds.
- the frame and the audio chunk are extracted at regular intervals, and the time stamps of the image frame and the audio chunk correspond to each other identically.
- the time stamps of the image frame 1008A and the audio chunk 1204A are the same, and the time stamps of the image frame 1008B and the audio chunk 1204B are the same. Also, the time stamps of the image frame 1008C and the audio chunk 1204C are the same, and the time stamps of the image frame 1008D and the audio chunk 1204D are also the same. Image frame 1008E and audio chunk 1204E are identical, and time stamps of image frame 1008F and audio chunk 1204F are identical.
- FIG. 13 is a diagram illustrating a method of determining a dominant frequency of an audio chunk in an electronic device according to an embodiment of the present disclosure.
- the electronic device 100 converts the audio chunk 1204 into a decoded array 1206 .
- the decoded array contains amplitude information 1006B of the audio signal of the audio chunk 1204 of each time interval 1006A.
- the amplitude is 40 dB at 0 seconds, the amplitude is 80 dB at 0.04 seconds, the amplitude is 40 dB at 0.08 seconds, the amplitude is 20 dB at 0.12 seconds, the amplitude is 15 dB at 0.16 seconds, and 0.2 The amplitude in seconds is 18 dB.
- the electronic device 100 converts the decoded array into a frequency domain 1208 .
- the frequency of the audio signal is determined for each time frame window (from a time frame window of 0 sec to 0.04 sec to a time frame window of 0.16 sec to 0.2 sec).
- the electronic device 100 identifies a frequency 1210A in the frequency domain 1208 that is greater than a threshold value (eg, 10 dB). The electronic device 100 determines the size of the identified frequency. Also, the electronic device 100 selects a dominant frequency 1214 from the identified frequencies, where the dominant frequency is the top five frequencies 1212 having a larger magnitude among the identified frequencies 1210A. The top five frequencies are arranged in order of increasing magnitude at the dominant frequency 1214 . Similarly, the electronic device 100 determines the dominant frequencies of the remaining audio chunks 1204A, 1204B, 1204C, 1204D, 1204E, and 1204F.
- a threshold value eg, 10 dB
- FIG. 14 is a diagram illustrating a method in which an electronic device generates second vector data from second video data, according to an embodiment of the present disclosure.
- the electronic device 100 In response to generating the binary data 1116 of the image frame 1004A and determining the dominant frequency 1214 of the audio chunk 1204A, the electronic device 100 generates a 70 dimensional vector 1402 .
- the electronic device 100 generates a 70-dimensional vector 1402 by concatenating the binary data 1116 of the image frame 1004A, the dominant frequency of the audio chunk 1204A, and common time information 1302 .
- common temporal information 1302 for image frame 1004A and audio chunk 1204A is defined as 0.2 seconds.
- the electronic device 100 For each of the remaining image frames 1004B, 1004C, 1004D, 1004E, and 1004F and the audio chunks 1204B, 1204C, 1204D, 1204E, and 1204F, the electronic device 100 provides corresponding temporal information, that is, 0.4, 0.6 , 0.8, 1.0 to create a 70-dimensional vector (1002-1006).
- a 70 dimensional vector 1402 8 bytes of memory 220 are consumed to store 64 bits of binary data 1116 , and 4 bytes of memory 220 are consumed to store data of dominant frequency 1214 . . Also, the memory 220 of 4 bytes is consumed to store the data of the time information 1302 . Therefore, a total of 32 bytes of memory 220 is used to store the 70-dimensional vector 1402 . Therefore, encoding a 30-minute video consumes 281.25 KB of memory 220 .
- 15 is a diagram illustrating a method for an electronic device to identify a subclip of second video data according to an embodiment of the present disclosure.
- the electronic device 100 In response to receiving the first video data 1814 , the electronic device 100 generates six image frames 1004A, 1004B, 1004C, 1004D, 1004E, and 1004F of the second video data 1202 at regular intervals of 0.2 seconds. and 6 audio chunks (1204A, 1204B, 1204C, 1204D, 1204E, and 1204F) and extract image frames (1004A, 1004B, 1004C, 1004D, 1004E, and 1004F) and audio chunks (1204A, 1204B, 1204C, 1204D, Time information 1302, 1304, 1306, 1308, 13010, and 1312 of 1204E, and 1204F are identified.
- the electronic device 100 combines the binary data of the image frame 1004A, the dominant frequency of the audio chunk 1204A, and the temporal information 1302 of the image frame 1004A and the audio chunk 1204A to obtain a 70-dimensional vector (1402) is generated.
- the electronic device 100 determines the remaining image frames 1004B, 1004C, 1004D, 1004E, and 1004F and the audio chunks 1204B, 1204C, 1204D based on the temporal information 1304 , 1306 , 1308 , 1310 , and 1312 . , 1204E, and 1204F) to generate 70-dimensional vectors 1404, 1406, 1408, 1410, and 1412.
- the electronic device 100 extracts three image frames 1316A, 1318A, and 1320A and three audio chunks 1316B, 1318B, and 1320B of the second video data 1002 at regular intervals of 0.2 seconds, Identify temporal information in image frames 1316A, 1318A, and 1320A and audio chunks 1316B, 1318B, and 1320B ( 1316 , 1318 , and 1320 ).
- the electronic device 100 combines the binary data of the image frame 1316A, the dominant frequency of the audio chunk 1316B, and the temporal information 1316 of the image frame 1316A and the audio chunk 1316B to obtain a 70-dimensional vector (1322).
- the electronic device 100 generates 70-dimensional vectors 1318 and 1320 using the remaining image frames 1318A and 1320A and the audio chunks 1318B and 1320B based on the time information 1318 and 1320 .
- the electronic device 100 determines a spatial distance between each of the 70-dimensional vectors 1322 and the 70-dimensional vectors 1402 , 1404 , 1406 , 1408 , 1410 , and 1412 .
- the electronic device 100 determines that the spatial distance d1 between the 70-dimensional vector 1322 and the 70-dimensional vector 1404 is smaller than the other spatial distances.
- the electronic device 100 determines a spatial distance between each of the 70-dimensional vectors 1324 and the 70-dimensional vectors 1402 , 1404 , 1406 , 1408 , 1410 , and 1412 .
- the electronic device 100 determines that the spatial distance d2 between the 70-dimensional vector 1324 and the 70-dimensional vector 1406 is smaller than the other spatial distances.
- the electronic device 100 determines a spatial distance between each of the 70-dimensional vectors 1326 and the 70-dimensional vectors 1402 , 1404 , 1406 , 1408 , 1410 , and 1412 .
- the electronic device 100 determines that the spatial distance d3 between the 70-dimensional vector 1326 and the 70-dimensional vector 1408 is smaller than other spatial distances.
- the electronic device 100 determines that the sum of the spatial distances, that is, d1 + d2 + d3 is smaller than the threshold distance.
- the electronic device 100 confirms that the durations of the second video data 1002 and the first video data 1314 are not the same.
- the electronic device 100 transmits the first video data 1314 It is determined that is a sub clip of the second video data 1002 .
- the electronic device 100 determines that the durations of the first video data 1314 and the second video data 1002 are not the same, and determines that video data with a short duration is a subclip of video data with a long duration.
- 16A is a diagram illustrating a method of estimating, by an electronic device, a spatial distance between duplicate video and second video data according to an embodiment of the present disclosure.
- the electronic device 100 stores the second video data 1002 . Also, the electronic device 100 downloads the duplicate image 1602 of the second video data 1002 from the mail application. Upon receiving the duplicate video 1602 , the electronic device 100 determines the second vector data of the second video data 1002 and the first vector data of the duplicate video 1602 . In addition, the electronic device 100, as shown at 1604, based on the values of the 70-dimensional vectors 1604A, 1604B, 1604C, 1604D, 1604E, 1604F, and 1604G, the 70-dimensional vectors 1604A, 1604B of the second vector data. , 1604C, 1604D, 1604E, 1604F, and 1604G) are plotted.
- the electronic device 100 performs the 70-dimensional vectors 1606A, 1606B of the first vector data based on the values of the 70-dimensional vectors 1606A, 1606B, 1606C, 1606D, 1606E, 1606F, and 1606G. , 1606C, 1606D, 1606E, 1606F, and 1606G) are plotted.
- the electronic device 100 determines a spatial distance between each of the 70-dimensional vectors 1604A and the 70-dimensional vectors 1606A, 1606B, 1606C, 1606D, 1606E, 1606F, and 1606G, as shown at 1608 . As shown in 1610 , the electronic device 100 determines that the 70-dimensional vector 1604A is the closest vector to the 70-dimensional vector 1606A. Similarly, the electronic device 100 measures the space between each of the 70 dimensional vectors 1604B, 1604C, 1604D, 1604E, 1604F, and 1604G and each of the 70 dimensional vectors 1606A, 1606B, 1606C, 1606D, 1606E, 1606F, and 1606G.
- the electronic device 100 identifies that the 70-dimensional vector 1604B is the closest to the 70-dimensional vector 1606B.
- the electronic device 100 identifies that the 70-dimensional vector 1604C is the closest vector to the 70-dimensional vector 1606C.
- the electronic device 100 identifies that the 70-dimensional vector 1604D is the closest to the 70-dimensional vector 1606D.
- the electronic device 100 identifies that the 70 dimensional vector 1604E is the closest to the 70 dimensional vector 1606E.
- the electronic device 100 identifies that the 70-dimensional vector 1604F is the closest vector to the 70-dimensional vector 1606F.
- the electronic device 100 identifies that the 70-dimensional vector 1604G is the closest to the 70-dimensional vector 1606G.
- the electronic device 100 calculates the spatial distance between the duplicate video 1602 and the second video data 1002 by adding the spatial distance between the nearest 70-dimensional vectors.
- the plots of 1604, 1606, and 1608 are simplified vector representations of the video data 1602 and 1002.
- a 69-dimensional vector excluding the last 70th vector point (ie, a timestamp) in the 70-dimensional vector of the video data 1602 and 1002 is plotted in a high-dimensional space or a 69-dimensional space.
- 16B is a diagram illustrating a method for an electronic device to estimate a spatial distance between a subclip and second video data according to an embodiment of the present disclosure.
- the electronic device 100 stores the second video data 1002 . Also, the electronic device 100 downloads the sub clip 1314 of the second video data 1002 from the mail application. In response to receiving the subclip 1314 , the electronic device 100 determines second vector data of the second video data 1002 and first vector data of the subclip 1314 . In addition, the electronic device 100, as shown in 1614, based on the values of the 70-dimensional vectors 1614A, 1614B, 1614C, 1614D, 1614E, and 1614F, the 70-dimensional vectors 1614A, 1614B, 1614C of the second vector data. , 1614D, 1614E, and 1614F) are plotted. Also, the electronic device 100 plots the 70-dimensional vectors 1612A, 1612B, and 1612C of the first vector data based on the values of the 70-dimensional vectors 1612A, 1612B, and 1612C as indicated at 1612 .
- the electronic device 100 determines a spatial distance between the 70-dimensional vector 1612A and each of the 70-dimensional vectors 1614A, 1614B, 1614C, 1614D, 1614E, and 1614F, as shown in 1616 . As shown at 1618 , the electronic device 100 identifies the 70-dimensional vector 1612A as the closest vector to the 70-dimensional vector 1614B. Similarly, the electronic device 100 determines a distance between each of the 70-dimensional vectors 1612B and 1612C and the 70-dimensional vectors 1614A, 1614B, 1614C, 1614D, 1614E, and 1614F. The electronic device 100 identifies that the 70-dimensional vector 1612B is the closest to the 70-dimensional vector 1614D.
- the electronic device 100 identifies that the 70-dimensional vector 1612C is the closest to the 70-dimensional vector 1614G. Also, the electronic device 100 adds the spatial distances between all nearest 70-dimensional vectors to obtain the spatial distances between the sub-clip video 1614 and the second video data 1002 .
- the plots of 1614, 1612, and 1616 are simplified vector representations of the video data 1314 and 1002.
- a 69-dimensional vector excluding the last 70th vector point (ie, a timestamp) in the 70-dimensional vector of the video data 1314 and 1002 is plotted in a high-dimensional space or 69-dimensional space.
- 17A and 17B illustrate a meta data file of a sub clip of the second video data, according to an embodiment of the present disclosure.
- the electronic device 100 detects a first sub-clip of the second video data.
- the first sub clip includes a part of the second video data.
- the start time of the first sub clip of the second video data is '61 ms'.
- the length of the first subclip is ‘63ms’ and the quality of the first subclip is ‘480p’.
- the electronic device 100 generates a metadata file of the first subclip as shown in FIG. 17A .
- the electronic device 100 detects a second sub-clip of second video data, wherein the second sub-clip includes two different portions of the second video data.
- the start time of the first part of the second sub clip in the second video data is '61 ms'.
- the length of the first part of the second sub clip is '63 ms' and the quality of the first part of the second sub clip is '420p'.
- the start time of the second part of the second sub-sub clip is '150 ms'.
- the duration of the second part of the second subclip is '150ms' and the quality of the second part of the second subclip is '720p'.
- the electronic device 100 generates the meta data file of the second sub clip as shown in FIG. 17B .
- 18A, 18B, and 18C are diagrams illustrating a method in which an electronic device regenerates a sub clip from a master video using a metadata file in an example scenario according to an embodiment of the present disclosure.
- the master video data 1710 and the metadata file 1708 of the master video data 1710 are stored in the electronic device 100 in FIGS. 18A, 18B, and 18C .
- the name of the master video data 1710 is ‘Master_video.mp4’, and the storage location of the master video data 1710 is ‘/Internal Storage/Video test/’.
- the length and quality of the master video data 1710 are 1.2 seconds and 480p, respectively.
- the electronic device 100 When the electronic device 100 receives an input for the thumbnail 1706 , the electronic device 100 brings the metadata file 1708 of the master video data 2006 linked to the thumbnail 1706 from the memory 220 . In addition, the electronic device 100 determines the name of the master video data 1710 as 'Master_video.mp4', and the storage location of the master video data 1710 is in the metadata file 1708 '/Internal Storage/Video test / ' is displayed.
- the electronic device 100 determines the start time and duration of the sub clip 1720 in the metadata file 1708 as '10 ms' and '400 ms', respectively.
- the electronic device 100 generates a trimmed video 1716 by starting a part of the master video data 1710 from 10 ms (1712) to 410 ms (1714) of the master video data 1710 .
- the electronic device 100 determines that the quality required for the subclip in the metadata file 1708 is '720p'.
- the electronic device 100 detects that the required quality of the subclip is higher than the quality of the trimmed video data 1716, where the quality of the master video data 1710 and the quality of the trimmed video data 1716 are the same as 480p to be. Also, the electronic device 100 upscales the quality of the trimmed video data 1716 to 720p ( 1718 ) and generates a sub clip 1720 of the master video data 1710 .
- upscaling ie, upsampling
- on the trimmed video data is performed using an ML model, where the ML model is provided through training or learning.
- FIG. 19 illustrates a cloud storage device for storing duplicate video, according to an embodiment of the present disclosure.
- Electronic devices 100 , 100A, 100B, and 100C are connected to cloud storage device 1902 .
- electronic devices 100 , 100A, 100B, and 100C are connected to cloud storage device 1902 using Wi-Fi Direct technology.
- electronic devices 100 , 100A, 100B, and 100C store family videos.
- the electronic device 100 analyzes the video stored in the other electronic devices 100A, 100B, and 100C through the cloud storage device 1902 . Also, the electronic device 100 detects that the other electronic devices 100A, 100B, and 100C and the corresponding electronic device 100 store the same type of family video. Further, the electronic device 100 is configured to move the family video from the electronic device 100 to the cloud storage device 1902 and delete the family video from the electronic devices 100 , 100A, 100B, and 100C.
- the electronic device 100 creates a link to access a copy of the family video in the cloud storage device 1902 and shares the link with the other electronic devices 100A, 100B, and 100C.
- the electronic devices 100, 100A, 100B, and 100C may store the link, and the electronic devices 100, 100A, 100B, and 100C may use the link to retrieve the family video from the cloud storage device 1902 whenever needed. have.
- 20A is a diagram illustrating a method of displaying, by an electronic device, a sub clip of master video data according to an embodiment of the present disclosure.
- the master video data 2006 and metadata files of the master video data 2006 are stored in the electronic device 100 . Also, it is assumed that the user 1704 selects the video information button 2008 of the master video data 2006 displayed on the screen of the electronic device 100 as shown in 2002 .
- the electronic device 100 determines a master file of the master video data 2006 . Also, the electronic device 100 generates a thumbnail 2010 of a sub clip of the master video data 2006 , wherein the thumbnail 2010 is linked to a metadata file of the master video 2006 .
- the electronic device 100 determines the resolution (eg, 0.2MP, 640x352) of the master video data 2006, the size of the master video data 2006 (eg, 255 kB), and the master video data (2006). ) of the master video data (2006), such as the storage location (eg Storage / Media / VideoVID-20200704-WA0010.mp4), date (eg Saturday 4 July 2020) and creation time (3:00 pm).
- Information and thumbnails 2010 are displayed to the user 2008 .
- the electronic device 100 is configured to generate a subclip based on the metadata file by using the ML model in response to receiving an input for the thumbnail 2010 .
- ML models are provided through training or learning.
- 20B is a diagram illustrating a method for an electronic device to provide a sub clip of a master video to a user for sharing to an application in an exemplary scenario, according to an embodiment of the present disclosure.
- the electronic device 100 displays a user interface.
- the electronic device 100 determines a metadata file of the master video data 2006 .
- the electronic device 100 generates a thumbnail 2022 of a sub clip of the master video data 2006 , wherein the thumbnail 2022 is linked with a metadata file of the master video data 2006 .
- the electronic device 100 displays the thumbnail 2022 to the user 2008 in the user interface as in 2016.
- the electronic device 100 is configured to generate a subclip by using the metadata file using the ML model in response to receiving an input for the thumbnail 2022 .
- ML models are provided through training or learning.
- the embodiments of the present disclosure there is an effect of automatically detecting a duplicate video and providing information about the duplicate video, without the need for a user to manually search for and manage the duplicate video.
- information on the duplicate video is provided to the user, and a user interface through which the user can delete or transmit the duplicate video can be provided.
- 21 is a block diagram of an electronic device in a network environment 2100, according to various embodiments.
- the electronic device 2101 of FIG. 21 may correspond to the electronic device 100 described above, the processor 2120 may correspond to the processor 210 described above, and the memory 2130 may correspond to the memory 220 described above. have. Also, the input module 2150 may correspond to the input interface 310 , the communication module 2190 may correspond to the communication unit 320 , and the display module 2160 may correspond to the display 330 .
- the electronic device 2101 communicates with the electronic device 2102 through a first network 2198 (eg, a short-range wireless communication network) or a second network 2199 . It may communicate with at least one of the electronic device 2104 and the server 2108 through (eg, a long-distance wireless communication network).
- a first network 2198 eg, a short-range wireless communication network
- a second network 2199 e.g. a second network.
- It may communicate with at least one of the electronic device 2104 and the server 2108 through (eg, a long-distance wireless communication network).
- the electronic device 2101 may communicate with the electronic device 2104 through the server 2108 .
- the electronic device 2101 includes a processor 2120 , a memory 2130 , an input module 2150 , a sound output module 2155 , a display module 2160 , an audio module 2170 , and a sensor module ( 2176), interface 2177, connection terminal 2178, haptic module 2179, camera module 2180, power management module 2188, battery 2189, communication module 2190, subscriber identification module 2196 , or an antenna module 2197 may be included.
- at least one of these components eg, the connection terminal 2178
- some of these components are integrated into one component (eg, display module 2160 ). can be
- the processor 2120 for example, executes software (eg, a program 2140) to execute at least one other component (eg, a hardware or software component) of the electronic device 2101 connected to the processor 2120. It can control and perform various data processing or operations. According to one embodiment, as at least part of data processing or operation, the processor 2120 converts commands or data received from other components (eg, the sensor module 2176 or the communication module 2190) to the volatile memory 2132 . may be stored in , process commands or data stored in the volatile memory 2132 , and store the result data in the non-volatile memory 2134 .
- software eg, a program 2140
- the processor 2120 converts commands or data received from other components (eg, the sensor module 2176 or the communication module 2190) to the volatile memory 2132 .
- the volatile memory 2132 may be stored in , process commands or data stored in the volatile memory 2132 , and store the result data in the non-volatile memory 2134 .
- the processor 2120 is the main processor 2121 (eg, a central processing unit or an application processor) or a secondary processor 2123 (eg, a graphics processing unit, a neural network processing unit) a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor).
- the main processor 2121 e.g, a central processing unit or an application processor
- a secondary processor 2123 e.g, a graphics processing unit, a neural network processing unit
- a neural processing unit e.g., a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor.
- the main processor 2121 e.g, a central processing unit or an application processor
- a secondary processor 2123 eg, a graphics processing unit, a neural network processing unit
- NPU neural processing unit
- an image signal processor e.g., a sensor hub processor, or a communication processor.
- the main processor 2121 e.g, a central processing unit or an
- the coprocessor 2123 may be, for example, on behalf of the main processor 2121 while the main processor 2121 is in an inactive (eg, sleep) state, or the main processor 2121 is active (eg, executing an application). ), together with the main processor 2121, at least one of the components of the electronic device 2101 (eg, the display module 2160, the sensor module 2176, or the communication module 2190) It is possible to control at least some of the related functions or states.
- the coprocessor 2123 eg, an image signal processor or a communication processor
- may be implemented as part of another functionally related component eg, the camera module 2180 or the communication module 2190. have.
- the auxiliary processor 2123 may include a hardware structure specialized for processing an artificial intelligence model.
- Artificial intelligence models can be created through machine learning. Such learning, for example, may be performed in the electronic device 2101 itself on which the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 2108).
- the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but in the above example not limited
- the artificial intelligence model may include a plurality of artificial neural network layers.
- Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the above, but is not limited to the above example.
- the artificial intelligence model may include, in addition to, or alternatively, a software structure in addition to the hardware structure.
- the memory 2130 may store various data used by at least one component of the electronic device 2101 (eg, the processor 2120 or the sensor module 2176).
- the data may include, for example, input data or output data for software (eg, the program 2140 ) and instructions related thereto.
- the memory 2130 may include a volatile memory 2132 or a non-volatile memory 2134 .
- the program 2140 may be stored as software in the memory 2130 , and may include, for example, an operating system 2142 , middleware 2144 , or an application 2146 .
- the input module 2150 may receive a command or data to be used in a component (eg, the processor 2120 ) of the electronic device 2101 from the outside (eg, a user) of the electronic device 2101 .
- the input module 2150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
- the sound output module 2155 may output a sound signal to the outside of the electronic device 2101 .
- the sound output module 2155 may include, for example, a speaker or a receiver.
- the speaker can be used for general purposes such as multimedia playback or recording playback.
- the receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.
- the display module 2160 may visually provide information to the outside (eg, a user) of the electronic device 2101 .
- the display module 2160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the corresponding device.
- the display module 2160 may include a touch sensor configured to sense a touch or a pressure sensor configured to measure the intensity of a force generated by the touch.
- the audio module 2170 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 2170 acquires a sound through the input module 2150 or an external electronic device (eg, a sound output module 2155 ) directly or wirelessly connected to the electronic device 2101 .
- the electronic device 2102 may output sound through (eg, a speaker or headphones).
- the sensor module 2176 detects an operating state (eg, power or temperature) of the electronic device 2101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
- the sensor module 2176 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
- the interface 2177 may support one or more specified protocols that may be used for the electronic device 2101 to directly or wirelessly connect with an external electronic device (eg, the electronic device 2102 ).
- the interface 2177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
- HDMI high definition multimedia interface
- USB universal serial bus
- SD card interface Secure Digital Card
- connection terminal 2178 may include a connector through which the electronic device 2101 can be physically connected to an external electronic device (eg, the electronic device 2102 ).
- the connection terminal 2178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
- the haptic module 2179 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
- the haptic module 2179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module 2180 may capture still images and moving images. According to an embodiment, the camera module 2180 may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module 2188 may manage power supplied to the electronic device 2101 .
- the power management module 2188 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
- PMIC power management integrated circuit
- the battery 2189 may supply power to at least one component of the electronic device 2101 .
- battery 2189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
- the communication module 2190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 2101 and an external electronic device (eg, the electronic device 2102, the electronic device 2104, or the server 2108). It can support establishment and communication performance through the established communication channel.
- the communication module 2190 operates independently of the processor 2120 (eg, an application processor) and may include one or more communication processors supporting direct (eg, wired) communication or wireless communication.
- the communication module 2190 is a wireless communication module 2192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 2194 (eg, : It may include a LAN (local area network) communication module, or a power line communication module).
- GNSS global navigation satellite system
- a corresponding communication module among these communication modules is a first network 2198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 2199 (eg, legacy It may communicate with the external electronic device 2104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
- a first network 2198 eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
- a second network 2199 eg, legacy It may communicate with the external electronic device 2104 through a cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (eg, a telecommunication network such as a LAN or a WAN).
- These various types of communication modules
- the wireless communication module 2192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 2196 within a communication network such as the first network 2198 or the second network 2199 .
- subscriber information eg, International Mobile Subscriber Identifier (IMSI)
- IMSI International Mobile Subscriber Identifier
- the electronic device 2101 may be identified or authenticated.
- the wireless communication module 2192 may support a 5G network after a 4G network and a next-generation communication technology, for example, a new radio access technology (NR).
- NR access technology includes high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and access to multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency) -latency communications)).
- eMBB enhanced mobile broadband
- mMTC massive machine type communications
- URLLC ultra-reliable and low-latency
- the wireless communication module 2192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
- a high frequency band eg, mmWave band
- the wireless communication module 2192 uses various technologies for securing performance in a high frequency band, for example, beamforming, massive multiple-input and multiple-output (MIMO), all-dimensional multiplexing. It may support technologies such as full dimensional MIMO (FD-MIMO), an array antenna, analog beam-forming, or a large scale antenna.
- the wireless communication module 2192 may support various requirements specified in the electronic device 2101 , an external electronic device (eg, the electronic device 2104 ), or a network system (eg, the second network 2199 ).
- the wireless communication module 2192 may include a peak data rate (eg, 20 Gbps or more) for realizing eMBB, loss coverage (eg, 164 dB or less) for realizing mMTC, or U-plane latency for realizing URLLC ( Example: downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less).
- a peak data rate eg, 20 Gbps or more
- loss coverage eg, 164 dB or less
- U-plane latency for realizing URLLC
- the antenna module 2197 may transmit or receive a signal or power to the outside (eg, an external electronic device).
- the antenna module 2197 may include an antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
- the antenna module 2197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 2198 or the second network 2199 is connected from the plurality of antennas by, for example, the communication module 2190 . can be selected. A signal or power may be transmitted or received between the communication module 2190 and an external electronic device through the selected at least one antenna.
- other components eg, a radio frequency integrated circuit (RFIC)
- RFIC radio frequency integrated circuit
- the antenna module 2197 may form an mmWave antenna module.
- the mmWave antenna module comprises a printed circuit board, an RFIC disposed on or adjacent to a first side (eg, bottom side) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, an array antenna) disposed on or adjacent to a second side (eg, top or side) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
- peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
- GPIO general purpose input and output
- SPI serial peripheral interface
- MIPI mobile industry processor interface
- the command or data may be transmitted or received between the electronic device 2101 and the external electronic device 2104 through the server 2108 connected to the second network 2199 .
- Each of the external electronic devices 2102 or 2104 may be the same or a different type of the electronic device 2101 .
- all or a part of operations executed in the electronic device 2101 may be executed in one or more external electronic devices 2102 , 2104 , or 2108 .
- the electronic device 2101 may perform the function or service by itself instead of executing the function or service itself.
- one or more external electronic devices may be requested to perform at least a part of the function or the service.
- One or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 2101 .
- the electronic device 2101 may process the result as it is or additionally and provide it as at least a part of a response to the request.
- cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
- the electronic device 2101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
- the external electronic device 2104 may include an Internet of things (IoT) device.
- IoT Internet of things
- Server 2108 may be an intelligent server using machine learning and/or neural networks.
- the external electronic device 2104 or the server 2108 may be included in the second network 2199 .
- the electronic device 2101 may be applied to an intelligent service (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
- the electronic device may have various types of devices.
- the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
- a portable communication device eg, a smart phone
- a computer device e.g., a smart phone
- a portable multimedia device e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a portable medical device
- a wearable device e.g., a smart bracelet
- a home appliance device e.g., a home appliance
- first, second, or first or second may be used simply to distinguish the element from other elements in question, and may refer to elements in other aspects (e.g., importance or order) is not limited. It is said that one (eg, first) component is “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
- module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as, for example, logic, logic block, component, or circuit.
- a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
- the module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- Various embodiments of the present document include one or more instructions stored in a storage medium (eg, internal memory 2136 or external memory 2138) readable by a machine (eg, electronic device 2101). may be implemented as software (eg, the program 2140) including
- a processor eg, processor 2120
- a device eg, electronic device 2101
- the one or more instructions may include code generated by a compiler or code executable by an interpreter.
- the device-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-transitory' only means that the storage medium is a tangible device and does not include a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.
- a signal eg, electromagnetic wave
- the method according to various embodiments disclosed in this document may be provided as included in a computer program product.
- Computer program products may be traded between sellers and buyers as commodities.
- the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play StoreTM) or on two user devices ( It can be distributed (eg downloaded or uploaded) directly between smartphones (eg: smartphones) and online.
- a part of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.
- each component (eg, module or program) of the above-described components may include a singular or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. have.
- one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
- a plurality of components eg, a module or a program
- the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. .
- operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, or omitted. or one or more other operations may be added.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
제1 비디오 데이터 및 제2 비디오 데이터를 저장하는 메모리; 및 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 제1 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성하고, 제2 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 제2 비디오 데이터에 대응하는 제2 벡터 데이터를 생성하고, 제1 벡터 데이터 및 제2 벡터 데이터가 정의된 좌표계에서 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간 거리를 산출하고, 공간 거리가 제1 조건을 만족한다고 판단된 것에 기초하여, 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단하는, 전자 장치가 개시된다.
Description
본 개시의 실시예들은 복제 비디오를 검출하는 전자 장치, 전자 장치 제어 방법, 및 프로그램이 기록된 기록매체에 관한 것이다.
전자 장치는 데이터 및 명령어를 저장하기 위해 메모리를 구비한다. 메모리는 다양한 종류의 휘발성 메모리와 비휘발성 메모리로 구현된다. 메모리는 전자 장치의 원활한 기능을 위해 전자 장치에서 필수적인 자원이다. 메모리는 소정의 제한된 용량의 저장 공간을 갖기 때문에, 전자 장치는 제한된 저장 공간 내에서 메모리를 활용해야한다. 메모리는 운영 체제, 운영 체제에 설치된 애플리케이션(예를 들면, 카메라 애플리케이션, 비디오 편집기, 소셜 미디어 애플리케이션 등), 및 애플리케이션에 의해 생성되는 데이터를 저장한다. 그런데 메모리의 저장 공간의 절반이 운영 체제와 응용 프로그램에 의해 사용되어 데이터 저장에 사용할 수 있는 메모리의 저장 공간이 줄어든다. 메모리에 저장되는 데이터는 예를 들면, 카메라 애플리케이션 등에 의해 생성된 비디오 데이터 또는 이미지 데이터 등이다. 또 다른 예로서, 메모리에 저장되는 데이터는 소셜 미디어 애플리케이션에 의해 생성된 데이터로서, 복제 이미지, 또는 복제 비디오 등을 포함한다. 그런데 소셜 미디어 애플리케이션에 의해 다수의 복제 이미지, 복제 비디오 등이 생성되면서 메모리의 저장 공간을 차지하게 되어, 메모리의 저장 공간이 부족해지는 문제가 있다.
본 개시의 실시예들은, 메모리를 최적화하기 위한 장치 및 방법을 제공하기 위한 것이다. 보다 구체적으로, 본 개시의 실시예들은, 복제 비디오로 인해 메모리의 저장 공간이 부족해지는 문제점을 해결하는 장치 및 방법을 제공하기 위한 것이다.
또한, 본 개시의 실시예들은, 사용자가 수동으로 복제 비디오를 검색하고 관리할 필요 없이, 복제 비디오를 자동으로 검출하고, 복제 비디오에 대한 정보를 제공하는 장치 및 방법을 제공하기 위한 것이다.
또한, 본 개시의 실시예들은, 사용자에게 복제 비디오에 대한 정보를 제공하고, 사용자가 복제 비디오를 삭제하거나 전송할 수 있는 사용자 인터페이스를 제공하는 장치 및 방법을 제공하기 위한 것이다.
또한, 본 개시의 실시예들은, 복제 비디오의 서브 클립을 삭제할 때, 서브 클립에 대한 메타 데이터를 저장하여, 서브 클립을 용이하게 복원할 수 있는 장치 및 방법을 제공하기 위한 것이다.
본 개시의 일 실시예의 일 측면에 따르면, 제1 비디오 데이터 및 제2 비디오 데이터를 저장하는 메모리; 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성하고, 상기 제2 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제2 비디오 데이터에 대응하는 제2 벡터 데이터를 생성하고, 상기 제1 벡터 데이터 및 상기 제2 벡터 데이터가 정의된 좌표계에서 상기 제1 벡터 데이터와 상기 제2 벡터 데이터 사이의 공간 거리를 산출하고, 상기 공간 거리가 제1 조건을 만족한다고 판단된 것에 기초하여, 상기 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단하는, 전자 장치가 제공된다.
또한, 본 개시의 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대해, 영상 데이터로부터 획득된 적어도 하나의 영상 특징 값 및 오디오 데이터로부터 획득된 적어도 하나의 오디오 특징 값을 생성하고, 상기 적어도 하나의 영상 특징 값 및 상기 적어도 하나의 오디오 특징 값을 포함하는 제1 프레임 벡터 데이터를 생성하고, 상기 제1 비디오 데이터의 상기 복수의 프레임들 각각에 대한 복수의 제1 프레임 벡터 데이터를 포함하는 제1 벡터 데이터를 생성하고, 상기 제2 비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대해, 영상 데이터로부터 획득된 적어도 하나의 영상 특징 값 및 오디오 데이터로부터 획득된 적어도 하나의 오디오 특징 값을 생성하고, 상기 적어도 하나의 영상 특징 값 및 상기 적어도 하나의 오디오 특징 값을 포함하는 제2 프레임 벡터 데이터를 생성하고, 상기 제2 비디오 데이터의 상기 복수의 프레임들 각각에 대한 복수의 제2 프레임 벡터 데이터를 포함하는 제2 벡터 데이터를 생성할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 공간 거리를 산출하는 동작은, 상기 제1 벡터 데이터에 포함된 상기 복수의 제1 프레임 벡터 데이터들 각각과, 상기 제2 벡터 데이터에 포함된 상기 복수의 제2 프레임 벡터 데이터들 각각 사이의 상기 공간 거리를 산출하고, 상기 공간 거리가 상기 제1 조건을 만족하는 상기 제1 비디오 데이터의 프레임 구간과 상기 제2 비디오 데이터의 프레임 구간이 검출된 것에 기초하여, 상기 제1 비디오 데이터 또는 상기 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터로부터 샘플링된 상기 복수의 프레임들 각각에 대해, 상기 제1 비디오 데이터에서의 재생 시점을 나타내는 시간 정보 값을 생성하고, 상기 시간 정보 값을 상기 제1 프레임 벡터 데이터에 삽입하고, 상기 제2 비디오 데이터로부터 샘플링된 상기 복수의 프레임들 각각에 대해, 상기 제2 비디오 데이터에서의 재생 시점을 나타내는 시간 정보 값을 생성하고, 상기 시간 정보 값을 상기 제2 프레임 벡터 데이터에 삽입하고, 상기 공간 거리를 산출하는 동작은, 상기 시간 정보 값을 제외하고 상기 영상 특징 값 및 상기 오디오 특징 값에 기초하여 상기 공간 거리를 산출할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터의 전체 프레임 구간과 상기 제2 비디오 데이터의 전체 프레임 구간이 서로 대응되는 경우, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터를 복제 비디오로 판단하고, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나의 비디오 데이터의 프레임 구간 전부가 다른 비디오 데이터의 프레임 구간 일부에 대응되는 경우, 상기 하나의 비디오 데이터를 상기 다른 비디오 데이터의 서브 클립으로 판단할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 제1 비디오 데이터 및 상기 제2 비디오 데이터에 대해, 상기 영상 특징 값을 생성하는 동작은, 각각의 프레임을 그레이 스케일 이미지로 변환하고, 상기 그레이 스케일 이미지의 사이즈를 감소시켜 작은 이미지로 변환하고, 상기 작은 이미지의 픽셀 값에 기초하여 복수의 이진(binary) 값을 포함하는 상기 영상 특징 값을 생성할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 제1 비디오 데이터 및 상기 제2 비디오 데이터에 대해, 상기 오디오 특징 값을 생성하는 동작은, 비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대응하고 소정 시간 구간에 대응하는 오디오 샘플을 획득하고, 상기 오디오 샘플을 주파수 도메인으로 변환하고, 상기 오디오 샘플에서 검출된 주파수의 세기 분포를 획득하고, 세기가 큰 소정 개수의 상위 주파수에 대한 정보에 대응하는 상기 오디오 특징 값을 생성할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터와 제2 비디오 데이터를 복제 비디오 또는 서브 클립으로 판단한 것에 기초하여, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나를 삭제할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 전자 장치는, 디스플레이 및 입력 인터페이스를 더 포함하고, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터와 제2 비디오 데이터를 복제 비디오 또는 서브 클립으로 판단한 것에 기초하여, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터가 복제 비디오 또는 서브 클립인지 여부에 대한 정보, 및 상기 제1 비디오 데이터와 상기 제2 비디오 데이터의 속성 정보를 상기 디스플레이를 통해 출력하고, 상기 입력 인터페이스를 통해 입력된 입력 신호에 기초하여 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나를 상기 메모리로부터 삭제할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 복제 비디오 또는 서브 클립으로 판단된 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나가 마스터 비디오 데이터이고 나머지 하나가 서브 클립에 대응하는 경우, 서브 클립에 대응하는 비디오 데이터를 삭제하고, 삭제된 비디오 데이터에 대해, 마스터 비디오 데이터의 접근 경로 정보, 마스터 비디오 데이터에서의 시작 시점, 재생 시간, 해상도, 프레임 레이트, 또는 파일 크기 중 적어도 하나의 정보를 포함하는 메타 데이터를 저장할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 전자 장치는, 통신부를 더 포함하고, 상기 적어도 하나의 프로세서는, 상기 통신부를 통해 입력된 서브 클립 정보를 수신하고, 상기 수신된 서브 클립 정보에 대응되는 메타 데이터를 검색하고, 상기 메타 데이터에 기초하여 마스터 비디오 데이터로부터 서브 클립을 생성할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 서브 클립을 생성하는 동작은, GAN(Generative Adversarial Network)을 이용하여 상기 마스터 비디오 데이터의 적어도 일부를 업스케일링하는 동작, 또는 적어도 하나의 API(Application Programming Interface)를 이용하여 상기 마스터 비디오 데이터의 적어도 일부를 다운스케일링하는 동작 중 적어도 하나를 포함할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 전자 장치는 통신부를 더 포함하고, 상기 제2 비디오 데이터는 상기 통신부를 통해 연결된 적어도 하나의 외부 장치 또는 클라우드 저장 공간에 저장된 비디오 데이터이고, 상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나가 복제 비디오 또는 서브 클립이라고 판단된 것에 기초하여, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나를 삭제하고, 삭제되지 않은 마스터 비디오 데이터의 접근 경로를 삭제된 비디오 데이터를 저장한 장치 또는 클라우드 저장 공간으로 전송할 수 있다.
또한, 본 개시의 일 실시예에 따르면, 상기 전자 장치는 디스플레이, 통신부, 및 입력 인터페이스를 더 포함하고, 상기 적어도 하나의 프로세서는, 외부 장치 또는 서버로 제1 비디오 데이터를 전송하는 경우, 상기 제1 비디오 데이터에 대한 적어도 하나의 복제 비디오 또는 적어도 하나의 서브 클립을 검출하고, 상기 적어도 하나의 복제 비디오 또는 상기 적어도 하나의 서브 클립에 대한 정보를 상기 디스플레이를 통해 표시하고, 상기 입력 인터페이스를 통해 입력된 입력 신호에 의해 선택된 복제 비디오 또는 복제된 서브 클립을 상기 외부 장치 또는 서비스로 전송할 수 있다.
본 개시의 일 실시예의 다른 측면에 따르면, 제1 비디오 데이터 및 제2 비디오 데이터를 저장하는 단계; 상기 제1 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성하는 단계; 상기 제2 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제2 비디오 데이터에 대응하는 제2 벡터 데이터를 생성하는 단계; 상기 제1 벡터 데이터 및 상기 제2 벡터 데이터가 정의된 좌표계에서 상기 제1 벡터 데이터와 상기 제2 벡터 데이터 사이의 공간 거리를 산출하는 단계; 및 상기 공간 거리가 제1 조건을 만족한다고 판단된 것에 기초하여, 상기 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단하는 단계를 포함하는 전자 장치 제어 방법이 제공된다.
본 개시의 일 실시예의 또 다른 측면에 따르면, 전자 장치 제어 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 동작을 나타낸 도면이다.
도 2는 본 개시의 일 실시예에 다른 전자 장치의 구성을 나타낸 블록도이다.
도 3은 본 개시의 다른 실시예에 따른 전자 장치의 구조를 나타낸 블록도이다.
도 4는 본 개시의 일 실시예에 따른 전자 장치 제어 방법을 나타낸 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 프로세서의 구조를 나타낸 블록도이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치에서 메모리를 최적화하는 방법을 나타낸 흐름도이다.
도 7은 본 개시의 일 실시예에 따라 1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리를 결정하기 위한 방법을 나타낸 흐름도이다.
도 8은 본 개시의 일 실시예에 따라 데이터 파일을 사용하여 전자 장치가 제2 비디오 데이터로부터 서브 클립을 재생성하는 방법을 나타낸 흐름도이다.
도 9는 본 개시의 일 실시예에 따라, 애플리케이션의 제약에 기초하여 전자 장치에 의해 제2 비디오 데이터로부터 서브 클립을 생성하는 방법을 예시하는 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 시나리오에서 전자 장치에 의해 제2 비디오 데이터로부터 크기 조정된 그레이 스케일 이미지를 생성하는 방법을 나타낸 도면이다.
도 11은 본 개시의 일 실시예에 따른 예시적인 시나리오에서 전자 장치에 의해 리사이즈 된 그레이 스케일 이미지 로부터 이진 데이터를 생성하는 방법을 예시한다.
도 12는 본 개시의 일 실시예에 따라 전자 장치가 제2 비디오 데이터로부터 오디오 청크를 추출하는 방법을 도시한 도면이다.
도 13은 본 개시의 일 실시예에 따라 전자 장치에서 오디오 청크의 우세 주파수를 결정하는 방법을 나타낸 도면이다.
도 14는 본 개시의 일 실시예에 따라, 전자 장치가 제2 비디오 데이터로부터 제2 벡터 데이터를 생성하는 방법을 나타낸 도면이다.
도 15는 본 개시의 일 실시예에 따하 전자 장치가 제2 비디오 데이터의 서브 클립을 식별하는 방법을 도시한 도면이다.
도 16a는 본 개시의 일 실시예에 따른 전자 장치가 복제 비디오와 제2 비디오 데이터 사이의 공간 거리를 추정하는 방법을 나타낸 도면이다.
도 16b는 본 개시의 일 실시예에 따른 전자 장치가 서브 클립과 제2 비디오 데이터 사이의 공간 거리를 추정하는 방법을 도시한 도면이다.
도 17a 및 17b는 본 개시의 일 실시예에 따라, 제2 비디오 데이터의 서브 클립의 메타 데이터 파일을 도시한다.
도 18a, 도 18b, 및 도 18c는 본 개시의 일 실시예에 따른 예시 시나리오에서 메타 데이터 파일을 사용하여 전자 장치가 마스터 비디오로부터 서브 클립을 재생성하는 방법을 도시한 도면이다.
도 19는 본 개시의 일 실시예에 따라, 복제 비디오를 저장하기위한 클라우드 저장 장치를 도시한다.
도 20a는 본 개시의 일 실시예에 따라 전자 장치가 마스터 비디오 데이터의 서브 클립을 표시하는 방법을 도시한 도면이다.
도 20b는 본 개시의 일 실시예에 따라, 예시적인 시나리오에서 애플리케이션에 공유하기 위해 전자 장치가 사용자에게 마스터 비디오의 서브 클립을 제공하는 방법을 도시한 도면이다.
도 21은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
본 명세서는 청구항의 권리범위를 명확히 하고, 본 개시의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자가 청구항에 기재된 실시예를 실시할 수 있도록, 실시예들의 원리를 설명하고 개시한다. 개시된 실시예들은 다양한 형태로 구현될 수 있다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 개시의 실시예들이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 "모듈" 또는 "부"(unit)라는 용어는 소프트웨어, 하드웨어 또는 펌웨어 중 하나 또는 둘 이상의 조합으로 구현될 수 있으며, 실시예들에 따라 복수의 "모듈" 또는 "부"가 하나의 요소(element)로 구현되거나, 하나의 "모듈" 또는 "부"가 복수의 요소들을 포함하는 것도 가능하다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
이하 첨부된 도면들을 참고하여 본 개시의 실시예들의 작용 원리 및 다양한 실시예들에 대해 설명한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치의 동작을 나타낸 도면이다.
전자 장치(100)는 다양한 종류의 애플리케이션을 실행한다. 예를 들면, 전자 장치(100)는 채팅 애플리케이션, 소셜 네트워킹 서비스(SNS, Social Networking Service) 애플리케이션 등을 수행할 수 있다. 이와 같은 애플리케이션은 멀티미디어 데이터를 공유하는 기능을 제공할 수 있다. 전자 장치(100)는 다양한 애플리케이션을 이용하여 멀티미디어 데이터를 수신하거나, 멀티미디어 데이터를 외부 장치로 전송한다. 이러한 애플리케이션은 멀티미디어 데이터를 외부 장치 또는 서버로 전송할 때, 멀티미디어 데이터의 복사본을 생성하거나 용량을 줄인 압축본을 생성하거나, 일부 구간을 트리밍하여 생성한 서브 클립을 생성한 후, 새롭게 생성된 파일을 전송할 수 있다.
다른 예로서, 애플리케이션은 해당 애플리케이션에서 요구하는 파일 확장자로 데이터를 변환하기 위해 변환본을 생성한다. 예를 들면, 채팅 애플리케이션은 mkv, avi, mov 등의 확장자를 가진 비디오 데이터를 전송할 때, mp4 확장자의 파일로 비디오 데이터를 변환하여 변환본을 생성하고, mp4 확장자의 변환본을 전송한다. 본 개시에서는 이와 같은 복사본, 압축본, 서브 클립, 및 변환본을 통칭하여 복제 데이터라고 지칭한다. 이러한 복제 데이터는 이미지 데이터, 비디오 데이터, 또는 오디오 데이터 등을 포함한다. 예를 들면, 채팅 애플리케이션을 이용하여 비디오 데이터를 전송하는 경우, 전자 장치(100)는 복제 비디오(110a, 110b)를 생성하여 해당 비디오 데이터를 전송한다.
애플리케이션에서 멀티미디어 데이터의 전송을 위해 생성한 복제 데이터는 멀티미디어 데이터를 전송한 후에도 전자 장치의 메모리에 남아있는 경우가 많다. 예를 들면, 애플리케이션으로 비디오 데이터를 전송한 후에, 메모리에 원본 비디오 데이터(120)와 함께 복제 비디오(122a) 또는 서브 클립(122b)이 저장되어 있다. 이러한 복제 데이터가 메모리에 남아있는 경우, 메모리의 저장 공간을 점유하여 메모리의 저장 공간이 부족해지는 문제가 있다. 특히 비디오 데이터는 이미지 데이터 및 오디오 데이터에 비해 그 용량이 크기 때문에, 메모리의 저장 공간을 부족하게 하는 주요 원인이 된다. 도 1을 참조하여 이러한 문제점을 상세히 설명한다.
도 1의 GUI 뷰(130)은 전자 장치의 메모리(RAM, ROM 등)에 대한 정보를 나타낸다. 해당 전자 장치는 전체 저장 공간이 128GB이고 59.09GB가 사용 중이다. 사진과 비디오가 메모리의 전체 저장 공간 중 17GB를 차지할 정도로 사진과 비디오가 메모리에서 차지는 비중이 크다. 사용자들의 이용 현황을 살펴보면, 스마트폰에서 메모리의 50%를 비디오 데이터가 차지할 정도로 비디오 데이터가 메모리를 점유하는 비중이 높다. 이와 같이 비디오 데이터가 메모리를 과도하게 점유하는 경우, 사용자는 원치 않게 기존 데이터를 삭제해야 한다. 더욱이 최근 다양한 애플리케이션이 전자 장치(100)에서 이용되면서, 전자 장치(100)에서 운영 체제, 다수의 애플리케이션에 의해 사용되는 메모리 저장 공간이 크기 때문에, 메모리의 저장 공간 부족 문제가 부각되고 있다.
다른 문제점으로, 메모리가 거의 가득차게 되면 전자 장치(100)의 온도가 올라가 장치가 과열되거나 베터리 소모가 빨라지는 문제가 있다(140). 또한, 메모리에 여유 저장 공간이 적어지면, 전자 장치가 새로운 작업을 로딩하는데 있어서 지연이 발생하고, 장치 성능이 떨어지게 된다.
본 개시의 실시예들은 이와 같이 비디오 데이터가 메모리를 과도하게 점유하는 문제점을 해결하기 위해, 전자 장치(100)에서 복제 비디오 또는 서브 클립을 검출하여 관리하고 삭제하는 기능을 제공하고, 이러한 기능을 구현하기 위한 전자 장치 제어 방법, 및 프로그램을 제공한다.
도 2는 본 개시의 일 실시예에 다른 전자 장치의 구성을 나타낸 블록도이다.
본 개시의 일 실시예에 따르면, 전자 장치(100a)는 프로세서(210) 및 메모리(220)를 포함한다.
본 개시의 실시예들에 따른 전자 장치(100a)는 메모리와 프로세서를 포함하는 다양한 형태의 장치로 구현될 수 있다. 전자 장치(100a)는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 웨어러블 장치(wearable device), 또는 플렉서블 디바이스(flexible device) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
또한, 본 개시의 다른 실시예에 따르면, 전자 장치(100a)는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스, 게임 콘솔, 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
또한, 본 개시의 다른 실시예에 따르면, 전자 장치(100a)는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션(navigation) 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자 장치(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기(thermostat), 가로등, 토스터(toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
또한, 본 개시의 다른 실시예에 따르면, 전자 장치(100a)는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 개시의 일 실시예에서, 전자 장치(100a)는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 개시의 실시예에 따른 전자 장치(100a)는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 형태의 전자 장치를 포함할 수 있다.
프로세서(210)는 전자 장치(100a) 전반의 동작을 제어한다. 프로세서(210)는 하나 또는 그 이상의 프로세서로 구현될 수 있다. 예를 들면, 프로세서(210)는 메모리(220)에 저장된 인스트럭션 또는 커맨드를 실행하여 소정의 동작을 수행할 수 있다. 일 실시예에 따르면, 프로세서(210)는 CPU (Central Processing Unit), 모바일 어플리케이션 프로세서(AP, Application Processor) 등의 범용 프로세서에 대응된다. 다른 예로서, 프로세서(210)는 GPU(Graphics Processing Unit)과 같은 그래픽 전용 처리 장치, 시각 처리 장치 (VPU), AI 전용 프로세서(예를 들면, 뉴럴 프로세싱 유닛) 등의 전용 프로세서에 대응될 수 있다. 또한, 프로세서(210)는 명령어를 실행하기 위한 다중 코어를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 프로세서(210)는 메모리(220)에 저장된 미리 정의된 동작 규칙 또는 ML 모델에 따라 입력 데이터의 처리를 제어한다. 사전 정의된 운영 규칙 또는 ML 모델은 교육 또는 학습을 통해 제공된다.
여기서, 학습을 통해 제공된다는 것은 학습 방법을 복수의 학습 데이터에 적용하여 미리 정의된 동작 규칙 또는 원하는 특성의 ML 모델을 만드는 것을 의미한다. 학습은 일 실시예에 따른 ML이 수행되는 전자 장치(100a) 자체에서 수행되거나, 별도의 서버, 시스템을 통해 구현될 수 있다. 학습 방법은 복수의 학습 데이터를 이용하여 소정의 대상 장치(예: 로봇, 전자 장치(100a))를 훈련시켜 대상 장치가 판단 또는 예측을 하도록 유도, 허용 또는 제어하는 방법이다. 학습 방법에는 감독 학습, 비지도 학습, 준지도 학습 또는 강화 학습이 포함되며 이에 국한되지 않습니다.
ML 모델은 복수의 신경망 계층으로 구성될 수 있다. ML 모델은 교육 또는 학습을 통해 제공된다. 각 레이어는 복수의 가중치 값을 가지며, 이전 레이어 계산과 복수의 가중치 연산을 통해 레이어 연산을 수행한다. 신경망의 예로는 CNN(Convolutional Neural Network), DNN(Deep Neural Network), RNN(Recurrent Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), Bidirectional Recurrent Deep Neural Network(BRDNN), Generative Adversarial Network(GAN) 및 deep Q-network 등이 있다.
메모리(220)는 다양한 데이터 및 명령어를 저장한다. 메모리(220)는 이미지 데이터, 비디오 데이터, 오디오 데이터, 메타 데이터 파일 등을 저장한다. 또한, 메모리(220)는 다양한 프로그램 또는 소프트웨어를 저장한다. 예를 들면, 메모리(220)는 운영 체제, 미들 웨어, 또는 애플리케이션 등을 저장한다.
메모리(220)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 예를 들면, 메모리(220)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory), SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EPROM(Electrically Programmable Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(220)는 일부 예들에서 비 일시적 저장 매체로 간주 될 수 있다. 용어 비 일시적(non-tansitory)은 저장 매체가 반송파 또는 전파된 신호로 구현되지 않음을 나타낼 수 있다. 그러나 ‘비 일시적’이라는 용어는 메모리(220)가 움직일 수 없는 것으로 해석되어서는 안된다. 일부 예들에서, 메모리(220)는 각각의 메모리(220)보다 더 많은 양의 정보를 저장하도록 구성 될 수 있다. 특정 예에서, 비 일시적 저장 매체는 시간이 지남에 따라(예를 들어, RAM(Random Access Memory) 또는 캐시에) 변경 될 수 있는 데이터를 저장할 수 있다.
본 개시의 일 실시예에 따르면, 메모리(220)는 제1 비디오 데이터 및 제2 비디오 데이터를 저장한다. 프로세서(210)는 메모리(220)에 저장된 제1 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성한다. 또한, 프로세서(210)는 메모리(220)에 저장된 제2 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 제2 비디오 데이터에 대응하는 제2 벡터 데이터를 생성한다.
프로세서(210)는 소정의 좌표계에서 제1 벡터 데이터 및 제2 벡터 데이터를 정의한다. 제1 벡터 데이터 및 제2 벡터 데이터는 복수의 엘리먼트를 포함한다. 복수의 엘리먼트는 영상 데이터로부터 생성된 적어도 하나의 영상 특징 값, 및 오디오 데이터로부터 생성된 적어도 하나의 오디오 특징 값을 포함한다.
프로세서(210)는 소정의 좌표계에서 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간 거리를 산출한다. 공간 거리는 제1 벡터 데이터와 제2 벡터 데이터 사이의 놈(Norm) 값에 대응될 수 있다. 프로세서(210)는 공간 거리가 제1 조건을 만족한다고 판단된 것에 기초하여, 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단한다. 제1 비디오 데이터와 제2 비디오 데이터가 복제 비디오인 경우는 두 비디오 데이터 간에 재생 시간이 같고 컨텐츠가 같은 비디오이다. 서브 클립은 다른 비디오 데이터의 일부 구간을 트리밍하여 생성한 비디오 데이터이다. 예를 들면, 비디오 데이터의 재생 시간이 1분인 경우, 전체 비디오 데이터 중 재생 시간 15초에서 45초 사이의 구간을 잘라서 별도의 파일로 저장하여, 서브 클립을 생성할 수 있다. 프로세서(210)는 제1 비디오 데이터와 제2 비디오 데이터의 일부 또는 전부의 프레임을 각각 비교하여 복제 비디오 또는 서브 클립을 검출한다.
도 3은 본 개시의 다른 실시예에 따른 전자 장치(100b)의 구조를 나타낸 블록도이다.
본 개시의 다른 실시예에 따른 전자 장치(100b)는 프로세서(210), 메모리(220), 입력 인터페이스(310), 통신부(320), 및 디스플레이(330)를 포함한다. 입력 인터페이스(310), 통신부(320), 또는 디스플레이(330) 중 적어도 하나는 실시예에 따라 생략될 수 있다. 도 3에 대한 설명에서 프로세서(210)와 메모리(220)에 대해 도 2에 대한 설명과 중복되는 부분은 생략하고, 차이점을 중심으로 설명한다.
입력 인터페이스(310)는 외부 입력을 수신하는 인터페이스이다. 입력 인터페이스(310)는 명령 또는 데이터를 외부(예를 들면, 사용자)로부터 수신할 수 있다. 입력 인터페이스(310)는 예를 들면, 터치스크린, 터치패드, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)등을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 입력 인터페이스(310)는 애플리케이션를 제어하는 명령을 수신한다. 예를 들면, 입력 인터페이스(310)는 비디오 데이터의 선택 신호, 비디오 데이터의 전송 명령 등을 수신할 수 있다. 또한, 입력 인터페이스(310)는 복제 비디오 또는 서브 클립이 검출된 경우, 복제 비디오 또는 서브 클립을 삭제하는 명령을 수신할 수 있다.
통신부(320)는 유선 또는 무선으로 외부 장치와 통신할 수 있다. 통신부(320)는 근거리 통신을 수행할 수 있으며, 예를 들면, 블루투스, BLE(Bluetooth Low Energy), 근거리 무선 통신(Near Field Communication), WLAN(와이파이), 지그비(Zigbee), 적외선(IrDA, infrared Data Association) 통신, WFD(Wi-Fi Direct), UWB(ultra wideband), Ant+ 통신 등을 이용할 수 있다. 다른 예로서, 통신부(320)는 이동 통신을 이용할 수 있으며, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다.
본 개시의 일 실시예에 따르면, 통신부(320)는 비디오 데이터를 외부 장치 또는 서버로 전송한다. 통신부(320)는 원본 비디오 데이터, 복제 비디오, 또는 서브 클립을 외부 장치 또는 서버로 전송한다.
디스플레이(330)는 전자 장치(100b)의 동작 화면 및 데이터를 디스플레이한다. 디스플레이(330)는 프로세서(210)로부터 제공된 구동 신호에 기초하여, 소정의 정보를 디스플레이하도록 동작한다. 예를 들면, 디스플레이(330)는 그래픽 유저 인터페이스 뷰(GUI View, Graphic User Interface View), 이미지 데이터, 또는 비디오 데이터 등을 디스플레이한다. 디스플레이(330)는 예를 들면, 액정 표시 장치, 유기 전계 발광 표시 장치, 전기 영동 표시 장치 등의 형태로 구현될 수 있다.
도 4는 본 개시의 일 실시예에 따른 전자 장치 제어 방법을 나타낸 흐름도이다.
본 개시의 영상 처리 방법의 각 단계들은 프로세서 및 메모리를 구비하는 다양한 형태의 전자 장치에 의해 수행될 수 있다. 본 개시에서는 본 개시의 실시예들에 따른 전자 장치(100, 100a, 또는 100b)가 전자 장치 제어 방법을 수행하는 실시예를 중심으로 설명한다. 따라서 전자 장치(100, 100a, 또는 100b)에 대해 설명된 실시예들은 전자 장치 제어 방법에 대한 실시예들에 적용 가능하고, 반대로 전자 장치 제어 방법에 대해 설명된 실시예들은 전자 장치(100, 100a, 또는 100b)에 대한 실시예들에 적용 가능하다. 개시된 실시예들에 따른 전자 장치 제어 방법은 본 개시에 개시된 전자 장치(100, 100a, 또는 100b)에 의해 수행되는 것으로 그 실시예가 한정되지 않고, 다양한 형태의 전자 장치에 의해 수행될 수 있다. 본 개시에서 다양한 실시예의 전자 장치(100, 100a, 또는 100b)를 통칭하는 경우, 전자 장치(100)으로 식별번호를 기재한다.
전자 장치(100)는 소정의 동작 모드에서 제1 비디오 데이터와 제2 비디오 데이터를 선택하여, 복제 비디오 또는 서브 클립을 검출한다. 예를 들면, 전자 장치(100)는 사용자가 메모리(220)의 저장 공간을 관리하는 기능을 선택한 경우, 복제 비디오 또는 서브 클립의 검출 동작을 개시한다. 다른 예로서, 전자 장치(100)는 메모리(220)의 저장 공간이 부족한 경우, 복제 비디오 또는 서브 클립을 검출하는 동작을 개시한다. 또 다른 예로서, 전자 장치(100)는 소정의 애플리케이션을 통해 비디오 데이터를 전송하는 동작을 수행하는 경우, 복제 비디오 또는 서브 클립을 검출한다.
단계 S402에서, 전자 장치(100)는 제1 비디오 데이터 및 제2 비디오 데이터를 메모리(220)에 저장한다. 프로세서(210)는 메모리(220)에 저장된 모든 비디오 데이터 그룹, 또는 사용자가 지정한 비디오 데이터 그룹 내에서, 비디오 데이터를 일대일로 비교하도록 제1 비디오 데이터 및 제2 비디오 데이터를 순차적으로 선택할 수 있다. 프로세서(210)는 모든 비디오 데이터 그룹 또는 사용자가 지정하 비디오 데이터 그룹 내에서, 비디오 데이터들을 일대일로 비교하도록 제1 비디오 데이터와 제2 비디오 데이터의 조합을 순차적으로 선택할 수 있다.
다음으로, 전자 장치(100)의 프로세서(210)는, 단계 S404에서, 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성하고, 단계 406에서, 제2 비디오 데이터에 대응하는 제1 벡터 데이터를 생성한다. 단계 S404 및 단계 S406의 순서를 임의로 결정될 수 있으며, 병렬적으로 수행되는 것도 가능하다.
프로세서(210)는 단계 404에서, 제1 비디오 데이터의 영상 데이터 및 오디오 데이터로부터 제1 벡터 데이터를 생성한다. 제1 비디오 데이터의 영상 데이터는 복수의 프레임을 포함한다. 프로세서(210)는 복수의 프레임 전부 또는 일부를 이용하여 제1 벡터 데이터를 생성한다.
일 실시예에 따르면, 프로세서(210)는 소정의 시간 간격으로 복수의 프레임 중 일부 프레임을 샘플링하고, 샘플링된 프레임을 이용하여 제1 벡터 데이터를 생성한다. 예를 들면, 프로세서(210)는 0.2초 간격으로 프레임을 샘플링할 수 있다. 일 실시예에 따르면, 프로세서(210)는 오픈 소스 라이브러리의 FFmpegMediaMetadataRetriever() 함수를 이용하여 비디오 데이터로부터 비트 맵 형식의 이미지 프레임을 추출할 수 있다.
일 실시예에 따르면, 이미지 프레임은 컬러 이미지이고, 이미지 프레임의 각 픽셀은 R(red), G(green), B(blue) 값을 포함할 수 있다. R, G, B 값은 각각 0 내지 255 사이의 값을 포함할 수 있다. 픽셀 값은 이미지 프레임의 특정 위치에 있는 색상(예 : 빨강, 녹색, 파랑) 값을 포함한다. 예를 들어 크기가 100 * 100 인 각 이미지에는 100 * 100 픽셀이 있으며 각 픽셀에는 R, G, B의 색상 값을 정의하는 세 개의 값이 있다. 여기서 R값을 나타내는 데이터를 R채널, G값을 나타내는 데이터를 G채널, B값을 나타내는 데이터를 B채널이라고 지칭할 수 있다.
다른 실시예에 따르면, 프로세서(210)는 이미지 프레임의 각 픽셀의 R, G, B 값을 정규화하여, 추출된 이미지 프레임을 그레이 스케일 이미지로 변환한다. 추출 된 이미지 프레임은 추출된 이미지 프레임에서 색 품질 또는 작은 워터 마크에 독립적인 해시 코드를 유지하기 위해 그레이 스케일 이미지로 변환된다. 그레이 스케일 이미지의 픽셀 값은 0 내지 255 사이에서 정의된다. 프로세서(210)는 그레이 스케일 이미지를 더 낮은 크기(예 : 10x10 픽셀)로 크기 조정한다. 예를 들어, 그레이 스케일 이미지의 크기는 1200x750 픽셀이고 크기가 조정된 그레이 스케일 이미지의 크기는 10x10 픽셀이다.
본 개시의 일 실시예에 따르면, 프로세서(210)는 그레이 스케일 이미지의 크기를 조정하기 위해 오픈 소스 라이브러리의 Bitmap.createScaledBitmap() 함수를 사용하여 그레이 스케일 이미지의 이중 선형 다운 샘플링을 수행하도록 구성된다. 프로세서(210)는 그레이 스케일 이미지의 0 내지 225 범위의 픽셀 값을 이진 데이터로 변환하도록 구성되며, 여기서 이진 데이터는 비디오의 이미지 프레임에서 중요한 정보이다.
프로세서(210)는 샘플링된 제1 비디오 데이터의 프레임들로부터 영상 특징 값을 획득한다. 영상 특징 값은 프레임 데이터로부터 획득된 값들의 세트이다. 예를 들면, 프로세서(210)는 이진 영상 특징 값의 세트를 획득할 수 있다.
또한, 프로세서(210)는 제1 비디오 데이터의 오디오 데이터로부터 오디오 특징 값을 획득한다. 프로세서(210)는 제1 비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대응하고 소정 시간 구간에 대응하는 오디오 샘플을 획득한다. 오디오 샘플은 오디오 청크(chunk)로 지칭될 수 있다. 예를 들면, 오디오 샘플은 그 시간 구간의 중심이 대응되는 프레임의 시점에 대응하고, 듀레이션이 0.2초인 오디오 데이터에 대응할 수 있다. 일 실시예에 따르면, 각 오디오 샘플은 인접한 오디오 샘플에 20% 중첩될 수 있다. 프로세서(210)는 복수의 오디오 샘플로부터 오디오 특징 값을 획득한다.
다른 실시예에 다르면, 프로세서(210)는 오디오 샘플을 디코딩된 어레이로 변환한다. 프로세서(210)는 오디오 샘플을 디코딩 된 어레이로 변환하기 위해 OMX(Open Media Acceleration) 디코더를 사용하도록 구성되며, 여기서 디코딩 된 어레이는 각 순간의 오디오(예 : 0.04 초)에서 오디오의 진폭(예 : 80dB)을 포함한다. 프로세서(210)는 디코딩 된 어레이에 대해 고속 푸리에 변환(FFT)을 수행함으로써 디코딩 된 어레이를 주파수 도메인으로 변환하도록 구성된다.
또한, 프로세서(210)는 주파수 도메인에서 각 주파수의 크기를 결정하도록 구성된다. 프로세서(210)는 임계 값(예를 들어, 10dB)보다 큰 크기를 갖는 주파수 도메인에서 주파수를 식별하도록 구성되며, 여기서 임계 값은 미리 설정된 값이다. 프로세서(210)는 식별된 주파수의 크기에 기초하여 식별된 주파수로부터 우세 주파수를 선택하도록 구성되며, 여기서 우세 주파수는 비디오의 오디오 샘플에서 중요한 정보이다. 프로세서(210)는 우세 주파수 정보에 기초하여 오디오 특징 값을 획득할 수 있다.
프로세서(210)는 영상 특징 값과 오디오 특징 값을 포함하는 제1 벡터 데이터를 생성한다. 예를 들면, 제1 벡터 데이터는 64개의 영상 특징 값, 5개의 오디오 특징 값을 포함하여, 69차원의 벡터 데이터에 대응할 수 있다.
본 개시의 일 실시예에서, 우세 주파수는 식별된 주파수 중에서 더 큰 크기를 갖는 상위 5 개 주파수이며, 여기서 상위 5 개 주파수는 크기가 증가하는 순서로 배열된다. 프로세서(210)는 이미지 프레임 및 오디오 샘플의 시간 정보(즉, 타임 스탬프)를 식별하도록 구성된다. 프로세서(210)는 비디오 데이터의 벡터 데이터를 생성하기 위해 이미지 프레임의 중요 정보, 오디오 샘플의 중요 정보, 이미지 프레임 및 오디오 청크의 시간 정보를 결합하도록 구성된다. 이미지 프레임의 중요 정보는 영상 특징 값에 대응되고, 오디오 샘플의 중요 정보는 오디오 특징 값에 대응된다.
본 개시의 일 실시예에서, 비디오 데이터의 벡터 데이터는 n개의 70 차원 벡터 데이터를 포함하며, 여기서 n은 자연수이다. 70 차원 벡터 데이터는 t시점에 샘플링 된 이미지 프레임의 중요 정보를 나타내는 64 개의 값, t시점에 샘플링 된 오디오 샘플의 중요 정보를 나타내는 5 개의 값, 시간 t의 타임 스탬프를 나타낸다.
본 개시의 일 실시예에 따르면, 제1 벡터 데이터는 해당 프레임의 시간에 대응하는 시간 정보 값을 포함할 수 있다. 시간 정보 값은 해당 프레임이 속한 비디오 데이터의 전체 재생 시간 중 해당 프레임의 재생 시점을 나타내는 값이다. 시간 정보 값은 타임 스탬프, 프레임 식별 번호 등의 형태로 정의될 수 있다. 본 개시의 일 실시예에 따르면, 제1 벡터 데이터는 64개의 영상 특징 값, 5개의 오디오 특징 값, 및 1개의 시간 정보 값을 포함하여, 70차원의 벡터 데이터에 대응할 수 있다.
단계 S406에서, 프로세서(210)는 제1 비디오 데이터로부터 제1 벡터 데이터를 생성한 과정과 유사한 과정으로, 제2 비디오 데이터로부터 제2 벡터 데이터를 생성한다. 프로세서(210)는 제2 비디오 데이터의 영상 데이터로부터 소정 시간 간격으로 일부 프레임을 샘플링하여, 샘플링된 프레임으로부터 영상 특징 값을 생성한다. 또한, 프로세서(210)는 제2 비디오 데이터의 오디오 데이터로부터 소정의 시간 간격으로 오디오 샘플을 추출하고, 추출된 오디오 샘플로부터 오디오 특징 값을 획득한다. 프로세서(210)는 추출된 영상 특징 값과 오디오 특징 값으로부터 제2 벡터 데이터를 생성한다. 일 실시예에 따르면, 제2 벡터 데이터는 각 프레임의 시간 정보를 나타내는 시간 정보 값을 더 포함할 수 있다.
다음으로 단계 S408에서, 프로세서(210)는 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간 거리를 산출한다. 프로세서(210)는 수학식 1을 사용하여 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간 거리를 결정할 수 있다.
[수학식 1]
여기서 d(P, Q)는 두 동영상 사이의 공간 거리에 대응된다. Y는 제1 벡터 데이터(P)에서 70 차원 벡터 데이터의 수를 나타낸다. Li는 제2 벡터 데이터(Q)에서 70 차원 벡터 데이터의 개수를 나타낸다. 여기서 Pk는 k번째 제1 벡터 데이터를 나타내고, Qj는 j번째 제2 벡터 데이터를 나타낸다.
다음으로, 단계 S410에서, 프로세서(210)는 공간 거리가 제1 조건을 만족하는지 여부를 판단한다. 일 실시예에 따르면, 제1 조건은 공간 거리가 소정의 제1 기준 값보다 작은지 여부이다. 프로세서(210)는 공간 거리가 제1 기준 값보다 작은 경우, 단계 S412에서 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 다른 하나의 복제 비디오 또는 서브 클립이라고 판단한다.
제1 비디오 데이터와 제2 비디오 데이터가 복제 비디오 관계인 경우, 프로세서(210)는 소정의 기준에 따라 두 비디오 데이터 중 하나를 마스터 비디오 데이터로 판단하고, 나머지 하나를 복제 비디오로 판단할 수 있다. 예를 들면, 프로세서(210)는 제1 비디오 데이터와 제2 비디오 데이터 중 해상도가 높은 데이터를 마스터 비디오 데이터로 판단하고, 해상도가 낮은 데이터를 복제 비디오로 판단할 수 있다. 만약 제1 비디오 데이터와 제2 비디오 데이터의 해상도가 동일한 경우, 다른 기준으로 마스터 비디오 데이터를 판단할 수 있다. 예를 들면 프로세서(210)는 제1 비디오 데이터와 제2 비디오 데이터의 해상도가 동일한 경우, 파일 생성 시간이 빠른 비디오 데이터, 영상 품질이 높은 비디오 데이터 등을 마스터 비디오 데이터로 판단할 수 있다.
제1 비디오 데이터와 제2 비디오 데이터 중 하나가 서브 클립에 해당하는 경우, 프로세서(210)는 재생 시간이 더 긴 비디오 데이터를 마스터 비디오 데이터로 판단하고, 재생 시간이 짧은 비디오 데이터를 서브 클립으로 판단할 수 있다. 프로세서(210)는 제1 비디오 데이터가 제2 비디오의 서브 클립임을 검출하는 것에 응답하여 제2 비디오 데이터에 대한 제1 비디오의 속성을 결정하도록 구성된다.
일 실시예에서, 제2 비디오 데이터에 대한 제1 비디오 데이터의 속성은 제2 비디오 데이터에서 제1 비디오 데이터의 시작 지점(즉, 시작 시간)(예: 3 초), 제2 비디오 데이터에서 제2 비디오 데이터의 지속 시간(예 : 20 초), 제1 비디오 데이터의 품질(예 : 480p, 720p) 등을 포함한다. 프로세서(210)는 제 2 비디오 데이터의 속성을 결정하도록 구성된다. 일 실시예에서, 제2 비디오 데이터의 속성은 메모리(220)에 저장된 제2 비디오 데이터의 저장 위치(즉, 메모리(220)에 있는 제2 비디오 데이터의 저장 위치) 및 제2 비디오 데이터의 이름을 포함한다.
프로세서(210)는 메모리(220)에 저장된 비디오 데이터에 대해 복제 비디오 또는 서브 클립을 검출하고, 비디오 데이터 간의 관계에 기초하여 중복 데이터 그룹을 생성할 수 있다. 예를 들면, 비디오 데이터 A가 마스터 비디오 데이터이고, 비디오 데이터 B가 비디오 데이터 A의 서브 클립이고, 비디오 데이터 C가 비디오 데이터 A의 서브 클립인 경우, 프로세서(210)는 비디오 데이터 A, 비디오 데이터 B, 및 비디오 데이터 C를 중복 데이터 그룹으로 판단할 수 있다.
프로세서(210)는 중복 데이터 그룹을 정의하여, 해당 그룹의 비디오 데이터 중 적어도 하나와 함께 중복 데이터 그룹에 대한 정보를 메타 데이터 형태로 저장할 수 있다. 예를 들면 중복 데이터 그룹에 대한 메타 데이터가 비디오 데이터 A의 EXIF (Exchangeable Image File Format) 파일 헤더에 저장될 수 있다. 다른 예로서, 메타 데이터는 메타 데이터 파일로 저장되고, 메타 데이터 파일의 속성(예를 들면, 파일명, 접근 경로 등)이 해당 메타 데이터에 대응하는 중복 데이터 그룹에 포함된 각각의 비디오 데이터의 EXIF 파일에 저장될 수 있다.
마스터 비디오 데이터는 예를 들면, 외부 장치로부터 수신한 비디오 데이터, 전자 장치(100)에 구비된 카메라 애플리케이션을 이용하여 생성된 비디오 데이터 등에 대응될 수 있다. 서브 클립은 사용자 입력에 기초하여 생성될 수 있다. 예를 들면, 프로세서(210)는 특정 구간을 선택하고, 비디오 데이터의 트리밍을 요청하는 사용자 입력에 기초하여 서브 클립을 생성할 수 있다. 프로세서는 예를 들면, Java API를 이용하여 비디오 데이터로부터 트리밍된 서브 클립을 생성한다.
프로세서(210)는 트리밍된 비디오 데이터의 품질이 마스터 비디오 데이터보다 높거나 낮은지 판단한다. 비디오 데이터의 품질은 해상도, 비트 레이트 등에 기초하여 결정된다. 프로세서(210)는 EXIF 파일에 저장된 비디오 데이터의 속성에 기초하여 비디오 데이터의 품질에 대한 정보를 획득한다.
프로세서(210)는 원본 비디오 데이터의 품질과 트리밍 된 비디오 데이터의 품질이 동일하다는 결정에 응답하여 트리밍 된 비디오를 서브 클립으로 제공하도록 구성된다. 프로세서(210)는 트리밍 된 비디오 데이터의 품질이 원본 비디오 데이터의 품질보다 낮다는 결정에 응답하여 수정된 비디오 데이터를 생성한다.
프로세서(210)는 원본 비디오 데이터의 품질에 기초하여, 트리밍 된 비디오 데이터를 업 스케일링 할 수 있다. 프로세서(210)는 트리밍 된 비디오 데이터의 품질이 원본 비디오 데이터의 품질과 같거나 좋은 경우, 트리밍 된 비디오 데이터를 서브 클립으로 제공한다. 프로세서(210)는 서브 클립을 사용하여 소정의 액션을 수행하도록 구성된다. 서브 클립을 사용하여 액션을 수행하는 예로는 서브 클립을 애플리케이션에 공유하고, 애플리케이션을 사용하여 서브 클립을 재생하고, 애플리케이션을 사용하여 서브 클립을 다른 형식으로 변환하는 등의 동작이 있다.
본 개시의 일 실시예에 따르면, 프로세서(210)는 Java API를 이용하여 비디오 데이터를 다운 스케일링(또는 다운 샘플링)한다. 또한, 본 개시의 일 실시예에 따르면, 프로세서(210)는 머신 러닝(ML, Machine learning) 모델을 이용하여 비디오 데이터를 업 스케일링한다. 프로세서(210)는 ML 모델의 동작을 수행할 수 있다. 메모리(220)는 ML 모델을 수행하는 명령어를 저장하고, 메모리(220) 상의 저장 공간에서 ML 모델이 동작할 수 있다.
본 개시의 일 실시예에 따르면, 프로세서(210)는 복제 비디오 또는 서브 클립을 생성하기 위해 애플리케이션으로부터 입력을 수신하도록 구성된다. 프로세서(210)는 애플리케이션의 크기 및 품질 제약을 결정하도록 구성된다. 애플리케이션의 크기 제한은 애플리케이션이 수신하거나 업로드 할 수 있는 동영상의 최대 크기(예 : 15MB) 또는 최대 길이(예 : 30 초) 등을 포함한다. 애플리케이션의 품질 제약은 애플리케이션이 수신하거나 업로드 할 수 있는 비디오의 최대 비트 레이트(예 : 40MB / s) 또는 최대 해상도(예 : 320p)등을 포함한다. 또한, 프로세서(210)는 애플리케이션의 크기 및 품질 제약에 기초하여 비디오 데이터를 변환하도록 구성된다. 예제 시나리오에서 비디오 데이터는 Java API를 사용하여 변환됩니다. 또한, 프로세서(210)는 변환된 비디오 데이터를 애플리케이션에 제공하도록 구성된다. 또한, 프로세서(210)는 변환된 비디오 데이터를 어플리케이션에 제공함에 따라 전자 장치(100)에서 변환된 비디오 데이터를 삭제하도록 구성된다.
프로세서(210)는 제1 비디오 데이터의 속성 및 제2 비디오 데이터의 속성에 기초하여 제1 비디오 데이터의 메타 데이터 파일을 생성하도록 구성된다. 본 개시의 일 실시예에 따르면, 메타 데이터 파일은 EXIF (Exchangeable Image File Format) 파일이다. 프로세서(210)는 메타 데이터 파일을 메모리(220)에 저장하도록 구성된다. 또한, 본 개시의 일 실시예에 따르면, 프로세서(210)는 제2 비디오 데이터의 EXIF 파일(즉, 메타 데이터 파일)을 생성하도록 구성되며, 여기서 제2 비디오 데이터의 EXIF 파일은 메모리(220)에서 서브 클립의 저장 위치를 포함한다. 또한, 프로세서(210)는 제2 비디오 데이터의 EXIF 파일을 메모리(220)에 저장하도록 구성된다. 제2 비디오 데이터가 메모리(220)의 다른 저장 위치로 이동 될 때마다, 프로세서(210)는 제2 비디오 데이터의 저장 위치의 변경을 제1 비디오 데이터의 EXIF 파일로 업데이트한다.
프로세서(210)는 전자 장치(100)에 서브 클립의 엔트리를 나타내는 인디케이터(예: 썸네일, 아이콘)를 표시하도록 구성된다. 프로세서(210)는 인디케이터를 메타 데이터 파일에 링크하도록 구성된다. 프로세서(210)는 전자 장치(100)에서 제1 비디오 데이터를 삭제하고 제1 비디오 데이터의 썸네일을 표시하도록 구성되며, 여기서 썸네일은 EXIF 파일에 링크된다. 프로세서(210)는 제1 비디오 데이터의 썸네일에 대한 입력을 수신하면, 제1 비디오 데이터를 열거나 공유하기 위해 메모리(220)에서 EXIF 파일을 가져온다.
마스터 비디오 데이터는 예를 들면, 외부 장치로부터 수신한 비디오 데이터, 전자 장치(100)에 구비된 카메라 애플리케이션을 이용하여 생성된 비디오 데이터 등에 대응될 수 있다.
도 5는 본 개시의 일 실시예에 따른 프로세서의 구조를 나타낸 블록도이다.
본 개시의 일 실시예에 따르면, 프로세서(210)는 벡터 데이터 생성부(510), 공간 거리 추정부(520), 복제 비디오 검출부(530) 및 서브 클립 검출부(540)를 포함한다. 벡터 데이터 생성부(510), 공간 거리 추정부(520), 복제 비디오 검출부(530), 및 서브 클립 검출부(540)는 로직 게이트, 집적 회로, 마이크로 프로세서, 마이크로 컨트롤러와 같은 처리 회로에 의해 구현된다. 메모리 회로, 수동 전자 부품, 능동 전자 부품, 광학 부품, 하드 와이어 회로 등이 있으며, 선택적으로 펌웨어에 의해 구동 될 수 있다. 회로는 예를 들어 하나 이상의 반도체 칩 또는 인쇄 회로 기판 등과 같은 기판 지지대에 구현될 수 있다.
벡터 데이터 생성부(510)는 제1 비디오 데이터를 수신한다. 일 실시예에 따르면, 벡터 데이터 생성부(510)는 메모리(220)에 저장된 제1 비디오 데이터를 검출한다. 공간 거리 추정부(520)는 제1 비디오 데이터를 수신하거나 검출하는 것에 응답하여 제1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리를 결정한다. 일 실시예에서, 벡터 데이터 생성부(510)는 제1 비디오 데이터의 제1 벡터 데이터 및 제2 비디오 데이터의 제2 벡터 데이터를 생성한다. 공간 거리 추정부(520)는 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간 거리를 결정한다.
일 실시예에 따르면, 벡터 데이터 생성부(510)는 일정한 간격으로 비디오(즉, 제1 비디오 데이터 또는 제2 비디오 데이터)로부터 이미지 프레임을 추출한다. 다른 실시예에 따르면, 벡터 데이터 생성부(510)는 소정의 샘플링 간격(즉, 일정한 간격)으로 비디오의 샘플링을 수행한다. 또한, 벡터 데이터 생성부(510)는 샘플링 된 영상에서 이미지 프레임을 추출한다. 벡터 데이터 생성부(510)는 추출 된 이미지 프레임에서 이미지 프레임의 컬러 채널을 정규화하여 그레이 스케일 이미지로 변환한다. 벡터 데이터 생성부(510)는 그레이 스케일 이미지의 크기를 더 낮은 크기로 조정한다. 일 실시예에 따르면, 벡터 데이터 생성부(510)는 그레이 스케일 이미지의 크기를 조정하기 위해 오픈 소스 라이브러리의 Bitmap.createScaledBitmap() 함수를 사용하여 그레이 스케일 이미지의 이중 선형 다운 샘플링을 수행할 수 있다. 벡터 데이터 생성부(510)는 그레이 스케일 이미지의 0 내지 225 범위의 픽셀 값을 이진 데이터로 변환한다.
일 실시예에 다르면, 벡터 데이터 생성부(510)는 일정한 간격으로 비디오로부터 오디오 청크를 추출하고, 여기서 각 오디오 청크는 인접한 오디오 청크에 20 % 중첩된다. 다른 실시예에 따르면, 벡터 데이터 생성부(510)는 샘플링 된 비디오에서 오디오 청크를 추출한다. 벡터 데이터 생성부(510)는 오디오 청크를 디코딩 된 어레이로 변환한다. 일 실시예에 따르면, 벡터 데이터 생성부(510)는 오디오 청크를 디코딩 된 어레이로 변환하기 위해 OMX 디코더를 사용한다. 벡터 데이터 생성부(510)는 디코딩 된 어레이에 대해 FFT를 수행하여 디코딩 된 어레이를 주파수 영역으로 변환한다. 또한, 벡터 데이터 생성부(510)는 주파수 영역에서 각 주파수의 크기를 결정한다.
벡터 데이터 생성부(510)는 임계치보다 큰 크기를 갖는 주파수 도메인의 주파수를 식별한다. 벡터 데이터 생성부(510)는 식별된 주파수의 크기에 기초하여 식별된 주파수에서 우세 주파수를 선택한다. 벡터 데이터 생성부(510)는 이미지 프레임과 오디오 청크의 시간 정보(즉, 타임 스탬프)를 식별한다. 벡터 데이터 생성부(510)는 영상 프레임의 중요 정보, 오디오 청크의 중요 정보, 영상 프레임 및 오디오 청크의 시간 정보를 결합하여 비디오의 벡터 데이터를 생성한다. 공간 거리 추정부(520)는 앞서 설명된 수학식 1을 이용하여 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간 거리를 결정한다.
공간 거리 추정부(520)는 제1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리가 공간 임계 조건, 즉 제1 기준 값을 충족하는지 여부를 결정한다. 공간 거리 추정부(520)는 제1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리가 공간 임계 조건을 충족하지 않는다는 결정에 응답하여 제1 비디오 데이터를 메모리(220)에 저장한다. 공간 거리 추정부(520)는 제1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리가 공간 임계 조건을 충족한다고 결정한 것에 응답하여 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오 및 제2 비디오 데이터의 서브 클립 중 하나임을 검출한다.
공간 거리 추정부(520)는 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오 및 제2 비디오 데이터의 서브 클립 중 하나임을 감지하여 사용자에게 제1 비디오 데이터를 수동으로 삭제할 수 있는 옵션을 제공한다. 일 실시예에 따르면, 공간 거리 추정부(520)는 전자 장치(100)에서 자동 삭제 모드가 활성화되어 있는지 확인한다. 자동 삭제 모드가 비활성화되면 공간 거리 추정부(520)는 사용자에게 제2 비디오 데이터의 복제 비디오 목록과 제2 비디오 데이터의 서브 클립을 제공하여 사용자에게 복제 비디오와 서브 클립을 수동으로 삭제할 수 있도록 한다. 전자 장치(100)는 자동 삭제 모드가 활성화되면, 공간 거리 추정부(520)는 제1 비디오 데이터의 길이와 제2 비디오 데이터의 길이가 동일한 지 여부를 판단한다.
복제 비디오 검출부(530)는 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일하다고 결정한 것에 응답하여, 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오임을 감지한다. 또한, 복제 비디오 검출부(530)는 전자 장치(100)에서 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 삭제한다.
서브 클립 검출부(540)는 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일하지 않다는 결정에 응답하여 제1 비디오 데이터가 제2 비디오 데이터의 서브 클립인 것을 검출한다. 서브 클립 검출부(540)는 제1 비디오 데이터가 제2 비디오 데이터의 서브 클립임을 검출하는 것에 응답하여, 제2 비디오 데이터에 대한 제1 비디오 데이터의 속성을 결정한다. 또한, 서브 클립 검출부(540)는 제2 비디오 데이터의 속성을 결정한다. 서브 클립 검출부(540)는 제1 비디오 데이터의 속성 및 제2 비디오 데이터의 속성에 기초하여 제1 비디오 데이터의 메타 데이터 파일을 생성한다. 서브 클립 검출부(540)는 메타 데이터 파일을 메모리(220)에 저장한다. 일 실시예에 따르면, 서브 클립 검출부(540)는 제2 비디오 데이터의 EXIF 파일(즉, 메타 데이터 파일)을 생성한다. 또한, 서브 클립 검출부(540)는 제2 비디오 데이터의 EXIF 파일을 메모리(220)에 저장한다. 또한, 서브 클립 검출부(540)는 전자 장치(100)에 서브 클립의 엔트리를 나타내는 표시를 표시한다. 또한, 서브 클립 검출부(540)는 인디케이터를 메타 데이터 파일에 연결한다. 또한, 서브 클립 검출부(540)는 전자 장치(100)에서 제1 비디오 데이터를 삭제한다.
본 개시의 일 실시예에 따르면, 서브 클립 검출부(540)는 서브 클립을 생성하기 위해 애플리케이션으로부터 입력을 수신한다. 다른 실시예에 따르면, 서브 클립 검출부(540)는 서브 클립을 생성하기 위해 인디케이터에 대한 입력을 수신한다. 서브 클립 검출부(540)는 메모리(220)로부터 인디케이터에 링크 된 메타 데이터 파일을 가져온다(fetch). 서브 클립 검출부(540)는 서브 클립의 메타 데이터 파일에서 속성을 추출한다. 서브 클립 검출부(540)는 메타 데이터 파일에서 제2 비디오 데이터의 이름 및 저장 위치에 기초하여 제2 비디오 데이터를 찾는다.
서브 클립 검출부(540)는 제2 비디오 데이터의 이름 및 저장 위치에 기초하여 제2 비디오 데이터를 가져온다. 서브 클립 검출부(540)는 트리밍 된 비디오를 생성하기 위해 서브 클립의 시작 시간 및 기간에 기초하여 제2 비디오 데이터를 트리밍한다. 서브 클립 검출부(540)는 트리밍 된 비디오의 품질이 제1 비디오 데이터의 속성에서 제1 비디오 데이터의 품질보다 높거나 낮은지를 결정한다.
서브 클립 검출부(540)는 제1 비디오 데이터의 품질 및 트리밍된 비디오의 품질이 동일하다는 결정에 응답하여 트리밍된 비디오를 서브 클립으로서 제공한다. 서브 클립 검출부(540)는 트리밍된 비디오의 품질이 제1 비디오 데이터의 품질보다 낮다는 결정에 응답하여 수정된 비디오를 생성하기 위한 제1 비디오 데이터의 품질을 기반으로 트리밍 된 비디오를 업 스케일링 또는 업 샘플링한다. 일 실시예에서, 트리밍 된 비디오에 대한 업 스케일링(즉, 업 샘플링)은 ML 모델을 사용하여 수행되며, 여기서 ML 모델은 훈련 또는 학습을 통해 제공된다. 일 실시예에 따르면, 서브 클립 검출부(540)는 트리밍 된 비디오의 품질이 제1 비디오 데이터의 품질보다 크다는 결정에 응답하여 수정된 비디오를 생성하기 위해 제1 비디오 데이터의 품질에 기초하여 트리밍된 비디오를 다운 스케일링 또는 다운 샘플링한다. 또한, 서브 클립 검출부(540)는 수정된 영상을 서브 클립으로 간주하고 서브 클립을 이용하여 액션을 수행한다.
본 개시의 일 실시예에서 따르면, 복제 비디오 검출부(530)는 애플리케이션으로부터 복제 비디오 또는 서브 클립을 생성하기위한 입력을 수신한다. 복제 비디오 검출부(530)는 애플리케이션의 크기 및 품질 제약을 결정한다. 또한, 복제 비디오 검출부(530)는 애플리케이션의 크기 및 품질 제약에 기초하여 제2 비디오 데이터를 변환한다. 일 실시예에 따르면, 복제 비디오 검출부(530)는 제2 비디오 데이터를 변환하기 위해 ML 모델을 사용하고, 여기서 ML 모델은 훈련 또는 학습을 통해 제공된다. 또한, 복제 비디오 검출부(530)는 변환 된 제2 영상을 애플리케이션에 제공한다. 또한, 복제 비디오 검출부(530)는 변환 된 제 2 영상을 애플리케이션에 제공하는 것에 응답하여 전자 장치(100)에서 변환 된 제 2 영상을 삭제한다.
도 5에서 복제 비디오 검출부(530)의 하드웨어 구성 요소를 도시하지만 다른 실시예가 이에 제한되는 것은 아니다. 다른 실시예에 따르면, 프로세서(210)는 더 적은 수의 구성 요소를 포함할 수 있다. 또한, 구성 요소의 라벨 또는 이름은 예시적인 목적으로만 사용되며 본 출원의 권리범위를 제한하지 않는다. 하나 이상의 구성 요소가 함께 결합되어 전자 장치(100)에 저장된 제2 비디오 데이터의 복제 비디오 및 서브 클립을 검출하기위한 동일하거나 실질적으로 유사한 기능을 수행 할 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치에서 메모리를 최적화하는 방법을 나타낸 흐름도이다.
단계 602에서, 전자 장치(100)는 제1 비디오 데이터를 수신한다. 일 실시예에서, 전자 장치(100)은 프로세서(210)가 제1 비디오 데이터를 수신하도록 허용한다.
단계 604에서, 전자 장치(100)는 메모리(220)에 저장된 제1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리를 결정한다. 일 실시예에 따르면, 전자 장치(100)는 공간 거리 추정부(520)가 전자 장치(100)의 메모리(220)에 저장된 제1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리를 결정하도록 제어한다.
단계 606에서, 전자 장치(100)는 공간 거리가 공간 임계 조건을 충족하는지 여부를 결정한다. 일 실시예에 따르면, 전자 장치(100)는 공간 거리 추정부(520)가 공간 거리가 공간 임계 조건을 충족하는지 여부를 결정하도록 허용한다.
단계 608에서, 전자 장치(100)는 공간 거리가 공간 임계 조건을 충족하지 않는다고 판단되면, 제1 비디오 데이터를 메모리(220)에 저장한다. 일 실시예에 따르면, 전자 장치(100)는 공간 거리가 공간 임계 조건을 충족하지 않는다고 판단되면, 공간 거리 추정부(520)가 제1 비디오 데이터를 메모리(220)에 저장하도록 제어한다.
단계 610에서, 전자 장치(100)는 공간 거리가 공간 임계 조건을 충족한다고 결정할 때, 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오 또는 제2 비디오 데이터의 서브 클립임을 검출한다. 일 실시예에 따르면, 공간 거리가 공간 임계 조건을 충족한다고 결정할 때, 공간 거리 추정부(520)는 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오 또는 제2 비디오 데이터의 서브 클립임을 검출한다.
단계 612에서, 전자 장치(100)는 자동 삭제 모드가 활성화 되어 있는지 여부를 결정한다. 일 실시예에 따르면, 공간 거리 추정부(520)는 자동 삭제 모드가 활성화 되었는지 여부를 결정한다.
단계 614에서, 전자 장치(100)는 자동 삭제 모드가 활성화되지 않았다고 판단된 경우, 제1 비디오 데이터를 수동으로 삭제하기위한 옵션을 사용자에게 제공한다. 일 실시예에 따르면, 공간 거리 추정부(520)는 자동 삭제 모드가 활성화되지 않았다고 판단되면, 제1 비디오 데이터를 수동으로 삭제하기위한 옵션을 사용자에게 제공한다.
단계 616에서, 전자 장치(100)는 자동 삭제 모드가 활성화 되었다고 판단되면, 제1 비디오 데이터의 지속 시간 및 제2 비디오 데이터의 지속 시간이 동일한 지 여부를 결정한다. 일 실시예에 따르면, 공간 거리 추정부(520)는 자동 삭제 모드가 활성화 되었다고 판단되면, 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일한지 여부를 결정한다.
단계 618에서, 전자 장치(100)는 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일하다고 판단되면, 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오임을 검출한다. 일 실시예에 따르면, 복제 비디오 검출부(530)는 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일하다고 판단되면, 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오임을 검출한다.
단계 620에서, 전자 장치(100)는 제1 비디오 데이터가 제2 비디오 데이터의 복제 비디오임이 검출되면, 제1 비디오 데이터를 삭제한다. 일 실시예에 따르면, 복제 비디오 검출부(530)는 메모리(220)로부터 제1 비디오 데이터를 삭제한다.
단계 622에서, 전자 장치(100)는 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일하지 않다고 결정할 때, 제1 비디오 데이터가 제2 비디오 데이터의 서브 클립임을 검출한다. 일 실시예에서, 서브 클립 검출부(540)는 제1 비디오 데이터의 지속 시간과 제2 비디오 데이터의 지속 시간이 동일하지 않다고 판단되면, 제1 비디오 데이터가 제2 비디오 데이터의 서브 클립임을 검출한다.
단계 624에서, 전자 장치(100)는 제1 비디오 데이터의 속성 및 제2 비디오 데이터의 속성에 기초하여 제1 비디오 데이터의 메타 데이터 파일을 생성한다. 일 실시예에 따르면, 서브 클립 검출부(540)는 제1 비디오 데이터의 속성 및 제2 비디오 데이터의 속성에 기초하여 제1 비디오 데이터의 메타 데이터 파일을 생성한다.
단계 626에서, 전자 장치(100)는 메타 데이터 파일을 메모리(220)에 저장한다. 일 실시예에 따르면, 서브 클립 검출부(540)는 메타 데이터 파일을 메모리(220)에 저장하도록 허용한다. 또한, 전자 장치(100)는 메타 데이터 파일을 저장할 때 단계 620을 수행하여, 제1 비디오 데이터를 삭제한다.
본 개시의 흐름도들에서 다양한 동작, 블록, 단계 등은 제시된 순서로, 상이한 순서로 또는 동시에 수행될 수 있다. 또한, 일부 실시예에서, 동작, 블록, 단계 등의 일부는 본 개시의 범위를 벗어나지 않고 생략, 추가, 수정, 건너 뛰기 등이 될 수 있다.
도 7은 본 개시의 일 실시예에 따라 1 비디오 데이터와 제2 비디오 데이터 사이의 공간 거리를 결정하기 위한 방법을 나타낸 흐름도이다.
단계 702에서, 전자 장치(100)는 규칙적인 간격으로 제1 비디오 데이터를 샘플링한다. 예를 들면 전자 장치(100)는 소정의 시간 간격(예를 들면 0.2초)으로 제1 비디오 데이터를 샘플링할 수 있다.
단계 704에서, 전자 장치(100)는 샘플링 된 비디오로부터 이미지 프레임을 추출한다. 단계 706에서, 전자 장치(100)는 추출된 이미지 프레임을 그레이 스케일 이미지로 변환한다. 단계 708에서, 전자 장치(100)는 그레이 스케일 이미지를 더 낮은 크기로 리사이징한다. 단계 710에서, 전자 장치(100)는 그레이 스케일 이미지의 픽셀 값을 이진 데이터로 변환한다.
단계 712에서, 전자 장치(100)는 샘플링 된 비디오로부터 오디오 청크를 추출한다. 단계 714에서, 전자 장치(100)는 오디오 청크를 디코딩 된 어레이로 변환한다. 단계 716에서, 전자 장치(100)는 디코딩 된 어레이를 주파수 도메인으로 변환한다.단계 718에서, 전자 장치(100)는 주파수 도메인으로부터 우세(dominant) 주파수를 결정한다.
단계 720에서, 전자 장치(100)는 이미지 프레임 및 오디오 청크의 시간 정보를 식별한다. 단계 722에서, 전자 장치(100)는 이진 데이터, 우세 주파수 및 시간 정보를 결합하여 제1 비디오 데이터의 제1 벡터 데이터를 생성한다. 단계 724에서, 전자 장치(100)는 제1 벡터 데이터와 제2 벡터 데이터 사이의 공간적 거리를 결정하는 단계를 수행한다.
본 개시의 일 실시예에 따르면, 단계 702 내지 724는 프로세서(210)에 의해 수행된다. 본 개시의 일 실시예에 따르면, 단계 724는 프로세서(210)의 공간 거리 추정부(520)에 의해 수행된다.
도 8은 본 개시의 일 실시예에 따라 데이터 파일을 사용하여 전자 장치가 제2 비디오 데이터로부터 서브 클립을 재생성하는 방법을 나타낸 흐름도이다.
단계 802에서, 전자 장치(100)는 애플리케이션으로부터 서브 클립을 공유하기위한 요청을 수신한다. 단계 804에서, 전자 장치(100)는 서브 클립의 EXIF 파일로부터 속성을 추출한다.
단계 806에서, 전자 장치(100)는 마스터 비디오의 이름 및 저장 위치에 기초하여 마스터 비디오를 검색한다. 단계 808에서, 전자 장치(100)는 서브 클립의 시작 시간 및 지속 시간에 기초하여 마스터 비디오로부터 트리밍 된 비디오 데이터를 생성하는 단계를 포함한다.
단계 810에서, 전자 장치(100)는 트리밍 된 비디오 데이터의 해상도가 마스터 비디오의 해상도와 다를 때 EXIF 파일의 품질 정보에 기초하여 트리밍 된 비디오 데이터에 대해 업 스케일링 또는 다운 스케일링을 수행하는 단계를 포함한다. 본 개시의 일 실시예에 따르면, 트리밍 된 비디오 데이터에 대한 업 스케일링(즉, 업 샘플링)은 ML 모델을 사용하여 수행되며, 여기서 ML 모델은 훈련 또는 학습을 통해 제공된다. 단계 812에서, 전자 장치(100)는 마스터 비디오 데이터의 서브 클립을 애플리케이션에 공유한다.
본 개시의 일 실시예에 따르면, 서브 클립 검출부(540)가 단계 802 내지 812를 수행한다.
기존의 방법 및 시스템과 달리 제안된 방법은 전자 장치(100)에서 서브 클립이 삭제된 경우에도 메타 데이터 파일의 정보를 기반으로 제2 비디오 데이터의 서브 클립을 유지하고 복원할 수 있는 이점이 있다. 따라서 사용자는 서브 클립을 생성하기 위해 제2 비디오 데이터를 한 번 더 편집할 필요가 없다. 따라서 본 개시의 실시예들에 따르면 사용자 경험을 향상시키는 효과가 있다. 또한, 본 개시의 실시예들에 따르면, 복제 비디오의 서브 클립을 삭제할 때, 서브 클립에 대한 메타 데이터를 저장하여, 서브 클립을 용이하게 복원할 수 있는 효과가 있다.
도 9는 본 개시의 일 실시예에 따라, 애플리케이션의 제약에 기초하여 전자 장치에 의해 제2 비디오 데이터로부터 서브 클립을 생성하는 방법을 예시하는 흐름도이다.
단계 902에서, 전자 장치(100)는 애플리케이션으로부터 비디오를 공유 요청을 수신한다. 단계 904에서, 전자 장치(100)는 애플리케이션의 크기 및 품질 제약을 식별한다.
단계 906에서, 전자 장치(100)는 애플리케이션의 크기 및 품질 제약에 기초하여 마스터 비디오 데이터를 변환한다. 본 개시의 일 실시예에 따르면, 복제 비디오 검출부(530)가 마스터 비디오 데이터를 변환하기 위해 ML 모델을 사용할 수 있다. 여기서 ML 모델은 훈련 또는 학습을 통해 제공된다.
단계 908에서, 전자 장치(100)는 변환된 마스터 비디오를 애플리케이션에 공유한다. 또한, 전자 장치(100)는 변환된 마스터 비디오 데이터를 애플리케이션에 공유할 때 변환된 마스터 비디오 데이터를 삭제할 수 있다.
일 실시예에 따르면, 복제 비디오 검출부(530)가 단계 902 내지 908를 수행할 수 있다.
도 10은 본 개시의 일 실시예에 따른 시나리오에서 전자 장치에 의해 제2 비디오 데이터로부터 크기 조정된 그레이 스케일 이미지를 생성하는 방법을 나타낸 도면이다. 도 10에서는 1.2초 길이의 제2 비디오 데이터로부터 0.2초 간격으로 이미지 프레임을 추출하여, 제2 벡터 데이터를 생성하는 예를 설명한다.
전자 장치(100)는 메모리(220)에 저장된 1.2 초 길이의 제2 비디오 데이터(1002)를 감지한다. 도 10의 시나리오에서 제2 비디오 데이터(1002)의 크기는 1200x720 픽셀이다. 또한, 전자 장치(100)는 제2 비디오 데이터(1002)로부터 0.2 초의 일정한 간격으로 1200x720 픽셀 크기의 각 이미지 프레임을 추출한다. 따라서, 전자 장치(100)는 제2 비디오 데이터(1002)에서 총 6 개의 이미지 프레임(1004A, 1004B, 1004C, 1004D, 1004E, 및 1004F)을 추출한다.
또한, 전자 장치(100)는 추출된 이미지 프레임(1004A, 1004B, 1004C, 1004D, 1004E, 및 1004F)을 1200x720 크기의 그레이 스케일 이미지(1006A, 1006B, 1006C, 1006D, 1006E, 및 1006F)로 변환한다.
또한, 전자 장치(100)는 그레이 스케일 이미지(1006A, 1006B, 1006C, 1006D, 1006E, 및 1006F)를 10x10 픽셀의 크기로 크기를 조정한다. 여기서 1008A는 첫 번째 크기 조정된 그레이 스케일 이미지, 1008B는 두 번째 크기 조정 된 그레이 스케일 이미지, 1008C는 세 번째 크기 조정 된 그레이 스케일 이미지, 1008D는 네 번째 크기 조정 된 그레이 스케일 이미지이고, 1008E는 다섯 번째 크기 조정 된 그레이 스케일 이미지이고, 1008F는 여섯 번째 크기 조정 된 그레이 스케일 이미지이다.
도 11은 본 개시의 일 실시예에 따른 예시적인 시나리오에서 전자 장치에 의해 리사이즈 된 그레이 스케일 이미지 로부터 이진 데이터를 생성하는 방법을 예시한다.
전자 장치(100)는 크기가 10x10 인 매트릭스(1101)를 생성하며, 첫 번째 크기 조정된 그레이 스케일 이미지(1008A)에 해당하며, 여기서 매트릭스(1101)의 각 요소는 첫 번째 크기 조정된 그레이 스케일의 해당 픽셀의 픽셀 값이다.
또한, 전자 장치(100)는 경계 영역(1102)의 픽셀 값을 제외한 매트릭스(1101)의 픽셀 값을 양자화하여 크기 8x8의 이진 행렬(1105), 즉 이진 데이터를 생성한다. 이진 행렬(1105)은 경계 영역(1102)의 픽셀 값을 제외한 매트릭스(1101)의 픽셀 값의 이진수를 포함한다. 전자 장치(100)는 수학식 2를 사용하여 행렬(1101)에서 픽셀 값의 이진수를 결정한다.
[수학식 2]
여기서 g(x, y)는 이진 행렬(1105)의 요소이다. x와 y는 각각 이진 행렬(1105)의 행과 열을 나타낸다.
본 개시의 다른 실시예에 따르면, 전자 장치(100)는 이진수로 변환하기 위해 매트릭스(1101)에서 8개의 이웃 픽셀 값을 갖는 매트릭스(1101)의 픽셀 값 만을 선택한다. 인접 픽셀 값은 이미지의 픽셀에 인접한 픽셀 값이다. 따라서, 전자 장치(100)는 이진 행렬(1105)을 생성하기위한 행렬(1101)의 경계 영역(1102)에 있는 픽셀 값을 무시하고, 크기가 8x8인 이진 행렬(1105)을 생성한다.
전자 장치(100)는 중앙 픽셀 값에 대한 8개의 인접 픽셀 값 중 적어도 5개의 인접 픽셀 값이 매트릭스(1101)의 중앙 픽셀 값보다 큰지 여부를 판단한다. 중앙 픽셀 값은 이진 값(즉, 1 또는 0)을 생성하기 위해 고려중인 픽셀의 값이다. 중앙 픽셀 값의 8 개의 인접 픽셀 값 중 적어도 5개의 인접 픽셀 값이 중앙 픽셀 값보다 큰 경우, 전자 장치(100)는 중앙 픽셀 값의 값을 1로 이진 행렬(1105)의 값을 설정한다. 중앙 픽셀 값의 8개의 인접 픽셀 값 중 적어도 5개의 인접 픽셀 값이 중앙 픽셀 값보다 크지 않은 경우, 전자 장치(100)는 중앙 픽셀 값의 값을 0으로 이진 행령(1105)의 값을 설정한다.
예시적인 시나리오에서, 매트릭스(1101)의 선택 박스 1103을 살펴보면, 중앙 픽셀 값 60의 인접 픽셀 값은 40, 50, 65, 30, 70, 70, 90, 80이다. 여기서 5개의 이웃하는 픽셀 값 65, 70, 70, 90, 80은 중앙 픽셀 값 60보다 크다. 따라서, 전자 장치(100)는 중앙 픽셀 값 60의 값을 이진 행렬(1105)에 1(1106)로 설정한다. 중앙 픽셀 값 65의 인접 픽셀 값이 50, 55, 60, 65, 65, 70, 75, 10, 26 인 매트릭스(1101)의 선택 상자 1104를 살펴보면, 두 개의 인접 픽셀 값 70, 75만 중앙 픽셀 값 65보다 크다. 따라서 전자 장치(100)는 중앙 픽셀 값 65의 값을 이진 행렬(1105)에서 0(1107)으로 설정한다. 또한, 전자 장치(100)는 행렬(1101)의 모든 픽셀 값의 이진수를 결정하고 64 차원의 이진 행렬(1105)을 업데이트한다. 마찬가지로, 전자 장치(100)는 나머지 크기 조정된 그레이 스케일 이미지(1008B, 1008C, 1008D, 1008E, 1008F)의 이진 행렬(1105)을 생성한다.
도 12는 본 개시의 일 실시예에 따라 전자 장치가 제2 비디오 데이터로부터 오디오 청크를 추출하는 방법을 도시한 도면이다.
도 12에서는 1.2초 길이의 제2 비디오 데이터(1002)로부터 오디오 청크를 추출하는 예를 설명한다. 우선, 전자 장치(100)는 제2 비디오 데이터(1002)로부터 오디오 데이터(1202)를 추출한다.
오디오 데이터(1202)는 제2 비디오 데이터(1002)와 지속 시간이 동일한 데이터이다. 전자 장치(100)는 추출된 오디오 데이터(1202)를 일정한 간격으로 분할하여 오디오 청크(1204A, 1204B, 1204C, 1204D, 1204E, 및 1204F)를 생성한다.
도 12의 예시에서는 각 오디오 청크(1204A, 1204B, 1204C, 1204D, 1204E, 및 1204F)의 지속 시간이 0.2초이다. 이와 같이 일정한 간격으로 프레임과 오디오 청크가 추출되고, 이미지 프레임과 오디오 청크의 타임 스탬프가 각각 동일하게 대응된다.
이미지 프레임(1008A) 및 오디오 청크(1204A)의 타임 스탬프는 동일하고, 이미지 프레임(1008B) 및 오디오 청크(1204B)의 타임 스탬프도 동일하다. 또한, 이미지 프레임(1008C)과 오디오 청크(1204C)의 타임 스탬프는 동일하고, 이미지 프레임(1008D)과 오디오 청크(1204D)의 타임 스탬프도 동일하다. 이미지 프레임(1008E)과 오디오 청크(1204E)는 동일하며, 이미지 프레임(1008F)과 오디오 청크(1204F)의 타임 스탬프도 동일하다.
도 13은 본 개시의 일 실시예에 따라 전자 장치에서 오디오 청크의 우세 주파수를 결정하는 방법을 나타낸 도면이다.
전자 장치(100)는 오디오 청크(1204)를 디코딩 된 어레이(1206)로 변환한다. 여기서 디코딩 된 어레이는 각 시간 간격(1006A)의 오디오 청크(1204)의 오디오 신호의 진폭 정보(1006B)를 포함한다.
도 13의 어레이(1206)에서, 0 초에서 진폭은 40dB이고, 0.04 초에서 진폭은 80dB이고, 0.08 초에서 진폭은 40dB이고, 0.12 초에서 진폭은 20dB이고, 0.16 초에서 진폭은 15dB이고, 0.2 초에서 진폭은 18dB이다.
전자 장치(100)는 디코딩 된 어레이를 주파수 도메인(1208)으로 변환한다. 여기서 오디오 신호의 주파수는 각 시간 프레임 윈도우(0 초 내지 0.04 초의 시간 프레임 윈도우로부터 0.16 초 내지 0.2 초의 시간 프레임 윈도우까지)에 대해 결정된다.
또한, 전자 장치(100)는 임계 값(예: 10dB)보다 큰 주파수 도메인(1208)의 주파수(1210A)를 식별한다. 전자 장치(100)는 식별된 주파수의 크기를 결정한다. 또한, 전자 장치(100)는 식별된 주파수에서 우세 주파수(1214)를 선택하고, 여기서 우세 주파수는 식별된 주파수(1210A) 중에서 더 큰 크기를 가진 상위 5 개 주파수(1212)이다. 상위 5 개 주파수는 우세 주파수(1214)에서 크기가 증가하는 순서로 정렬된다. 유사하게, 전자 장치(100)는 나머지 오디오 청크(1204A, 1204B, 1204C, 1204D, 1204E, 및 1204F)의 우세 주파수를 결정한다.
도 14는 본 개시의 일 실시예에 따라, 전자 장치가 제2 비디오 데이터로부터 제2 벡터 데이터를 생성하는 방법을 나타낸 도면이다.
이미지 프레임(1004A)의 이진 데이터(1116)를 생성하고 오디오 청크(1204A)의 우세 주파수(1214)를 결정하는 것에 응답하여, 전자 장치(100)는 70 차원 벡터(1402)를 생성한다. 전자 장치(100)는 이미지 프레임(1004A)의 이진 데이터(1116), 오디오 청크(1204A)의 우세 주파수 및 공통된 시간 정보(1302)를 연결하여 70 차원 벡터(1402)를 생성한다. 예를 들면, 이미지 프레임(1004A) 및 오디오 청크(1204A)에 대한 공통된 시간 정보(1302)는 0.2 초로 정의된다. 마찬가지로, 전자 장치(100)는 나머지의 각 이미지 프레임(1004B, 1004C, 1004D, 1004E, 및 1004F) 및 오디오 청크(1204B, 1204C, 1204D, 1204E, 1204F)에 대해, 해당 시간 정보 즉, 0.4, 0.6, 0.8, 1.0을 기반으로 70 차원 벡터(1002-1006)를 생성한다.
70 차원 벡터(1402)에서, 8 바이트의 메모리(220)는 64 비트의 이진 데이터(1116)를 저장하는데 소비되고, 4 바이트의 메모리(220)는 우세 주파수(1214)의 데이터를 저장하는데 소비된다. 또한, 4 바이트의 메모리(220)는 시간 정보(1302)의 데이터를 저장하기 위해 소모된다. 따라서 총 32 바이트의 메모리(220)가 70 차원 벡터(1402)를 저장하는데 사용된다. 따라서 30분짜리 동영상을 인코딩하면 281.25KB의 메모리(220)가 소모된다.
도 15는 본 개시의 일 실시예에 따른 전자 장치가 제2 비디오 데이터의 서브 클립을 식별하는 방법을 도시한 도면이다.
도 15에서는 전자 장치(100)가 1.2초 길이의 제2 동영상 데이터(1202)를 저장하고 처리하고, 전자 장치(100)가 메일 애플리케이션에서 0.6 초 길이의 제 1 동영상 데이터(1314)를 다운로드하는 경우를 예로 들어 설명한다.
제 1 비디오 데이터(1814)의 수신에 응답하여, 전자 장치(100)는 0.2 초의 일정한 간격으로 제 2 비디오 데이터(1202)의 6 개의 이미지 프레임(1004A, 1004B, 1004C, 1004D, 1004E, 및 1004F)과 6 개의 오디오 청크(1204A, 1204B, 1204C, 1204D, 1204E, 및 1204F)를 추출하고 이미지 프레임(1004A, 1004B, 1004C, 1004D, 1004E, 및 1004F) 및 오디오 청크(1204A, 1204B, 1204C, 1204D, 1204E, 및 1204F)의 시간 정보(1302, 1304, 1306, 1308, 13010, 및 1312)를 식별한다.
또한, 전자 장치(100)는 이미지 프레임(1004A)의 이진 데이터, 오디오 청크(1204A)의 우세 주파수, 및 이미지 프레임(1004A) 및 오디오 청크(1204A)의 시간 정보(1302)를 결합하여 70 차원 벡터(1402)를 생성한다. 유사하게, 전자 장치(100)는 시간 정보(1304, 1306, 1308, 1310, 및 1312)에 기초하여 나머지 이미지 프레임(1004B, 1004C, 1004D, 1004E, 및 1004F) 및 오디오 청크(1204B, 1204C, 1204D, 1204E, 및 1204F)를 사용하여 70 차원 벡터(1404, 1406, 1408, 1410, 및 1412)를 생성한다.
또한, 전자 장치(100)는 0.2 초의 일정한 간격으로 제2 비디오 데이터(1002)의 3 개의 이미지 프레임(1316A, 1318A, 및 1320A)과 3 개의 오디오 청크(1316B, 1318B, 및 1320B)를 추출하고, 이미지 프레임(1316A, 1318A, 및 1320A) 및 오디오 청크(1316B, 1318B, 및 1320B)의 시간 정보를 식별한다(1316, 1318, 및 1320). 또한, 전자 장치(100)는 이미지 프레임(1316A)의 이진 데이터, 오디오 청크(1316B)의 우세 주파수, 및 이미지 프레임(1316A)과 오디오 청크(1316B)의 시간 정보(1316)를 결합하여 70 차원 벡터(1322)를 생성한다. 마찬가지로, 전자 장치(100)는 시간 정보(1318, 1320)를 기반으로 나머지 이미지 프레임(1318A, 1320A)과 오디오 청크(1318B, 1320B)를 사용하여 70 차원 벡터(1318, 1320)를 생성한다.
또한, 전자 장치(100)는 70 차원 벡터(1322) 각각과 70 차원 벡터(1402, 1404, 1406, 1408, 1410, 및 1412) 사이의 공간적 거리를 결정한다. 전자 장치(100)는 70 차원 벡터(1322)와 70 차원 벡터(1404) 사이의 공간 거리(d1)가 다른 공간 거리보다 작은 값이라고 판단한다. 또한, 전자 장치(100)는 70 차원 벡터(1324) 각각과 70 차원 벡터(1402, 1404, 1406, 1408, 1410, 및 1412) 사이의 공간 거리를 결정한다. 전자 장치(100)는 70 차원 벡터(1324)와 70 차원 벡터(1406) 사이의 공간 거리(d2)가 다른 공간 거리보다 작은 값이라고 판단한다.
또한, 전자 장치(100)는 70 차원 벡터(1326) 각각과 70 차원 벡터(1402, 1404, 1406, 1408, 1410, 및 1412) 사이의 공간적 거리를 결정한다. 전자 장치(100)는 70 차원 벡터(1326)와 70 차원 벡터(1408) 사이의 공간 거리(d3)가 다른 공간 거리보다 작은 값이라고 판단한다. 또한, 전자 장치(100)는 공간 거리의 합, 즉 d1 + d2 + d3이 임계 거리보다 작은 것으로 판단한다. 또한, 전자 장치(100)는 제 2 비디오 데이터(1002)와 제 1 비디오 데이터(1314)의 지속 시간이 동일하지 않음을 확인한다. 총 공간 거리가 임계 거리(즉 0.1) 미만이고 제2 비디오 데이터(1002)와 제1 비디오 데이터(1314)의 지속 시간이 동일하지 않다고 판단하면, 전자 장치(100)는 제1 비디오 데이터(1314)가 제2 비디오 데이터(1002)의 서브 클립이라고 판단한다. 전자 장치(100)는 제1 비디오 데이터(1314)와 제2 비디오 데이터(1002)의 지속 시간이 동일하지 않다고 판단하며, 지속 시간이 짧은 비디오 데이터를 지속 시간이 긴 비디오 데이터의 서브 클립이라고 판단할 수 있다.
도 16a는 본 개시의 일 실시예에 따른 전자 장치가 복제 비디오와 제2 비디오 데이터 사이의 공간 거리를 추정하는 방법을 나타낸 도면이다.
전자 장치(100)가 제 2 동영상 데이터(1002)을 저장하고 있다고 가정해보자. 또한, 전자 장치(100)는 메일 애플리케이션에서 제 2 비디오 데이터(1002)의 중복 영상(1602)을 다운로드한다. 복제 비디오(1602)를 수신한 전자 장치(100)는 제2 비디오 데이터(1002)의 제2 벡터 데이터와 복제 비디오(1602)의 제1 벡터 데이터를 결정한다. 또한, 전자 장치(100)는 1604에 도시된 바와 같이 70 차원 벡터(1604A, 1604B, 1604C, 1604D, 1604E, 1604F, 및 1604G)의 값에 기초하여 제2 벡터 데이터의 70 차원 벡터(1604A, 1604B, 1604C, 1604D, 1604E, 1604F, 및 1604G)를 플로팅한다. 또한, 전자 장치(100)는 1606에 도시된 바와 같이 70 차원 벡터(1606A, 1606B, 1606C, 1606D, 1606E, 1606F, 및 1606G)의 값을 기반으로 제1 벡터 데이터의 70 차원 벡터(1606A, 1606B, 1606C, 1606D, 1606E, 1606F, 및 1606G)를 플로팅한다.
또한, 전자 장치(100)는 1608에 도시된 바와 같이 70 차원 벡터(1604A)와 70 차원 벡터(1606A, 1606B, 1606C, 1606D, 1606E, 1606F, 및 1606G) 각각 사이의 공간 거리를 결정한다. 전자 장치(100)는 1610에 도시된 대로, 70차원 벡터(1604A)가 70 차원 벡터(1606A)에 가장 가까운 벡터라고 결정한다. 마찬가지로, 전자 장치(100)는 70 차원 벡터(1604B, 1604C, 1604D, 1604E, 1604F, 및 1604G) 각각과 70 차원 벡터(1606A, 1606B, 1606C, 1606D, 1606E, 1606F, 및 1606G) 각각 사이의 공간 거리를 결정한다. 전자 장치(100)는 70 차원 벡터(1604B)가 70 차원 벡터(1606B)에 가장 가까운 것임을 식별한다. 전자 장치(100)는 70 차원 벡터(1604C)가 70 차원 벡터(1606C)에 가장 가까운 벡터임을 식별한다. 전자 장치(100)는 70 차원 벡터(1604D)가 70 차원 벡터(1606D)에 가장 가까운 것임을 식별한다. 전자 장치(100)는 70 차원 벡터(1604E)가 70 차원 벡터(1606E)에 가장 가까운 것임을 식별합니다. 전자 장치(100)는 70 차원 벡터(1604F)가 70 차원 벡터(1606F)에 가장 가까운 벡터임을 식별한다. 전자 장치(100)는 70 차원 벡터(1604G)가 70 차원 벡터(1606G)에 가장 가까운 것임을 식별한다. 또한, 전자 장치(100)는 가장 가까운 70 차원 벡터 사이의 공간 거리를 더하여 복제 비디오(1602)와 제2 비디오 데이터(1002) 사이의 공간 거리를 구한다.
1604, 1606, 및 1608의 플롯은 비디오 데이터 1602 및 1002의 벡터 표현을 단순화하여 도시한 것이다. 비디오 데이터 1602 및 1002의 실제 벡터 표현에서 비디오 데이터 1602 및 1002의 70차원 벡터에서 마지막 70 번째 벡터 포인트(즉, 타임 스탬프)를 제외한 69 차원 벡터가 고차원 공간 또는 69 차원 공간에 플로팅된다.
도 16b는 본 개시의 일 실시예에 따른 전자 장치가 서브 클립과 제2 비디오 데이터 사이의 공간 거리를 추정하는 방법을 도시한 도면이다.
전자 장치(100)가 제2 동영상 데이터(1002)을 저장하고 있다고 생각해보자. 또한, 전자 장치(100)는 메일 애플리케이션에서 제 2 비디오 데이터(1002)의 서브 클립(1314)을 다운로드한다. 서브 클립(1314)의 수신에 응답하여, 전자 장치(100)는 제 2 비디오 데이터(1002)의 제 2 벡터 데이터 및 서브 클립(1314)의 제 1 벡터 데이터를 결정한다. 또한, 전자 장치(100)는 1614에 도시 된 바와 같이 70 차원 벡터(1614A, 1614B, 1614C, 1614D, 1614E, 및 1614F)의 값에 기초하여 제 2 벡터 데이터의 70 차원 벡터(1614A, 1614B, 1614C, 1614D, 1614E, 및 1614F)를 플로팅한다. 또한, 전자 장치(100)는 1612에 표시된 대로 70 차원 벡터(1612A, 1612B, 및 1612C)의 값에 기초하여 제1 벡터 데이터의 70 차원 벡터(1612A, 1612B, 및 1612C)를 플로팅한다.
또한, 전자 장치(100)는 1616에 도시된 바와 같이 70 차원 벡터(1612A)와 70 차원 벡터(1614A, 1614B, 1614C, 1614D, 1614E, 및 1614F) 각각 사이의 공간 거리를 결정한다. 1618에 도시된 대로, 전자 장치(100)는 70 차원 벡터(1612A)가 70 차원 벡터(1614B)에 가장 가까운 벡터라고 식별한다. 마찬가지로, 전자 장치(100)는 70 차원 벡터(1612B, 및 1612C) 각각과 70 차원 벡터(1614A, 1614B, 1614C, 1614D, 1614E, 및 1614F) 사이의 거리를 결정한다. 전자 장치(100)는 70 차원 벡터(1612B)가 70 차원 벡터(1614D)에 가장 가까운 것임을 식별한다. 전자 장치(100)는 70 차원 벡터(1612C)가 70 차원 벡터(1614G)에 가장 가까운 것임을 식별한다. 또한, 전자 장치(100)는 서브 클립 비디오(1614)와 제2 비디오 데이터(1002) 사이의 공간 거리를 얻기 위해 모든 가장 가까운 70 차원 벡터 사이의 공간 거리를 더한다.
1614, 1612, 및 1616의 플롯은 비디오 데이터 1314 및 1002의 벡터 표현을 단순화하여 도시한 것이다. 비디오 데이터 1314 및 1002의 실제 벡터 표현에서 비디오 데이터 1314 및 1002의 70차원 벡터에서 마지막 70 번째 벡터 포인트(즉, 타임 스탬프)를 제외한 69 차원 벡터가 고차원 공간 또는 69 차원 공간에 플로팅된다.
도 17a 및 17b는 본 개시의 일 실시예에 따라, 제2 비디오 데이터의 서브 클립의 메타 데이터 파일을 도시한다.
도 17a에서 제2 비디오 데이터의 이름은‘Master_video.mp4’이고 제2 비디오 데이터의 저장 위치는‘/ Internal Storage / Video test /’라고 가정한다. 전자 장치(100)는 제2 비디오 데이터의 제1 서브 클립을 검출한다. 여기서 제1 서브 클립은 제2 비디오 데이터의 일부를 포함한다. 제2 비디오 데이터의 제1 서브 클립 시작 시간은‘61ms’이다. 제1 서브 클립의 길이는‘63ms’이고 제1 서브 클립의 품질은‘480p’입니다. 전자 장치(100)는 도 17a에 도시 된 바와 같이 제1 서브 클립의 메타 데이터 파일을 생성한다.
추가적으로, 전자 장치(100)는 제2 비디오 데이터의 제2 서브 클립을 검출하고, 여기서 제2 서브 클립은 제2 비디오 데이터의 두 개의 상이한 부분을 포함하는 예를 고려해보자. 제2 비디오 데이터에서 제2 서브 클립의 첫 번째 부분의 시작 시간은‘61ms’이다. 제2 서브 클립의 첫 번째 부분의 길이는 '63ms'이고 제2 서브 클립의 첫 번째 부분의 품질은 '420p'이다. 제2 비디오 데이터에서 제2 서브 하위 클립의 두 번째 부분 시작 시간은 '150ms'이다. 제2 서브 클립의 두 번째 부분의 지속 시간은 '150ms'이고 제2 서브 클립의 두 번째 부분의 품질은 '720p'이다. 이와 같이, 전자 장치(100)는 도 17b에 도시된 바와 같이 제2 서브 클립의 메타 데이터 파일을 생성한다.
도 18a, 도 18b, 및 도 18c는 본 개시의 일 실시예에 따른 예시 시나리오에서 메타 데이터 파일을 사용하여 전자 장치가 마스터 비디오로부터 서브 클립을 재생성하는 방법을 도시한 도면이다.
도 18a, 도 18b, 및 도 18c에서 마스터 비디오 데이터(1710)와 마스터 비디오 데이터(1710)의 메타 데이터 파일(1708)이 전자 장치(100)에 저장되어 있다고 가정하자. 마스터 비디오 데이터(1710)의 이름은‘Master_video.mp4’ 마스터 비디오 데이터(1710)의 저장 위치는‘/ Internal Storage / Video test /’이다. 마스터 비디오 데이터(1710)의 길이와 품질은 각각 1.2 초와 480p이다. 사용자(1704)가 서브 클립(1720)의 썸네일(1706) 상에 입력하고 도 18a의 예시(1702)에 도시된 바와 같이 전자 장치의 스크린 상에 디스플레이된 경우를 고려해보자. 전자 장치(100)는 썸네일(1706)에 대한 입력을 수신하면 메모리(220)에서 썸네일(1706)에 링크된 마스터 비디오 데이터(2006)의 메타 데이터 파일(1708)을 가져온다. 또한, 전자 장치(100)는 마스터 비디오 데이터(1710)의 이름을 'Master_video.mp4'로 결정하고, 마스터 비디오 데이터(1710)의 저장 위치는 메타 데이터 파일(1708)에서'/ Internal Storage / Video test / '로 표시된다.
전자 장치(100)는 도 18b에 도시된 바와 같이 메타 데이터 파일(1708)에서 서브 클립(1720)의 시작 시간과 지속 시간을 각각 '10ms'와 '400ms'로 결정한다. 전자 장치(100)는 마스터 비디오 데이터(1710)의 일부를 마스터 비디오 데이터(1710)의 10ms(1712)에서 410ms(1714)로 시작하여 트리밍 된 비디오(1716)를 생성한다. 또한, 전자 장치(100)는 도 18c에 도시 된 바와 같이 메타 데이터 파일(1708)에서 서브 클립에 필요한 품질이 '720p'인 것으로 판단한다. 전자 장치(100)는 서브 클립의 필요한 품질이 트리밍 된 비디오 데이터(1716)의 품질보다 높음을 감지하며, 여기서 마스터 비디오 데이터(1710)의 품질과 트리밍 된 비디오 데이터(1716)의 품질은 동일하게 480p이다. 또한, 전자 장치(100)는 트리밍 된 비디오 데이터(1716)의 품질을 720p로 업 스케일링(1718)하고 마스터 비디오 데이터(1710)의 서브 클립(1720)을 생성한다. 본 개시의 일 실시예에 따르면, 트리밍 된 비디오 데이터에 대한 업 스케일링(즉, 업 샘플링)은 ML 모델을 사용하여 수행되며, 여기서 ML 모델은 훈련 또는 학습을 통해 제공된다.
도 19는 본 개시의 일 실시예에 따라, 복제 비디오를 저장하기위한 클라우드 저장 장치를 도시한다.
각 가족 구성원이 각 전자 장치(100, 100A, 100B, 및 100C)를 사용하는 4 인 가족을 가정해보자. 전자 장치(100, 100A, 100B, 및 100C)는 클라우드 저장 장치(1902)에 연결된다. 예를 들어, 전자 장치(100, 100A, 100B, 및 100C)는 Wi-Fi 다이렉트 기술을 사용하여 클라우드 저장 장치(1902)에 연결된다. 예를 들면, 전자 장치(100, 100A, 100B, 및 100C)는 가족 비디오를 저장한다.
전자 장치(100)는 클라우드 저장 장치(1902)를 통해 다른 전자 장치(100A, 100B, 및 100C)에 저장된 동영상을 분석한다. 또한, 전자 장치(100)는 다른 전자 장치(100A, 100B, 및 100C)와 해당 전자 장치(100)가 동일한 종류의 가족 동영상을 저장하고 있음을 감지한다. 또한, 전자 장치(100)는 전자 장치(100)에서 클라우드 저장 장치(1902)로 가족 비디오를 이동하고 전자 장치(100, 100A, 100B, 및 100C)에서 가족 비디오를 삭제하도록 구성된다.
또한, 전자 장치(100)는 클라우드 저장 장치(1902)에서 가족 동영상의 사본에 액세스 할 수 있는 링크를 생성하고 다른 전자 장치(100A, 100B, 및 100C)와 링크를 공유한다. 전자 장치(100, 100A, 100B, 및 100C)는 링크를 저장하고, 전자 장치(100, 100A, 100B, 및 100C)는 링크를 사용하여 필요할 때마다 클라우드 저장 장치(1902)에서 가족 비디오를 가져올 수 있다.
도 20a는 본 개시의 일 실시예에 따라 전자 장치가 마스터 비디오 데이터의 서브 클립을 표시하는 방법을 도시한 도면이다.
마스터 비디오 데이터(2006)와 마스터 비디오 데이터(2006)의 메타 데이터 파일이 전자 장치(100)에 저장되어 있다고 가정한다. 또한, 사용자(1704)가 2002와 같이 전자 장치(100)의 화면에 표시되는 마스터 비디오 데이터(2006)의 비디오 정보 버튼(2008)을 선택했다고 가정한다.
전자 장치(100)는 비디오 정보 버튼(2008)에 대한 입력을 수신하면 마스터 비디오 데이터(2006)의 마스터 파일을 결정한다. 또한, 전자 장치(100)는 마스터 비디오 데이터(2006)의 서브 클립의 썸네일(2010)을 생성하고, 여기서 썸네일(2010)은 마스터 비디오(2006)의 메타 데이터 파일에 링크된다.
2004에 도시된 바와 같이, 전자 장치(100)는 마스터 비디오 데이터(2006)의 해상도(예: 0.2MP, 640x352), 마스터 비디오 데이터(2006)의 크기(예: 255 kB), 마스터 비디오 데이터(2006)의 저장 위치(예: Storage / Media / VideoVID-20200704-WA0010.mp4), 날짜(예: 2020 년 7 월 4 일 토요일) 및 생성 시간(3:00 pm)과 같은 마스터 비디오 데이터(2006)의 정보 및 썸네일(2010)을 사용자(2008)에게 표시한다. 전자 장치(100)는 썸네일(2010)에 대한 입력 수신에 응답하여 ML 모델을 사용하여 메타 데이터 파일을 기반으로 서브 클립을 생성하도록 구성된다. ML 모델은 교육 또는 학습을 통해 제공된다.
도 20b는 본 개시의 일 실시예에 따라, 예시적인 시나리오에서 애플리케이션에 공유하기 위해 전자 장치가 사용자에게 마스터 비디오의 서브 클립을 제공하는 방법을 도시한 도면이다.
도 20b의 예시에서는, 마스터 비디오 데이터(2006)와 마스터 비디오 데이터(2006)의 메타 데이터 파일이 전자 장치(100)에 저장되어 있다고 가정하자.
2012와 같이 사용자(1704)가 마스터 비디오 데이터(2006)의 공유 버튼(2018)을 입력하면 전자 장치(100)의 화면에 2012과 같이 표시된다. 또한, 전자 장치(100)는 사용자 인터페이스를 표시한다. 전자 장치(100)는 공유 버튼(2006)에 대한 입력을 수신하면 마스터 비디오 데이터(2006)의 메타 데이터 파일을 결정한다. 또한, 전자 장치(100)는 마스터 비디오 데이터(2006)의 서브 클립의 썸네일(2022)을 생성하며, 여기서 썸네일(2022)은 마스터 비디오 데이터(2006)의 메타 데이터 파일과 연결된다.
또한, 전자 장치(100)는 2016과 같이 사용자 인터페이스에서 사용자(2008)에게 썸네일(2022)을 표시한다. 전자 장치(100)는 썸네일(2022)에 대한 입력 수신에 대한 응답으로 ML 모델을 이용하여 메타 데이터 파일을 이용하여 서브 클립을 생성하도록 구성된다. ML 모델은 교육 또는 학습을 통해 제공된다.
본 개시의 실시예들에 따르면, 사용자가 수동으로 복제 비디오를 검색하고 관리할 필요 없이, 복제 비디오를 자동으로 검출하고, 복제 비디오에 대한 정보를 제공할 수 있는 효과가 있다. 또한, 본 개시의 실시예들에 따르면, 사용자에게 복제 비디오에 대한 정보를 제공하고, 사용자가 복제 비디오를 삭제하거나 전송할 수 있는 사용자 인터페이스를 제공할 수 있는 효과가 있다.
도 21은, 다양한 실시예들에 따른, 네트워크 환경(2100) 내의 전자 장치의 블록도이다.
도 21의 전자 장치(2101)는 앞서 설명한 전자 장치(100)에 대응되고, 프로세서(2120)는 앞서 설명한 프로세서(210)에 대응되고, 메모리(2130)는 앞서 설명한 메모리(220)에 대응될 수 있다. 또한, 입력 모듈(2150)은 입력 인터페이스(310)에 대응되고, 통신 모듈(2190)은 통신부(320)에 대응되고, 디스플레이 모듈(2160)은 디스플레이(330)에 대응될 수 있다.
도 21을 참조하면, 네트워크 환경(2100)에서 전자 장치(2101)는 제 1 네트워크(2198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(2102)와 통신하거나, 또는 제 2 네트워크(2199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(2104) 또는 서버(2108) 중 적어도 하나와 통신할 수 있다.
일실시예에 따르면, 전자 장치(2101)는 서버(2108)를 통하여 전자 장치(2104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(2101)는 프로세서(2120), 메모리(2130), 입력 모듈(2150), 음향 출력 모듈(2155), 디스플레이 모듈(2160), 오디오 모듈(2170), 센서 모듈(2176), 인터페이스(2177), 연결 단자(2178), 햅틱 모듈(2179), 카메라 모듈(2180), 전력 관리 모듈(2188), 배터리(2189), 통신 모듈(2190), 가입자 식별 모듈(2196), 또는 안테나 모듈(2197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(2101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(2178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(2176), 카메라 모듈(2180), 또는 안테나 모듈(2197))은 하나의 구성요소(예: 디스플레이 모듈(2160))로 통합될 수 있다.
프로세서(2120)는, 예를 들면, 소프트웨어(예: 프로그램(2140))를 실행하여 프로세서(2120)에 연결된 전자 장치(2101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(2120)는 다른 구성요소(예: 센서 모듈(2176) 또는 통신 모듈(2190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(2132)에 저장하고, 휘발성 메모리(2132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(2134)에 저장할 수 있다.
일실시예에 따르면, 프로세서(2120)는 메인 프로세서(2121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(2123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(2101)가 메인 프로세서(2121) 및 보조 프로세서(2123)를 포함하는 경우, 보조 프로세서(2123)는 메인 프로세서(2121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(2123)는 메인 프로세서(2121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(2123)는, 예를 들면, 메인 프로세서(2121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(2121)를 대신하여, 또는 메인 프로세서(2121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(2121)와 함께, 전자 장치(2101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(2160), 센서 모듈(2176), 또는 통신 모듈(2190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(2123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(2180) 또는 통신 모듈(2190))의 일부로서 구현될 수 있다.
일실시예에 따르면, 보조 프로세서(2123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(2101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(2108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(2130)는, 전자 장치(2101)의 적어도 하나의 구성요소(예: 프로세서(2120) 또는 센서 모듈(2176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(2140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(2130)는, 휘발성 메모리(2132) 또는 비휘발성 메모리(2134)를 포함할 수 있다.
프로그램(2140)은 메모리(2130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(2142), 미들 웨어(2144) 또는 어플리케이션(2146)을 포함할 수 있다.
입력 모듈(2150)은, 전자 장치(2101)의 구성요소(예: 프로세서(2120))에 사용될 명령 또는 데이터를 전자 장치(2101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(2150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(2155)은 음향 신호를 전자 장치(2101)의 외부로 출력할 수 있다. 음향 출력 모듈(2155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(2160)은 전자 장치(2101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(2160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(2160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(2170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(2170)은, 입력 모듈(2150)을 통해 소리를 획득하거나, 음향 출력 모듈(2155), 또는 전자 장치(2101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(2102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(2176)은 전자 장치(2101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(2176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(2177)는 전자 장치(2101)가 외부 전자 장치(예: 전자 장치(2102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(2177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(2178)는, 그를 통해서 전자 장치(2101)가 외부 전자 장치(예: 전자 장치(2102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(2178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(2179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(2179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(2180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(2180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(2188)은 전자 장치(2101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(2188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(2189)는 전자 장치(2101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(2189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(2190)은 전자 장치(2101)와 외부 전자 장치(예: 전자 장치(2102), 전자 장치(2104), 또는 서버(2108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(2190)은 프로세서(2120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(2190)은 무선 통신 모듈(2192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(2194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(2198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(2199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(2104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(2192)은 가입자 식별 모듈(2196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(2198) 또는 제 2 네트워크(2199)와 같은 통신 네트워크 내에서 전자 장치(2101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(2192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(2192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(2192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(2192)은 전자 장치(2101), 외부 전자 장치(예: 전자 장치(2104)) 또는 네트워크 시스템(예: 제 2 네트워크(2199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(2192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(2197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(2197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(2197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(2198) 또는 제 2 네트워크(2199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(2190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(2190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(2197)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(2197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(2199)에 연결된 서버(2108)를 통해서 전자 장치(2101)와 외부의 전자 장치(2104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(2102, 또는 2104) 각각은 전자 장치(2101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(2101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(2102, 2104, 또는 2108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(2101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(2101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(2101)로 전달할 수 있다. 전자 장치(2101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(2101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(2104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(2108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(2104) 또는 서버(2108)는 제 2 네트워크(2199) 내에 포함될 수 있다. 전자 장치(2101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(2101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(2136) 또는 외장 메모리(2138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(2140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(2101))의 프로세서(예: 프로세서(2120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
본 개시의 실시예들에 따르면, 메모리를 최적화하기 위한 장치 및 방법을 제공할 수 있는 효과가 있다. 보다 구체적으로, 본 개시의 실시예들에 따르면, 복제 비디오로 인해 메모리의 저장 공간이 부족해지는 문제점을 해결할 수 있는 효과가 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
Claims (15)
- 제1 비디오 데이터 및 제2 비디오 데이터를 저장하는 메모리; 및적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는,상기 제1 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성하고,상기 제2 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제2 비디오 데이터에 대응하는 제2 벡터 데이터를 생성하고,상기 제1 벡터 데이터 및 상기 제2 벡터 데이터가 정의된 좌표계에서 상기 제1 벡터 데이터와 상기 제2 벡터 데이터 사이의 공간 거리를 산출하고,상기 공간 거리가 제1 조건을 만족한다고 판단된 것에 기초하여, 상기 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단하는, 전자 장치.
- 제1항에 있어서,상기 적어도 하나의 프로세서는,상기 제1 비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대해,영상 데이터로부터 획득된 적어도 하나의 영상 특징 값 및 오디오 데이터로부터 획득된 적어도 하나의 오디오 특징 값을 생성하고,상기 적어도 하나의 영상 특징 값 및 상기 적어도 하나의 오디오 특징 값을 포함하는 제1 프레임 벡터 데이터를 생성하고,상기 제1 비디오 데이터의 상기 복수의 프레임들 각각에 대한 복수의 제1 프레임 벡터 데이터를 포함하는 제1 벡터 데이터를 생성하고,상기 제2 비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대해,영상 데이터로부터 획득된 적어도 하나의 영상 특징 값 및 오디오 데이터로부터 획득된 적어도 하나의 오디오 특징 값을 생성하고,상기 적어도 하나의 영상 특징 값 및 상기 적어도 하나의 오디오 특징 값을 포함하는 제2 프레임 벡터 데이터를 생성하고,상기 제2 비디오 데이터의 상기 복수의 프레임들 각각에 대한 복수의 제2 프레임 벡터 데이터를 포함하는 제2 벡터 데이터를 생성하는, 전자 장치.
- 제2항에 있어서,상기 공간 거리를 산출하는 동작은,상기 제1 벡터 데이터에 포함된 상기 복수의 제1 프레임 벡터 데이터들 각각과, 상기 제2 벡터 데이터에 포함된 상기 복수의 제2 프레임 벡터 데이터들 각각 사이의 상기 공간 거리를 산출하고,상기 공간 거리가 상기 제1 조건을 만족하는 상기 제1 비디오 데이터의 프레임 구간과 상기 제2 비디오 데이터의 프레임 구간이 검출된 것에 기초하여, 상기 제1 비디오 데이터 또는 상기 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단하는, 전자 장치.
- 제3항에 있어서,상기 적어도 하나의 프로세서는,상기 제1 비디오 데이터로부터 샘플링된 상기 복수의 프레임들 각각에 대해, 상기 제1 비디오 데이터에서의 재생 시점을 나타내는 시간 정보 값을 생성하고, 상기 시간 정보 값을 상기 제1 프레임 벡터 데이터에 삽입하고,상기 제2 비디오 데이터로부터 샘플링된 상기 복수의 프레임들 각각에 대해, 상기 제2 비디오 데이터에서의 재생 시점을 나타내는 시간 정보 값을 생성하고, 상기 시간 정보 값을 상기 제2 프레임 벡터 데이터에 삽입하고,상기 공간 거리를 산출하는 동작은, 상기 시간 정보 값을 제외하고 상기 영상 특징 값 및 상기 오디오 특징 값에 기초하여 상기 공간 거리를 산출하는, 전자 장치.
- 제3항에 있어서,상기 적어도 하나의 프로세서는,상기 제1 비디오 데이터의 전체 프레임 구간과 상기 제2 비디오 데이터의 전체 프레임 구간이 서로 대응되는 경우, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터를 복제 비디오로 판단하고,상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나의 비디오 데이터의 프레임 구간 전부가 다른 비디오 데이터의 프레임 구간 일부에 대응되는 경우, 상기 하나의 비디오 데이터를 상기 다른 비디오 데이터의 서브 클립으로 판단하는, 전자 장치.
- 제2항에 있어서,상기 제1 비디오 데이터 및 상기 제2 비디오 데이터에 대해, 상기 영상 특징 값을 생성하는 동작은,각각의 프레임을 그레이 스케일 이미지로 변환하고,상기 그레이 스케일 이미지의 사이즈를 감소시켜 작은 이미지로 변환하고,상기 작은 이미지의 픽셀 값에 기초하여 복수의 이진(binary) 값을 포함하는 상기 영상 특징 값을 생성하는, 전자 장치.
- 제2항에 있어서,상기 제1 비디오 데이터 및 상기 제2 비디오 데이터에 대해, 상기 오디오 특징 값을 생성하는 동작은,비디오 데이터로부터 샘플링된 복수의 프레임들 각각에 대응하고 소정 시간 구간에 대응하는 오디오 샘플을 획득하고,상기 오디오 샘플을 주파수 도메인으로 변환하고,상기 오디오 샘플에서 검출된 주파수의 세기 분포를 획득하고,세기가 큰 소정 개수의 상위 주파수에 대한 정보에 대응하는 상기 오디오 특징 값을 생성하는, 전자 장치.
- 제1항에 있어서,상기 적어도 하나의 프로세서는,상기 제1 비디오 데이터와 제2 비디오 데이터를 복제 비디오 또는 서브 클립으로 판단한 것에 기초하여, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나를 삭제하는, 전자 장치.
- 제1항에 있어서,상기 전자 장치는, 디스플레이 및 입력 인터페이스를 더 포함하고,상기 적어도 하나의 프로세서는, 상기 제1 비디오 데이터와 제2 비디오 데이터를 복제 비디오 또는 서브 클립으로 판단한 것에 기초하여,상기 제1 비디오 데이터와 상기 제2 비디오 데이터가 복제 비디오 또는 서브 클립인지 여부에 대한 정보, 및 상기 제1 비디오 데이터와 상기 제2 비디오 데이터의 속성 정보를 상기 디스플레이를 통해 출력하고,상기 입력 인터페이스를 통해 입력된 입력 신호에 기초하여 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나를 상기 메모리로부터 삭제하는, 전자 장치.
- 제1항에 있어서,상기 적어도 하나의 프로세서는, 복제 비디오 또는 서브 클립으로 판단된 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나가 마스터 비디오 데이터이고 나머지 하나가 서브 클립에 대응하는 경우, 서브 클립에 대응하는 비디오 데이터를 삭제하고, 삭제된 비디오 데이터에 대해, 마스터 비디오 데이터의 접근 경로 정보, 마스터 비디오 데이터에서의 시작 시점, 재생 시간, 해상도, 프레임 레이트, 또는 파일 크기 중 적어도 하나의 정보를 포함하는 메타 데이터를 저장하는, 전자 장치.
- 제10항에 있어서,상기 전자 장치는, 통신부를 더 포함하고,상기 적어도 하나의 프로세서는, 상기 통신부를 통해 입력된 서브 클립 정보를 수신하고, 상기 수신된 서브 클립 정보에 대응되는 메타 데이터를 검색하고, 상기 메타 데이터에 기초하여 마스터 비디오 데이터로부터 서브 클립을 생성하는, 전자 장치.
- 제11항에 있어서,상기 서브 클립을 생성하는 동작은,GAN(Generative Adversarial Network)을 이용하여 상기 마스터 비디오 데이터의 적어도 일부를 업스케일링하는 동작, 또는적어도 하나의 API(Application Programming Interface)를 이용하여 상기 마스터 비디오 데이터의 적어도 일부를 다운스케일링하는 동작 중 적어도 하나를 포함하는, 전자 장치.
- 제1항에 있어서,상기 전자 장치는 통신부를 더 포함하고,상기 제2 비디오 데이터는 상기 통신부를 통해 연결된 적어도 하나의 외부 장치 또는 클라우드 저장 공간에 저장된 비디오 데이터이고,상기 적어도 하나의 프로세서는,상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나가 복제 비디오 또는 서브 클립이라고 판단된 것에 기초하여, 상기 제1 비디오 데이터와 상기 제2 비디오 데이터 중 하나를 삭제하고, 삭제되지 않은 마스터 비디오 데이터의 접근 경로를 삭제된 비디오 데이터를 저장한 장치 또는 클라우드 저장 공간으로 전송하는, 전자 장치.
- 제1 비디오 데이터 및 제2 비디오 데이터를 저장하는 단계;상기 제1 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제1 비디오 데이터에 대응하는 제1 벡터 데이터를 생성하는 단계;상기 제2 비디오 데이터의 영상 데이터 및 오디오 데이터에 기초하여 상기 제2 비디오 데이터에 대응하는 제2 벡터 데이터를 생성하는 단계;상기 제1 벡터 데이터 및 상기 제2 벡터 데이터가 정의된 좌표계에서 상기 제1 벡터 데이터와 상기 제2 벡터 데이터 사이의 공간 거리를 산출하는 단계; 및상기 공간 거리가 제1 조건을 만족한다고 판단된 것에 기초하여, 상기 제1 비디오 데이터와 제2 비디오 데이터 중 하나를 복제 비디오 또는 서브 클립으로 판단하는 단계를 포함하는 전자 장치 제어 방법.
- 제14항의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041053179 | 2020-12-07 | ||
IN202041053179 | 2020-12-07 | ||
KR10-2021-0052526 | 2021-04-22 | ||
KR1020210052526A KR20220080670A (ko) | 2020-12-07 | 2021-04-22 | 복제 비디오를 검출하는 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022124679A1 true WO2022124679A1 (ko) | 2022-06-16 |
Family
ID=81973798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/017862 WO2022124679A1 (ko) | 2020-12-07 | 2021-11-30 | 복제 비디오를 검출하는 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2022124679A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230409635A1 (en) * | 2022-05-27 | 2023-12-21 | Sling TV L.L.C. | Detecting content of interest in streaming media |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060117890A (ko) * | 2003-06-23 | 2006-11-17 | 세이코 엡슨 가부시키가이샤 | 비디오 복제 검출 방법 및 장치 |
KR101648677B1 (ko) * | 2015-09-04 | 2016-08-16 | 세종대학교산학협력단 | 영상의 중복 영역 검출 방법 및 장치 |
KR101821145B1 (ko) * | 2016-09-09 | 2018-01-23 | 주식회사 헤카스 | 영상 라이브 스트리밍 시스템 |
KR101961132B1 (ko) * | 2017-06-08 | 2019-03-25 | 김준희 | 오디오 특징값 추출을 통한 동영상 인코딩 방법 및 장치 |
JP2020188334A (ja) * | 2019-05-13 | 2020-11-19 | パナソニックIpマネジメント株式会社 | 不具合検出装置、移動体、不具合検出方法及びプログラム |
-
2021
- 2021-11-30 WO PCT/KR2021/017862 patent/WO2022124679A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060117890A (ko) * | 2003-06-23 | 2006-11-17 | 세이코 엡슨 가부시키가이샤 | 비디오 복제 검출 방법 및 장치 |
KR101648677B1 (ko) * | 2015-09-04 | 2016-08-16 | 세종대학교산학협력단 | 영상의 중복 영역 검출 방법 및 장치 |
KR101821145B1 (ko) * | 2016-09-09 | 2018-01-23 | 주식회사 헤카스 | 영상 라이브 스트리밍 시스템 |
KR101961132B1 (ko) * | 2017-06-08 | 2019-03-25 | 김준희 | 오디오 특징값 추출을 통한 동영상 인코딩 방법 및 장치 |
JP2020188334A (ja) * | 2019-05-13 | 2020-11-19 | パナソニックIpマネジメント株式会社 | 不具合検出装置、移動体、不具合検出方法及びプログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230409635A1 (en) * | 2022-05-27 | 2023-12-21 | Sling TV L.L.C. | Detecting content of interest in streaming media |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017039321A1 (en) | Foldable electronic device including hidden display and information display method thereof | |
WO2018070716A1 (en) | Electronic device having plurality of fingerprint sensing modes and method for controlling the same | |
WO2018043884A1 (ko) | 카메라를 제어하기 위한 방법 및 그 전자 장치 | |
EP3628121A1 (en) | Electronic device for storing depth information in connection with image depending on properties of depth information obtained using image and control method thereof | |
WO2016114609A1 (en) | Electronic device and method of processing information in electronic device | |
WO2016027983A1 (en) | Method and electronic device for classifying contents | |
WO2018143696A1 (ko) | 복수의 이미지들간의 변화에 기반하여 동영상을 촬영하는 전자 장치 및 그 제어 방법 | |
WO2016137221A1 (en) | Electronic device and image display method thereof | |
WO2016036044A1 (en) | Image data processing method and electronic device supporting the same | |
WO2017007217A1 (en) | Method for displaying web content and electronic device supporting the same | |
WO2021261836A1 (en) | Image detection apparatus and operation method thereof | |
WO2015156640A1 (en) | Method and device for controlling security screen in electronic device | |
WO2016137309A1 (en) | Image processing apparatus and method | |
WO2015182966A1 (en) | Method for controlling display and electronic device | |
WO2021230485A1 (ko) | 영상을 제공하는 방법 및 장치 | |
WO2017034311A1 (ko) | 이미지 처리장치 및 방법 | |
WO2022124679A1 (ko) | 복제 비디오를 검출하는 장치 및 방법 | |
WO2018182375A1 (en) | Electronic device and method for providing colorable content | |
WO2022186443A1 (ko) | 전자 장치에서 이미지의 압축 품질에 기반한 이미지 보정 방법 및 장치 | |
EP3129910A1 (en) | Method and device for controlling security screen in electronic device | |
WO2022119112A1 (ko) | 디스플레이의 번인을 예측 및 보상하는 전자 장치 및 방법 | |
WO2022030824A1 (ko) | 오디오 재생 및 화면 표시 방법 및 그 장치 | |
WO2017007220A1 (ko) | 전자 장치 및 전자 장치에서의 디스플레이 제어 방법 | |
WO2020101401A1 (en) | Electronic device and method for providing multiple services respectively corresponding to multiple external objects included in image | |
WO2020204572A1 (en) | Electronic device and control method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21903725 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21903725 Country of ref document: EP Kind code of ref document: A1 |