WO2023055112A1 - 전자 장치에서 이미지의 압축 품질 예측 방법 및 장치 - Google Patents

전자 장치에서 이미지의 압축 품질 예측 방법 및 장치 Download PDF

Info

Publication number
WO2023055112A1
WO2023055112A1 PCT/KR2022/014632 KR2022014632W WO2023055112A1 WO 2023055112 A1 WO2023055112 A1 WO 2023055112A1 KR 2022014632 W KR2022014632 W KR 2022014632W WO 2023055112 A1 WO2023055112 A1 WO 2023055112A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
quality
compression
processor
electronic device
Prior art date
Application number
PCT/KR2022/014632
Other languages
English (en)
French (fr)
Inventor
김규원
발라사헤브 산단투샤르
양철주
이희국
최인호
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020210153020A external-priority patent/KR20230046913A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to CN202280066109.8A priority Critical patent/CN118057962A/zh
Priority to EP22876884.2A priority patent/EP4365825A1/en
Priority to US17/970,482 priority patent/US20230102895A1/en
Publication of WO2023055112A1 publication Critical patent/WO2023055112A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B9/00Screening or protective devices for wall or similar openings, with or without operating or securing mechanisms; Closures of similar construction
    • E06B9/24Screens or other constructions affording protection against light, especially against sunshine; Similar screens for privacy or appearance; Slat blinds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • Embodiments of the present disclosure disclose a method and apparatus for estimating the compression quality of an image when correcting an image (eg, improving image quality) in an electronic device and processing the image based thereon.
  • Such an electronic device has a display and can display screens related to functions based on the display.
  • the electronic device may display an image stored in the electronic device or an image acquired from an external device (eg, a server and/or other electronic device) through a display.
  • an external device eg, a server and/or other electronic device
  • the resolution and/or physical size (e.g., screen size of a display) of an electronic device increases, high-definition images are required in electronic devices, and the need for image quality improvement accordingly increases. is being raised For example, the importance of image quality for images provided by electronic devices or external devices is also increasing.
  • an image provided by an external device may be compressed and transmitted.
  • an image may be provided after being compressed with a certain compression quality (or compression rate) in order to save storage in a cloud environment and minimize delay in image transmission.
  • the compression method information eg, resolution information
  • compression quality information eg, compression bitrate information
  • the image related to the compression method information and compression quality information of the original video is lost.
  • Quality determination has become difficult, making it difficult to set a picture quality suitable for an original video, and in particular, it has become difficult to implement the maximum performance of a picture quality algorithm in an image display device.
  • Image compression can result in compression artifacts in the image.
  • image compression may introduce at least one artifact (eg, ringing artifacts (or mosquito artifacts), blocking artifacts, blur artifacts, color distortion, and/or texture deviation).
  • artifacts eg, ringing artifacts (or mosquito artifacts), blocking artifacts, blur artifacts, color distortion, and/or texture deviation.
  • more compression artifacts may occur as the compression quality (or compression rate) of an image is higher. Therefore, in an external device (eg, a service provider such as a content server or other external device), when an image is provided to an electronic device, an issue of minimizing artifacts to the user's eyes while compressing the image size as much as possible may be raised.
  • an external device eg, a service provider such as a content server or other external device
  • an image that is optimized for a small screen and has hidden artifacts can be easily exposed by a user as it is enlarged and provided on a large screen.
  • artifacts that were not identified on a small screen may be enlarged on a large screen and identified by the user, and may be perceived as deterioration of image quality by the user.
  • Various embodiments provide a method and apparatus capable of accurately and quickly predicting the compression quality of an image in an operation of determining the compression quality of an image when improving image quality (eg, image correction) in an electronic device.
  • Various embodiments provide a method and apparatus capable of predicting the compression quality of an image based on block-by-block confidence estimation when determining the compression quality of a given image in an electronic device.
  • an outlier which is a region in which compression quality prediction is difficult to predict (eg, a region to be excluded from quality prediction) is removed from the image, and the image is compressed.
  • a method and apparatus capable of accurately and quickly predicting compression quality based on a region enabling quality prediction.
  • Various embodiments provide a method and apparatus for determining the compression quality of a given image and correcting the image based on a denoising model learned to correspond to the compression quality in order to improve image quality in an electronic device. .
  • An electronic device includes a display module, a memory, and a processor operatively connected to the display module and the memory, wherein the processor displays an image through the display module, and displays the image. extracts a plurality of blocks specified in a designated method (eg, a uniform method or a random method), estimates reliability for each block with respect to the plurality of blocks, and based on the reliability estimation, quality prediction is excluded from among the plurality of blocks. A first block corresponding to an outlier and a second block for which quality can be predicted are identified, the first block among the plurality of blocks is excluded from the quality prediction target, and the first block among the plurality of blocks is identified. It is possible to classify the compression quality of the image using the remaining second blocks except for .
  • a designated method eg, a uniform method or a random method
  • An operating method of an electronic device includes an operation of displaying an image through a display module of the electronic device, an operation of extracting a plurality of designated blocks from the image in a designated manner, and each of the plurality of blocks.
  • a computer-readable recording medium in which a program for executing the method in a processor may be included.
  • the electronic device when the electronic device analyzes an image, compression quality analysis is performed on a partial area rather than the entire area of the image using a deep neural network (DNN). According to this, it is possible to accurately and quickly process the compression quality calculation of the image.
  • DNN deep neural network
  • the compression quality of an image is determined based on block-by-block confidence estimation. You can make accurate and fast predictions.
  • an electronic device removes outliers from an image based on block-by-block reliability estimation for a given image, and analyzes compression quality based on a region in the image that enables compression quality prediction. By doing so, the compression quality can be more accurately analyzed.
  • an electronic device may accurately determine the compression quality of a given image and remove compression artifacts (or compression noise) of the image based on a denoising model learned to correspond to the determined compression quality. can Accordingly, the electronic device can provide a user with an image close to the original quality by increasing the quality of the compressed image.
  • FIG. 1 is a block diagram of an electronic device 101 within a network environment 100 according to various embodiments.
  • FIG. 2 is a diagram schematically illustrating a configuration of an electronic device according to an exemplary embodiment.
  • FIG. 3 is a flowchart illustrating examples of learning, classification, and removal operations for image correction in an electronic device according to an exemplary embodiment.
  • FIG. 4 is a diagram illustrating an example of image correction in an electronic device according to an exemplary embodiment.
  • FIG. 5 is a flowchart illustrating a method of operating an electronic device according to an exemplary embodiment.
  • FIG. 6 is a diagram illustrating an example of an operation learned in an electronic device according to an embodiment.
  • FIG. 7 is a flowchart illustrating an operation method of predicting compression quality in an electronic device according to an embodiment.
  • FIG. 8 is a diagram illustrating an example of an inference operation for predicting quality in an electronic device according to an exemplary embodiment.
  • FIG. 9 is a flowchart illustrating an operation method of removing artifacts in an electronic device according to an exemplary embodiment.
  • FIG. 10 is a flowchart illustrating a method of compressing an image in an electronic device according to an exemplary embodiment.
  • FIG. 11 is a flowchart illustrating an operation method of providing information on image correction in an electronic device according to an exemplary embodiment.
  • FIG. 12 is a diagram illustrating a user interface for providing information on image correction in an electronic device according to an exemplary embodiment and an operation example thereof.
  • FIG. 1 is a block diagram of an electronic device 101 within a network environment 100 according to various embodiments.
  • an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or through a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • a first network 198 eg, a short-range wireless communication network
  • a second network 199 e.g., a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or the antenna module 197 may be included.
  • at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added.
  • some of these components eg, sensor module 176, camera module 180, or antenna module 197) are integrated into a single component (eg, display module 160). It can be.
  • the processor 120 for example, executes software (eg, the program 140) to cause at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
  • software eg, the program 140
  • processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
  • the processor 120 may include a main processor 121 (eg, a central processing unit (CPU) or an application processor (AP)) or a secondary processor (which may be operated independently of or together with the main processor 121). 123) (e.g., graphic processing unit (GPU), neural processing unit (NPU), image signal processor (ISP), sensor hub processor, or communication processor (CP, communication processor)).
  • main processor 121 e.g., a central processing unit (CPU) or an application processor (AP)
  • a secondary processor which may be operated independently of or together with the main processor 121). 123) (e.g., graphic processing unit (GPU), neural processing unit (NPU), image signal processor (ISP), sensor hub processor, or communication processor (CP, communication processor)).
  • the main processor 121 e.g., a central processing unit (CPU) or an application processor (AP)
  • secondary processor which may be operated independently of or together with the main processor 121).
  • the main processor 121 e.g., graphic processing unit (GPU), neural
  • the secondary processor 123 may, for example, take the place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 may At least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or At least some of the functions or states related to the communication module 190) may be controlled.
  • the auxiliary processor 123 eg, an image signal processor or a communication processor
  • the auxiliary processor 123 may be implemented as part of other functionally related components (eg, the camera module 180 or the communication module 190). there is.
  • the auxiliary processor 123 eg, a neural network processing device
  • AI models can be created through machine learning.
  • Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 108).
  • 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 foregoing, but is not limited to the foregoing examples.
  • the artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101 .
  • the data may include, for example, input data or output data for software (eg, program 140) and commands related thereto.
  • the memory 130 may include volatile memory 132 or non-volatile memory 134 .
  • the program 140 may be stored as software in the memory 130, and may include, for example, an operating system (OS) 142, middleware 144, or an application 146. there is.
  • OS operating system
  • middleware middleware
  • application application
  • the input module 150 may receive a command or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside of the electronic device 101 (eg, a user).
  • the input module 150 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 155 may output sound signals to the outside of the electronic device 101 .
  • the sound output module 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 160 may visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display module 160 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 170 may convert sound into an electrical signal or vice versa. According to an embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
  • the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 101 to an external electronic device (eg, the electronic device 102).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, a secure digital (SD) card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD secure digital
  • connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (eg, the electronic device 102).
  • the connection terminal 178 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 179 may convert electrical signals into mechanical stimuli (eg, vibration or motion) or electrical stimuli that a user may perceive through tactile or kinesthetic senses.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101 .
  • the power management module 188 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101 .
  • the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). Establishment and communication through the established communication channel may be supported.
  • the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 190 may be a wireless communication module 192 (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 194 (eg, a : a local area network (LAN) communication module or a power line communication module).
  • a corresponding communication module is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, a legacy communication module).
  • the wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
  • IMSI International Mobile Subscriber Identifier
  • the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology).
  • NR access technologies include high-speed transmission of high-capacity data (eMBB, mobile broadband), minimization of terminal power and access of multiple terminals (mMTC, massive machine type communications), or high-reliability and low-latency (URLLC, ultra-reliable and low-latency communications) can be supported.
  • the wireless communication module 192 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 192 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO, full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna may be supported.
  • the wireless communication module 192 may support various requirements defined for the electronic device 101, an external electronic device (eg, the electronic device 104), or a network system (eg, the second network 199).
  • the wireless communication module 192 may be used to realize 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).
  • peak data rate eg, 20 Gbps or more
  • loss coverage eg, 164 dB or less
  • U-plane latency for realizing URLLC.
  • DL downlink
  • UL uplink each of 0.5 ms or less, or round trip 1 ms or less
  • the antenna module 197 may transmit or receive signals or power to the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 197 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 198 or the second network 199 is selected from the plurality of antennas by the communication module 190, for example. can be chosen A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC) may be additionally formed as a part of the antenna module 197 in addition to the radiator.
  • RFIC radio frequency integrated circuit
  • the antenna module 197 may form a mmWave antenna module.
  • the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a bottom surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) 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)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 .
  • Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 .
  • all or part of operations executed in the electronic device 101 may be executed in one or more external electronic devices among the external electronic devices 102 , 104 , or 108 .
  • the electronic device 101 when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead of executing the function or service by itself.
  • one or more external electronic devices may be requested to perform the function or at least part of the service.
  • One or more external electronic devices receiving 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 deliver the execution result to the electronic device 101 .
  • the electronic device 101 may provide the result as at least part of a response to the request as it is or additionally processed.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an internet of things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 104 or server 108 may be included in the second network 199 .
  • the electronic device 101 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • Electronic devices may be devices of various types.
  • 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.
  • 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 camera e.g., a camera
  • a wearable device e.g., a smart bracelet
  • first, second, or first or secondary may simply be used to distinguish that component from other corresponding components, and may refer to that component in other respects (eg, importance or order) is not limited.
  • a (eg, first) component is said to be “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively.”
  • the certain component may 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, logical blocks, parts, or circuits.
  • a module may be an integrally constructed component or a minimal unit of components or a portion thereof 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
  • a storage medium eg, internal memory 136 or external memory 138
  • a machine eg, electronic device 101
  • a processor eg, the processor 120
  • a device eg, the electronic device 101
  • 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.
  • the storage medium is a tangible device and does not contain a signal (e.g. electromagnetic wave), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
  • a signal e.g. electromagnetic wave
  • the method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store TM ) or on two user devices ( It can be distributed (eg downloaded or uploaded) online, directly between smart phones.
  • a device-readable storage medium eg compact disc read only memory (CD-ROM)
  • an application store eg Play Store TM
  • It can be distributed (eg downloaded or uploaded) online, directly between smart phones.
  • at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.
  • each component (eg, module or program) of the above-described components may include a single object or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. there is.
  • one or more components or operations among the aforementioned corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg modules or programs
  • the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by a corresponding component of the plurality of components prior to the integration. .
  • the operations performed by a module, program or other component are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations are executed in a different order. may be added, omitted, or one or more other actions may be added.
  • FIG. 2 is a diagram schematically illustrating a configuration of an electronic device according to an exemplary embodiment.
  • an electronic device 101 may include a communication module 190, a display module 160, a memory 130, and a processor 120.
  • processor 120 includes image processing module 210, sample patch extraction module 220, compression quality classification module 230, denoising model 260, model selection module 270, and/or At least one of the score calculation module 280 may be included.
  • the communication module 190 may support legacy networks (eg, 3G networks and/or 4G networks), 5G networks, out of band (OOB), and/or next-generation communication technologies (eg, new radio (NR) technologies).
  • the communication module 190 may correspond to the wireless communication module 192 as illustrated in FIG. 1 .
  • the electronic device 101 communicates with an external device (eg, the server 108 of FIG. 1 and/or other electronic devices 102 and 104) through a network using the communication module 190. can be done
  • the electronic device 101 may receive an image and/or content including the image (eg, a web page) from an external device through the communication module 190 .
  • the display module 160 can visually provide various information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 includes a touch sensing circuit (or touch sensor) (not shown), a pressure sensor capable of measuring the strength of a touch, and/or a touch panel (eg, detecting a magnetic stylus pen). : digitizer) may be included.
  • the display module 160 is a touch sensing circuit, a pressure sensor, and/or a signal for a specific position of the display module 160 based on the touch panel (eg, voltage, light intensity, resistance, electromagnetic signal, and/or Alternatively, a touch input and/or a hovering input (or proximity input) may be sensed by measuring a change in charge amount.
  • the display module 160 may include a liquid crystal display (LCD), an organic light emitted diode (OLED), or an active matrix organic light emitted diode (AMOLED). According to some embodiments, the display module 160 may be configured as a flexible display.
  • LCD liquid crystal display
  • OLED organic light emitted diode
  • AMOLED active matrix organic light emitted diode
  • the display module 160 may visually provide an image and/or content including the image under the control of the processor 120 . According to an embodiment, the display module 160 may provide various information (eg, a user interface) related to image processing (eg, image correction) corresponding to at least one displayed image.
  • various information eg, a user interface
  • image processing e.g, image correction
  • the memory 130 may store various data used by the electronic device 101 .
  • the data may include, for example, input data or output data for an application (eg, the program 140 of FIG. 1 ) and a command related thereto.
  • the memory 130 may store instructions that, when executed, cause the processor 120 to operate.
  • the application may be stored as software (eg, the program 140 of FIG. 1 ) on the memory 130 and may be executable by the processor 120 .
  • the application may be various applications (eg, gallery application, image editing application) capable of providing images in the electronic device 101 .
  • the memory 130 performs a function (or operation) of processing block-by-block confidence estimation-based compression quality prediction and image correction for each compression quality, which may be performed by the processor 120. ) and at least one component (or module) related to it.
  • the memory 130 includes an image processing module 210 of the processor 120, a sample patch extraction module 220, a compression quality classification module 230, a noise removal model 260, and a model selection module 270.
  • the score calculation module 280 may be included in software form (or instruction form).
  • the processor 120 may control related operations for processing block-by-block confidence estimation-based compression quality prediction and image correction for each compression quality in the electronic device 101 .
  • the processor 120 determines the compression quality related to the image stored in the memory 130 of the electronic device 101 and/or the image received from the external device based on block-by-block reliability estimation, and determines Based on the compression quality obtained, it is possible to control the actions associated with processing the image correction.
  • the processor 120 may predict the compression quality of the image based on the block-by-block reliability estimation when determining (or analyzing) the compression quality of the image to improve image quality (eg, image correction). .
  • the processor 120 removes outliers from the image based on block-by-block reliability estimation for a given image, and enables compression quality prediction in a region in the image, eg, of the image. By analyzing the compression quality based on a partial region rather than the entire region, the classification speed of the compression quality may be improved.
  • the outlier is a specific block in which reliability estimation cannot be properly performed (or compression quality prediction is difficult or impossible), and may indicate, for example, a target region excluded from quality prediction.
  • the processor 120 may control the display module 160 to display a screen including at least one image through the display module 160 .
  • the processor 120 may predict (or classify) the compression quality (eg, compression rate) of a given image when displaying the image or while displaying the image.
  • the processor 120 may use various denoising models 260 (or denoising models, denoisers) learned (or modeled) for various compression qualities stored in the memory 130. Alternatively, among artifact reducers, a denoising model 260 trained to correspond to the predicted compression quality for a given image may be selected.
  • the processor 120 processes image correction (eg, removing compression artifacts from a compressed image to restore it to an original quality image) based on the selected denoising model 260, and converts the corrected image to a specified value. It can be processed according to the action.
  • the processor 120 may operate to display the corrected image through the display module 160, store it in the memory 130, or transmit the corrected image to the outside (eg, a server or other electronic device).
  • the processor 120 may include at least one component (or module) for processing block-by-block reliability estimation-based compression quality prediction and image correction for each compression quality.
  • the processor 120 may include an image processing module 210, a sample patch extraction module 220, a compression quality classification module 230, a denoising model 260, a model selection module 270, and/or a score.
  • At least one of the calculation modules 280 may be included.
  • the image processing module 210, the sample patch extraction module 220, the compression quality classification module 230, the denoising model 260, the model selection module 270, and/or the score calculation module may be included in processor 120 as hardware modules (eg, circuitry) and/or may be implemented as software including one or more instructions executable by processor 120. For example, operations performed by the processor 120 may be executed by instructions stored in the memory 130 and causing the processor 120 to operate when executed.
  • the image processing module 210 may include an image encoder and an image decoder. According to an embodiment, the image processing module 210 may process encoding of an image through an image encoder. For example, the image processing module 210 converts an image into a file of a specified compression rate (or compression level) and a specified format (eg, mpeg, jpeg, gif, and/or png) through image encoding using an image encoder. can be compressed with According to an embodiment, the image processing module 210 may process decoding of an image compressed by a designated encoding through an image decoder. For example, the image processing module 210 may restore (or restore) an image by using an image decoder to decompress an image file compressed by encoding.
  • a specified compression rate or compression level
  • a specified format eg, mpeg, jpeg, gif, and/or png
  • the sample patch extraction module 220 may represent a module that extracts a predetermined number (eg, M) of patches (eg, 16x16 patches) in order to classify the compression quality of an image.
  • M e.g, about 256
  • the processor ( 120) e.g, the compression quality classification module 230
  • performs compression quality classification e.g, quality prediction and reliability estimation
  • integration e.g, quality prediction and reliability estimation
  • integration integration on at least some of the extracted 256 16x16 patches to obtain a final quality (Q) for the image. It can operate to determine.
  • the sample patch extraction module 220 may equally or randomly extract a plurality of patches according to a designated method (eg, a uniform method or a random method).
  • the processor 120 may perform analysis through a partial region (eg, a patch unit) rather than the entire region in a given image.
  • the processor 120 may perform analysis based on a designated region of interest (ROI) rather than the entire region in the image.
  • ROI region of interest
  • the sample patch extraction module 220 may extract a plurality of regions (eg, uniform extraction or random extraction) from a given image in units of patches.
  • a patch may mean a minimum image unit capable of understanding the compression quality of an image.
  • a compression method for compressing an image divides and compresses an image into 8x8 block units
  • a patch is a 10x10 block of a larger area that can include not only the 8x8 block but also the surrounding relationships of the 8x8 block as a patch.
  • an area of 16x16 size may be defined as the size of the patch by adding about 4 pixels of the adjacent block so that the patch includes the center of the adjacent block of the 8x8 block.
  • the compression quality classification module 230 (eg, compression quality classifier) divides the compression quality into a certain level (eg, N level) (eg, 13 level, 16 level, 50 level, or 100 level). module can be displayed.
  • N level eg, 13 level, 16 level, 50 level, or 100 level.
  • the compression quality classification module 230 may classify N compression qualities corresponding to N compression qualities (or compression rates or compression levels) related to an image.
  • the compression quality classification module 230 may be set to various levels (eg, 13 levels, 16 levels, 50 levels, or 100 levels) based on services or applications.
  • the compression quality classification module 230 may set the first application (eg, image editing application) to level X (eg, level 16), and the second application (eg, gallery application) to level Y (eg, level 16). : 100 steps).
  • first application eg, image editing application
  • second application eg, gallery application
  • the compression quality classification module 230 may prepare N quality compressed images by setting various quality options of an image encoder to N classes.
  • a library application implementing JPEG format encoding may provide encoding quality, for example, 100 compression steps from 1 to 100
  • an image editing application may provide encoding quality, for example, 13 compression stages from 1 to 13 can be provided.
  • the input of the compression quality classification module 230 may be, for example, an image having a size of 16x16 patches.
  • the compression quality classification operation of the compression quality classification module 230 will be described with reference to the following drawings.
  • the compression quality classification module 230 may predict the compression quality of a given image based on the reliability estimation of the patch extracted by the sample patch extraction module 220 .
  • the compression quality classification module 230 may include a reliability estimation module 240 (eg, a confidence estimator) operable to estimate the confidence in a given image on a block-by-block basis (eg, patch-by-patch) and predict the compression quality in the given image. It may include a quality prediction module 250 (eg, quality predictor) operable to do so.
  • the reliability estimation module 240 may estimate reliability of an input patch (eg, a patch extracted by the sample patch extraction module 220). According to an embodiment, the reliability estimation module 240 may estimate the reliability based on a specific region of interest (ROI) rather than the entire region in the image. For example, the reliability estimation module 240 may estimate the reliability by designating a range to be estimated in the image.
  • ROI region of interest
  • the reliability estimation module 240 may perform reliability estimation on a plurality of (eg, designated M) patches extracted from an image.
  • the reliability estimation module 240 estimates reliability of the extracted patches based on various reliability estimation methods, and selects at least one patch (eg, K patches) corresponding to an outlier having a reliability equal to or less than a specified threshold. ) can be estimated.
  • the reliability estimation module 240 continuously measures the quality prediction performance of the input patch at the same time, so that the quality prediction module 250 can determine the specific type of input patch. It can be trained together with the quality prediction module 250 so that a phenomenon in which quality measurement performance is degraded can be statistically grasped.
  • the quality prediction module 250 may measure the quality of an input patch.
  • the quality prediction module 250 includes a patch (eg, a designated M number) corresponding to an outlier estimated based on the reliability estimation module 240 among a plurality of (eg, designated M) patches extracted from an image. : K patches) are excluded from the quality prediction target, and the compression quality can be determined using the rest of the input patches except for the outlier patches (eg, a region enabling compression quality prediction).
  • the quality prediction module 250 excludes at least one patch (eg, K patches) corresponding to an outlier whose reliability is equal to or less than a specified threshold value from an average operation of compression quality for each patch, and determines the reliability level.
  • the compression quality e.g. calculating the average of the compression quality for each remaining patch
  • the remaining patches e.g. (M-K) patches
  • the compression quality e.g. the final quality for the image (e.g. Q)
  • the quality prediction module 250 can more accurately and quickly predict the quality of an image by removing outliers from the image and integrating only prediction results obtained from image patches enabling meaningful compression quality prediction. According to an embodiment, if the quality prediction module 250 determines that all of the extracted plural (eg, designated M) patches are outliers, the quality prediction module 250 determines a plurality of (eg, designated M) patches from other regions. In a way of re-extracting , it may operate to predict the quality adaptively.
  • the denoising model 260 may include a denoising model, a denoiser, or an artifact remover.
  • the denoising model 260 may represent, for example, a model to be used as a post-processing filter of the image processing module 210 (eg, an image decoder).
  • the denoising model 260 may include a plurality (eg, n, where n is a natural number of 2 or more) for each of various compression qualities (or compression rates or compression levels) related to an image.
  • the noise removal model 260 is learned by using various compressed images corresponding to various compression qualities in the electronic device 101, and a plurality of noise removal models 260 respectively corresponding to various compression qualities are learned. , may be stored in the memory 130.
  • the model selection module 270 may select an optimal denoising model 260 to apply to image correction (eg, compression artifact removal based on compression quality) of a given image based on at least one specified criterion. there is. According to an embodiment, when selecting the denoising model 260, the model selection module 270 may select the denoising model 260 learned to correspond to the compression quality based on reliability estimation.
  • image correction eg, compression artifact removal based on compression quality
  • the model selection module 270 may, in addition to the compression quality, the user intention (or preference or taste), the type of service or application providing the image, and/or the actual A noise removal model 260 for applying (or setting) another correction strength may be selected in consideration of at least one of the physical sizes (eg, screen size of the display module 160) of the display module 160 on which an image is to be displayed. there is.
  • the score calculation module 280 may generate one output (eg, a number) by calculating a mean or a median value of the inference results of the input patch based on reliability. According to an embodiment, the score calculation module 280 may learn to output quality information (eg, a number) about the compression quality (eg, final quality (Q)) of an image. According to an embodiment, the score calculation module 280 may learn quality information about compression quality based on a predefined score calculation criterion or range (eg, average or median value).
  • Various embodiments described in the present disclosure may be implemented in a recording medium readable by a computer or similar device using software, hardware, or a combination thereof.
  • the operations described in various embodiments are ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gates) arrays), processors, controllers, micro-controllers, microprocessors, and/or electrical units for performing other functions.
  • ASICs Application Specific Integrated Circuits
  • DSPs Digital Signal Processors
  • DSPDs Digital Signal Processing Devices
  • PLDs Programmable Logic Devices
  • FPGAs Field Programmable Gates
  • a computer-readable program recording a program for executing an operation of processing an image correction based on a selected denoising model, and an operation of processing the corrected image according to a specified operation (eg, a display, storage, and/or transmission operation).
  • a recording medium may be included.
  • the electronic device 101 includes a display module (eg, the display module 160 of FIG. 1 or 2), a memory (eg, the memory 130 of FIG. 1 or 2), and the A display module and a processor (eg, the processor 120 of FIG. 1 or 2) operatively connected to the memory, wherein the processor displays an image through the display module and a plurality of blocks specified in the image.
  • a display module eg, the display module 160 of FIG. 1 or 2
  • a memory eg, the memory 130 of FIG. 1 or 2
  • the A display module and a processor eg, the processor 120 of FIG. 1 or 2 operatively connected to the memory, wherein the processor displays an image through the display module and a plurality of blocks specified in the image.
  • a possible second block is identified, the first block among the plurality of blocks is excluded from the quality prediction target, and the remaining second blocks other than the first block among the plurality of blocks are used to determine the quality of the image. It may operate to classify compression quality.
  • the image may be a compressed image compressed with a specified compression quality.
  • the processor estimates at least one first block corresponding to an outlier of a predetermined threshold value or less based on block-by-block reliability estimation for the plurality of extracted blocks, and the at least one Excluding one first block from the average operation for compression quality classification, performing an average operation for compression quality classification based on at least one second block exceeding a specified threshold value, and displaying the result of the average operation in the image. It can operate to classify by compression quality for
  • the processor selects a denoising model learned to correspond to the classified compression quality of the image, processes image quality improvement for the image based on the selected denoising model, and It can act to process images based on specified actions.
  • the processor stores in the memory a plurality of denoising models pre-learned for various compression qualities, and denoises learned corresponding to classification of the compression quality of the image among the plurality of denoising models. You can act to select a model.
  • the processor may operate to process the improved image through at least one designated operation of displaying through the display module, storing in the memory, or transmitting the image to the outside.
  • the processor receives a user input requesting information related to image quality of the image, and based on receiving the user input, the processor displays correction information for the image based on the image. It can operate to control the display module 160 to do so.
  • the processor identifies at least one block having a compression quality corresponding to the representative quality of the image, based on receiving the user input, and a designated notification object based on the identified block. and provide detailed information about image correction.
  • the processor identifies a high-reliability block from the image, measures quality and reliability of the identified block, compresses quality for each block according to the measured quality and reliability, and represents a quality of the image. Comparing, clustering blocks having a compression quality corresponding to the representative quality among the compression qualities of each block and having a relatively high reliability compared to other blocks, and corresponding to the blocks clustered in the image Provide the specified notification object based on the part, and control the display module to display detailed information including a description of a total score and classification for the image correction together with the notification object.
  • the processor may operate to remove artifacts generated during the first compression of the image, and then to perform the second compression during the second compression of the image.
  • the processor receives a user input for compressing the image, and based on receiving the user input, a noise removal model corresponding to a first compression quality upon first compression of the image. Based on, removing artifacts generated during the first compression, determining a second compression quality for the second compression based on the first compression quality related to the first compression, and based on the second compression quality and perform a second compression on the image.
  • the processor may operate to determine the second compression quality corresponding to the first compression quality.
  • the processor may include a quality estimation module and a reliability estimation module for classifying the compression quality, and operate to learn the reliability estimation module together while learning the quality estimation module.
  • the processor may operate to classify the compression quality of an image using a learning model or trained model learned using an artificial intelligence algorithm.
  • Operations performed by the electronic device 101 described below are performed by the processor 120 including various processing circuitry and/or executable program elements of the electronic device 101. can be executed According to an embodiment, operations performed by the electronic device 101 may be executed by instructions stored in the memory 130 and causing the processor 120 to operate when executed.
  • FIG. 3 is a flowchart illustrating examples of learning, classification, and removal operations for image correction in an electronic device according to an exemplary embodiment.
  • the processor 120 of the electronic device 101 may generate a data set composed of a plurality of classes of compression quality.
  • the processor 120 may generate a data set consisting of N classes of compression quality.
  • a data set of images may be required.
  • a data set of images may be prepared using, for example, the image processing module 210 of FIG. 2 (eg, an image encoder).
  • the processor 120 may set the quality options of the image encoder in various ways to N classes to prepare N types of compressed images.
  • a library application implementing JPEG format encoding may provide encoding quality, for example, 100 compression steps from 1 to 100
  • an image editing application may provide encoding quality, for example, For example, 13 compression stages from 1 to 13 can be provided.
  • the processor 120 learns, for example, the compression quality classification module 230 (eg, the reliability estimation module 240 and the quality prediction module 250) of FIG. 2 based on the data set. can do.
  • the processor 120 takes images compressed with various qualities as “input X”, and the quality used when generating each compressed image is “ground truth output Y” (eg, label or sign). ) can be set.
  • the processor 120 while the quality prediction module 250 is being trained, the processor 120 simultaneously measures quality prediction performance for an input patch so that the quality prediction module 250 measures the quality of a specific type of input patch.
  • the reliability estimation module 240 which can statistically grasp the phenomenon of deterioration in performance, can also operate to learn together. For example, the processor 120 may not only learn how to classify the corresponding compression quality in the training data, but also learn how to estimate the corresponding reliability. Based on this, the processor 120 may apply reliability estimation suitable for the corresponding compression quality when a specific image is given.
  • the processor 120 may learn, for example, the noise removal model 260 (eg, an artifact reducer) of FIG. 2 .
  • the processor 120 may set an image compressed with various qualities as “input X” and an original image as “ground truth output Y”.
  • the denoising model 260 may indicate an image whose label is not an integer.
  • the processor 120 may classify the compression quality class.
  • the processor 120 may perform learning to classify compression quality classes.
  • the processor 120 may use various machine learning methods as a method for classifying compression quality classes.
  • the compressed quality classification module 230 eg, the quality prediction module 250
  • the processor 120 may be implemented with a convolutional neural network (CNN).
  • CNN convolutional neural network
  • the processor 120 trains the CNN model with data decoded by the image processing module 210 (eg, an image decoder) of various compressed image qualities on the data set generated in operation 301, and the electronic device 101 Given an arbitrary image on the image, it is possible to predict the compression quality of the image.
  • a machine learning method is not limited to a CNN model, and various machine learning methods that can be used for classification and improvement of compression quality may be used.
  • a machine learning method a deep belief network (DBN) based on an unsupervised learning method and / or a deep autoencoder (deep autoencoder), two-dimensional data processing such as images
  • DNN deep belief network
  • CNN convolutional neural network
  • RNN recurrent neural network
  • the processor 120 may infer the compression quality of an image.
  • the processor 120 when the electronic device 101 classifies the compression quality, the processor 120 does not check all patches of the image, for example, in FIG. 2 Using the sample patch extraction module 220, for example, about 256 16x16 patches are extracted (e.g. uniform or random extraction), and the extrusion quality (e.g. final quality (Q)) can be predicted.
  • the sample patch extraction module 220 for example, about 256 16x16 patches are extracted (e.g. uniform or random extraction), and the extrusion quality (e.g. final quality (Q)) can be predicted.
  • the processor 120 when predicting the final quality Q based on the extracted regions, estimates the reliability of the extracted regions, and identifies an outlier whose reliability (or score) is less than or equal to a specified threshold.
  • the final quality (Q) can be predicted by excluding it from the average operation of the compression quality.
  • the processor 120 may rapidly improve classification speed by analyzing a part of an image rather than the whole. According to an embodiment, a compression quality classification operation will be described with reference to the following drawings.
  • the processor 120 may remove artifacts based on the application of the denoising model learned to correspond to the compression quality. According to an embodiment, the processor 120 may remove artifacts by applying a denoising strength learned to correspond to a corresponding compression quality to a given image. According to an embodiment, the processor 120 may perform learning to determine a denoising model corresponding to compression quality. According to one embodiment, the processor 120 may generate, for example, N denoising models 260, such as the number of categories of compression quality.
  • the processor 120 may generate the denoising models 260 by quantizing them to a number smaller than N, for example.
  • the processor 120 may approximate, for example, about 8 qualities out of about 100 compression qualities (eg, compression qualities 20, 30, 40, 50, 60, 70, 80, and 90). .
  • the processor 120 may generate a learning model so that the compressed image generated through approximation can be corrected in units of 8x8 patches with the original image.
  • the processor 120 may set the input size to a patch having a size of 16x16 pixels so that at least some areas of neighboring blocks are also considered. For example, the processor 120 may prevent sudden changes in the texture and/or color of a specific block with neighboring blocks.
  • the processor 120 determines an appropriate denoising model 260 based on the quality predicted through the compression quality classification module 230 (eg, the final quality Q), and the determined denoising model. (260) may be applied to image correction to remove compression artifacts resulting from image lossy compression.
  • FIG. 4 is a diagram illustrating an example of image correction in an electronic device according to an exemplary embodiment.
  • screen ⁇ 401> may indicate an example in which a compressed image 410 (eg, a given image) before image correction according to compression quality is provided.
  • screen ⁇ 403> may indicate an example in which a corrected image 420 (eg, a restored image) after image correction according to compression quality is provided.
  • the example screen ⁇ 401> indicates that the compression quality of a given image (eg, the compressed image 410 compressed with a specified compression quality) is, for example, a JPEG quality level (quality level). ) (e.g., about 80).
  • a JPEG quality level quality level (quality level).
  • example screen ⁇ 403> classifies (or predicts) that the electronic device 101 is a JPEG quality level (eg, about 80) in a given image 410 and .
  • most of the images in the electronic device 101 may be compressed with a certain compression quality (or compression rate) and provided.
  • a certain compression quality or compression rate
  • such a compressed image may generate unique artifacts (eg, element 430 in the example screen ⁇ 401>) depending on the compression quality.
  • an image may be subjected to various sampling (e.g. chroma subsampling), block size, and/or approximation (e.g. discrete cosine transform (DCT)) to reduce compression quality (e.g. bit rate).
  • DCT discrete cosine transform
  • coefficient quantization can be used, and can be further compressed with more various compression quality control methods (eg, bit rate control method) according to the compression codec.
  • the electronic device 101 learns (or trains) patterns of unique artifacts (or noises) appearing in corresponding compression quality in training data (eg, images for each compression quality) composed of various compression qualities. and a plurality of models (eg, denoising models) to remove them may be learned through a deep neural network.
  • the deep neural network may represent an artificial neural network (ANN) including multiple hidden layers between an input layer and an output layer.
  • ANN artificial neural network
  • a deep neural network can learn various nonlinear relationships including multiple hidden layers, and is used as a core model for deep learning.
  • the deep neural network may include a deep trust neural network (DBN), a deep autoencoder, a convolutional neural network (CNN), and/or a recurrent neural network (RNN) according to an algorithm.
  • the electronic device 101 receives a pre-learned (or trained) model (eg, a noise cancellation model) for patterns of artifacts (or noises) from another electronic device or obtains (eg, a noise cancellation model) from a server. can be downloaded).
  • a pre-learned (or trained) model eg, a noise cancellation model
  • a noise cancellation model for patterns of artifacts (or noises) from another electronic device or obtains (eg, a noise cancellation model) from a server. can be downloaded).
  • a denoising model optimized for each compression quality may be matched, and an artifact (or noise) (eg, element 430) may be removed by applying a denoising model corresponding to the compression quality.
  • the electronic device 101 can classify artifacts according to compression quality through learning data, automatically analyze patterns of artifacts, and remove even unique artifacts corresponding to the corresponding compression quality. .
  • the electronic device 101 determines the compression quality of a given image (eg, the compressed image 410 of the example screen ⁇ 401>), and learns according to the artifact (or noise) of the compression quality.
  • An image from which artifacts are removed eg, the restored image 420 of the example screen ⁇ 403>
  • FIG. 5 is a flowchart illustrating a method of operating an electronic device according to an exemplary embodiment.
  • the processor 120 of the electronic device 101 may display a screen including an image.
  • the processor 120 may visually provide an image and/or content including the image through the display module 160 .
  • the processor 120 displays a screen including an image stored in the memory 130 of the electronic device 101 and/or an image received from an external device based on a user input, the display module 160 ) can be controlled.
  • the image may represent a compressed image compressed with a specified compression quality (or compression rate or compression level).
  • the processor 120 may determine (or classify) the compression quality (or compression rate or compression level) of the given image.
  • the processor 120 determines the compression quality, not the entire area of the given image, but a partial area, for example, a patch (eg, 8x8 pixel, 16x16 pixel, or 64x64 pixel unit).
  • compression quality can be predicted for each patch by extracting designated M (eg, about 256) patches in a designated manner (eg, uniformly or randomly).
  • image compression may be performed by dividing an image into small blocks and collectively applying a compression mechanism (eg, chroma subsampling, DCT, quantization) of the same compression quality level to all blocks.
  • a compression mechanism eg, chroma subsampling, DCT, quantization
  • a compressed image may be subjected to various sampling (eg, chroma subsampling), block size, and/or approximation (eg, discrete cosine transformation (eg, Various compression mechanisms such as DCT, discrete cosine transform, and coefficient approximation (coefficient quantization) may be used, and further various compression quality control methods (eg, bitrate control method) may be used depending on the compression codec.
  • sampling eg, chroma subsampling
  • block size eg, and/or approximation
  • approximation eg, discrete cosine transformation
  • coefficient approximation coefficient quantization
  • bitrate control method eg, bitrate control method
  • the processor 120 may predict the compression quality of the image based on reliability estimation in block units (eg, patch units). For example, the processor 120 may remove outliers from the image based on block-by-block reliability estimation for a given image, and analyze the compression quality based on a region in the image that enables compression quality prediction. can For example, the processor 120 excludes the patch corresponding to the outlier from the quality prediction target through reliability estimation in the input patch, and excludes the patch of the outlier among the input patches (e.g., enables compression quality prediction). area) can be used to determine the compression quality.
  • block units eg, patch units
  • the processor 120 may remove outliers from the image based on block-by-block reliability estimation for a given image, and analyze the compression quality based on a region in the image that enables compression quality prediction.
  • the processor 120 excludes the patch corresponding to the outlier from the quality prediction target through reliability estimation in the input patch, and excludes the patch of the outlier among the input patches (e.g., enables compression quality
  • the processor 120 when determining the compression quality, extracts a plurality of (eg, designated M) patches from a given image in a designated method (eg, a uniform method or a random method), and extracts the patch.
  • a designated method eg, a uniform method or a random method
  • Reliability estimation of patched patches can be performed.
  • the processor 120 estimates the reliability of the extracted patches based on various reliability estimation methods, and for at least one patch (eg, K patches) corresponding to an outlier having a reliability equal to or less than a specified threshold. , can be excluded from the average calculation of compression quality for each patch.
  • the processor 120 analyzes the compression quality (eg, calculates an average of the compression quality for each remaining patch) based on the remaining patches (eg, (M-K) patches) whose reliability exceeds a specified threshold, and determines the compression quality (eg, (M-K) patches).
  • a final quality (Q) for the image can be classified (or determined). For example, the processor 120 may more accurately and quickly predict the quality of an image by removing outliers from the image and integrating only prediction results obtained from image patches enabling meaningful compression quality prediction.
  • the processor 120 may determine the compression quality through classification learning and prediction of the compressed image in patch units (eg, 8x8 patch units, 16x16 patch units, or 64x64 patch units). For example, since image compression may be performed in patch units, classification may be possible in 8x8 patch units, 16x16 patch units, or at most 64x64 (eg, HEVC) patch units. Through this, the processor 120 can prevent calculation errors due to overall image characteristics by concentrating on a corresponding patch, which is a unit in which compression occurs. In addition, since the size of the input image of the operation for determining the compression quality is small, the processor 120 unnecessarily widens the receptive field and improves accuracy by using a conventional pooling layer. You can avoid actions that could cause you to fall.
  • patch units eg, 8x8 patch units, 16x16 patch units, or 64x64 patch units.
  • the processor 120 may perform compression regardless of compression, such as an area (eg, an outlier) that does not clearly reflect the compression rate due to the nature of the image (eg, a black area and/or an area of low frequency components in an image). Since an area having similar characteristics) may occur, an outlier may be removed from an image when determining compression quality in consideration of this. For example, when calculating the average value of each compression quality (or score) of the extracted regions, the processor 120 analyzes the reliability of the extracted regions, and calculates the average value for outliers whose reliability is less than or equal to a specified threshold. can be excluded from
  • the processor 120 may select a model (eg, a denoising model or a denoising model) learned to correspond to the compression quality. For example, the processor 120 may predict the compression quality in advance and use the noise removal model 260 learned with the corresponding compression quality in the electronic device 101 .
  • a model eg, a denoising model or a denoising model
  • the processor 120 selects a denoising model 260 learned to correspond to the compression quality of an image from among a plurality of denoising models 260 pre-learned for each compression quality in the memory 130.
  • the processor 120 may select a first noise removal model corresponding to the classification of the first compression quality when classifying the given image as the first compression quality.
  • the processor 120 may select a second noise removal model corresponding to the classification of the second compression quality.
  • the processor 120 when classifying as the third compression quality, the processor 120 may select a third noise removal model corresponding to the classification of the third compression quality.
  • the processor 120 determines the user's intention (or preference or taste), the type of service or application providing the image, and/or the actual image to be displayed.
  • a noise cancellation model may be selected by further considering at least one of the physical sizes of the display module 160 (eg, the screen size of the display module 160).
  • the processor 120 may perform image processing based on the selected model.
  • the processor 120 may process image correction using a noise removal model selected from among a plurality of noise removal models 260 based on compression quality of an image.
  • the processor 120 removes compression artifacts (or noise) from the given image according to the correction strength corresponding to the selected denoising model, and restores the given image (eg, the compressed image) to an original image before compression. can do.
  • the processor 120 may process the specified operation. According to an embodiment, the processor 120 may control the display module 160 to display the corrected image. According to an embodiment, the processor 120 may control the display module 160 to display a corrected state based on a noise removal model corresponding to a given image. According to some embodiments, the designated operation of operation 509 may include an operation of transmitting the corrected image to the outside or storing it in the memory 130 of the electronic device 101 .
  • FIG. 6 is a diagram illustrating an example of an operation learned in an electronic device according to an embodiment.
  • FIG. 6 may show an example of a pre-learning operation performed by the electronic device 101 .
  • the pre-learning operation performed by the electronic device 101 as illustrated in FIG. 6 is performed, for example, in another environment (eg, a developer workstation and/or a cloud environment), and the electronic device It can also be downloaded from (101).
  • a model eg, a classification model
  • a pre-trained (or trained) model is acquired (eg, received or downloaded) by another electronic device or server. )You may.
  • the processor 120 of the electronic device 101 may generate a data set consisting of N qualities.
  • the processor 120 subsamples channels of images in N steps, transforms and /or can perform coefficients quantization.
  • processor 120 may learn a model based on the compressed image.
  • the processor 120 may perform training (eg, block 630) on the compressed image.
  • learning in this disclosure represents learning that allows the target denoising model to analyze the artifacts of the transformed patch to determine the compression quality and the reliability of the compression quality, as illustrated in block 630.
  • processor 120 may generate one classification model according to learning (block 630). According to an embodiment, the processor 120 may use a classification model generated based on learning for an operation of predicting the compression quality of FIG. 7 to be described later.
  • FIG. 7 is a flowchart illustrating an operation method of predicting compression quality in an electronic device according to an embodiment.
  • FIG. 7 may show an example of an operation of classifying compression quality performed by the electronic device 101 .
  • the processor 120 of the electronic device 101 may input an image.
  • the processor 120 may input an image of compressed quality to be improved as an image of a learning target.
  • the processor 120 may extract about M patches at equal intervals from the image. According to an embodiment, the processor 120 may equally or randomly extract, for example, about 256 16x16 patches from an input image.
  • the processor 120 analyzes the artifact with a classification model and classifies it into one compression quality among N stages (eg, quality information (eg, number) according to the characteristics of the artifact). According to an embodiment, the processor 120 analyzes the corresponding artifact based on the classification model generated according to learning (for example, block 630) in FIG. 6 and classifies it into one compression quality among N levels of compression quality. can do
  • the processor 120 may remove about K outliers using the confidence level.
  • the processor 120 may estimate the reliability in units of patches and remove outliers from the image based on the reliability estimation in units of patches. For example, through reliability estimation, the processor 120 may exclude a patch corresponding to an outlier having a reliability equal to or less than a specified threshold value from a quality prediction target. An example of this is illustrated in FIG. 8 .
  • the processor 120 removes at least one patch (eg, K patches) corresponding to an outlier from the patches (eg, M patches) extracted from the image, and removes the remaining patches (eg, Y patches).
  • the representative quality (or final quality (Q)) of an image can be predicted (or derived) by averaging the results (eg, compression quality for each Y number of patches) output from (eg, M - K) patches.
  • the processor 120 may use the predicted representative quality of the image as an input of the compression quality of the image in a compression artifact removal and/or image correction operation described below.
  • FIG. 8 is a diagram illustrating an example of an inference operation for predicting quality in an electronic device according to an exemplary embodiment.
  • FIG. 8 may show an example of an operation of predicting reliability-based compression quality in a patch unit in the electronic device 101 .
  • the electronic device 101 may perform learning to estimate the reliability of each patch.
  • the electronic device 101 may use various machine learning methods as a method for estimating reliability in units of patches, and for example, reliability estimation may be implemented with a convolutional neural network (CNN).
  • CNN convolutional neural network
  • each input patch 810 may include a compressed coding block.
  • patches 810 may be uniformly sampled, for example, via sample patch extraction module 220 . The sampled patches can be input to CNN 820 for batch prediction, and through CNN 820, for example, 9 pairs of quality results (eg, quality 830) and confidence (confidence) 840) can be calculated.
  • the electronic device 101 may exclude patches (eg, two low-confidence patches) corresponding to outliers whose reliability is less than or equal to a specified threshold (eg, about 80%) from 9 pairs of quality results.
  • a specified threshold eg, about 80%
  • the electronic device 101 selects remaining patches (eg, patches corresponding to outliers are removed) whose reliability exceeds a specified threshold value (eg, about 80%) in the 9 pairs of quality results.
  • a specified threshold value eg, about 80%
  • the quality results of 7 patches with high reliability can be averaged.
  • the electronic device 101 averages the results 850 output from 7 patches, and converts the average value (eg, '85') to the representative quality of the image 800 (or It is possible to predict (or derive) the final quality (Q).
  • a machine learning method is not limited to a CNN model, and various machine learning methods that can be used for classification of compression quality may be used.
  • various methods such as a deep belief network (DBN), a deep autoencoder, a convolutional neural network (CNN), and/or a recurrent neural network (RNN) It may include machine learning methods.
  • DNN deep belief network
  • CNN convolutional neural network
  • RNN recurrent neural network
  • the electronic device 101 when the electronic device 101 performs compression quality prediction (or compression quality class classification) for an image, the electronic device 101 does not check all patches of the image, for example, a sample Using the patch extraction module 220, for example, about 256 16x16 patches are extracted, and from the extracted 256 patches, patches corresponding to outliers are removed through reliability estimation, and compression quality can be predicted.
  • the final quality (Q) for an image can be accurately and quickly predicted by classifying and integrating significant patches that For example, when predicting the final quality Q based on the extracted regions, the electronic device 101 estimates the reliability of the extracted regions, and excludes regions whose reliability is less than or equal to a specified threshold value in calculating the average value.
  • the final quality (Q) can be predicted.
  • the quality result of the CNN 820 is determined by the quality 830 (eg, the prediction result by learning of the quality prediction module 250) and the reliability ( 840) (eg, a prediction result by learning of the reliability estimation module 240).
  • the electronic device 101 may predict the compression quality based on the reliability of the quality prediction of each patch based on the difference between the quality prediction result and the ground truth result.
  • the quality prediction module 250 while the quality prediction module 250 is being trained, quality prediction performance for an input patch is continuously measured, and the quality prediction module 250 measures the quality of a specific type of input patch.
  • the reliability estimation module 240 which can statistically grasp the phenomenon of poor performance, can also be learned.
  • images e.g. raw images
  • images can be compressed to some degree to provide ground truth labels of compressed quality, but not true confidence (or scores) for predicting quality. does not exist.
  • an example of substantially estimating and providing reliability of a predicted quality level for each candidate patch (eg, an input patch) according to the present disclosure will be described.
  • Equation 1 For example, if a trained CNN model G( ⁇ ) is given the compression quality of an input patch x, e.g. ) can be accurately predicted, the actual reliability ci of a given input patch xi can be approximated as shown in Equation 1 below.
  • Equation 1> denotes the predicted quality of a given ith input patch xi, qi denotes true quality, and m denotes the maximum quality level.
  • m can be set to 100 for libjpeg-turbo and 51 for FFmpeg.
  • another reliability estimation module 240 may be trained using the CNN model G( ⁇ ) (eg, the quality prediction module 250) and ⁇ Equation 1>.
  • Equation 2> may represent the estimated confidence for the input patch x.
  • H( ⁇ ) eg, reliability estimation module 240
  • H( ⁇ ) is for each candidate patch (eg, input patch).
  • a median number z having the smallest average deviation from the reliability measurement value for can be estimated.
  • the conventional method using two networks of G( ⁇ ) and H( ⁇ ) may be inefficient in that it requires two learning stages and two inferences. Therefore, in the present disclosure, since the two tasks of quality prediction and reliability estimation can share many common features, as shown in Equation 4 below, the quality 830 and reliability in one network A network F( ⁇ ) can be implemented to output all (840).
  • F(x) 1 and F(x) 2 may represent first and second output units of F(x), respectively.
  • a loss function such as Equation 5 below may be adopted.
  • F ⁇ may represent a confidence-aware CNN having a parameter set ⁇ .
  • reliability estimation classifies inputs into two categories: reliable patches (e.g., outlier regions in an image) and unreliable patches (e.g., regions in an image where meaningful compression quality predictions are possible).
  • quality prediction may require more accurate quality output.
  • the parameter ⁇ which reflects the relative importance of reliability rather than quality, is experimentally set to 0.5, and the result can be expressed as follows. According to another embodiment, it can be confirmed experimentally that similar results are obtained even when the parameter ⁇ is smaller than 0.5, such as 0.25.
  • ⁇ Equation 1> to ⁇ Equation 5> represent a background for classifying the output unit of the CNN 820 into quality 830 and reliability 840, and a loss function for learning. May indicate an example of how to design, and this example is only to help the understanding of the present disclosure, but does not limit the embodiments of the present disclosure.
  • ⁇ Table 1> and ⁇ Table 2> below may show examples of experimental results using the quality prediction method according to the present disclosure.
  • ⁇ Table 1> shows an example of experimental results when using the JPEG codec
  • ⁇ Table 2> shows an example when using the H.264 codec.
  • the quality prediction method according to the present disclosure eg, the fifth method in the examples of ⁇ Table 1> and ⁇ Table 2>
  • another existing method eg, the first method
  • the first method may represent the MobileNetV2 algorithm
  • the second method may represent the EfficientNet algorithm
  • the third method may represent the block-based Naive algorithm
  • the fourth method may represent the block-based Sobel. algorithm
  • the fifth method may represent an algorithm of the quality prediction method (eg, named 'Q1Net') of the present disclosure.
  • ⁇ Table 1> and ⁇ Table 2> show the performance comparison for the data set, the mean absolute error (MAE), standard deviation of errors (SDE), and latency of each method. ), and/or model size to represent a summary of the main experimental results with a total of 224x224 or 256x256 input pixels.
  • the fifth method achieves good prediction performance with an MAE of about 0.43 and high reliability with an SDE of about 0.42 with a processing time of about 10 ms for JPEG. It can be shown to achieve good prediction performance with a MAE of about 0.48 dml with a processing time of about 18 ms for H.264 and high reliability with an SDE of about 0.51.
  • the fifth method has a relatively superior performance compared to the existing methods 1 to 4, and can derive more accurate and faster quality prediction results. can
  • Method Method 1 Method 2
  • Method 3 Method 4
  • the CNN input can be reduced to the size of a compressed coding block.
  • the input size used for conventional image classification is about 224x224, but the size of a coding block used for compression can be much smaller than that.
  • the input size of the CNN can be effectively reduced, and since the CNN size is reduced, the number of parameters of the CNN can also be reduced.
  • the number of parameters of the machine learning model is reduced, the amount of calculation is also reduced, so when based on a single block, algorithm latency is much lower than that of conventional image classification networks during inference. can have
  • the compression quality can be effectively and accurately measured even in an old electronic device or a low-cost electronic device having relatively weak computing power by variably accepting the number of blocks (or patches) to be inferred.
  • an image such as super resolution
  • it is used before improving the quality of the image to prevent amplification of artifacts (or noise) in advance, or it can be applied to a browser to prevent an external server (eg : There is an effect of quickly identifying the need for improvement and the intensity of improvement of high-compression and low-resolution images received from the Internet).
  • artifact removal for improving the quality of a compressed image may be in a 'trade-off' relationship with detail preservation. For example, if the artifact removal is perfect, the detail of the image may disappear, and if the detail is maintained, the artifact may not be removed. Therefore, as artifacts are removed from the image, details may disappear and a blurrier image may be obtained. Therefore, the performance of selecting a noise removal model for artifact removal is improved using the image quality value (eg, the final quality (Q) predicted based on block-by-block reliability estimation) inferred according to the quality prediction method according to the present disclosure. can be improved (e.g. by being able to select the correct denoising model corresponding to the correct compression quality) and consequently improve the overall quality of the image.
  • the image quality value eg, the final quality (Q) predicted based on block-by-block reliability estimation
  • FIG. 9 is a flowchart illustrating an operation method of removing artifacts in an electronic device according to an exemplary embodiment.
  • FIG. 9 may show an example of an operation of removing an artifact based on a noise removal model learned to correspond to the compression quality classified by the electronic device 101 .
  • the processor 120 of the electronic device 101 may input an image.
  • the processor 120 may input an image having a compression quality to be improved (eg, an image of a learning target of FIG. 7 ) as an image of a compression artifact removal target.
  • the processor 120 may input the predicted representative quality. According to an embodiment, the processor 120 may input the representative quality predicted in FIG. 7 as the compression quality of an image to be de-artifacted.
  • the processor 120 may select one of the N denoising models based on the representative quality.
  • the processor 120 may select a denoising model (eg, translation model i) learned to correspond to the representative quality of a given image from among N transformation models pre-trained for various compression qualities.
  • the processor 120 may select a first denoising model corresponding to the classification of the first compression quality when classifying the given image as the first compression quality, and classifying it as the second compression quality.
  • a second noise removal model corresponding to the classification of the second compression quality may be selected, and in the case of classification into the third compression quality, a third noise removal model corresponding to the classification of the third compression quality may be selected.
  • the processor 120 may perform image processing based on the selected noise removal model.
  • the processor 120 may process image correction using a denoising model selected from among a plurality of denoising models based on compression quality (eg, representative quality) of an image.
  • the processor 120 compresses the given image (eg, the compressed image) by removing compression artifacts (or noise) from the given image (eg, the compressed image) according to the correction strength corresponding to the selected denoising model. It can be restored to the previous original image.
  • the processor 120 may restore the compressed image to an original quality image (eg, an original image).
  • FIG. 10 is a flowchart illustrating a method of compressing an image in an electronic device according to an exemplary embodiment.
  • FIG. 10 may show an example of an operation of re-compressing (or encoding) (eg, secondary compression) a compressed image.
  • the processor 120 of the electronic device 101 may provide an image.
  • the processor 120 may display a compressed image corresponding to a user selection or an image list including at least one compressed image.
  • the processor 120 may receive a user input for image compression.
  • the processor 120 may detect a user input causing compression to be performed on the provided image (or at least one image selected by the user).
  • the user input may be input based on a save command of an image, a menu-based compression command, and/or a designated object-based selection for compression.
  • a user can edit an image (e.g. crop, rotate, adjust brightness, adjust resolution, adjust color, adjust sharpness, resize, change format) through a designated application (e.g. gallery application or image editing application). and/or effect setting), and may want to save the edited image.
  • a designated application e.g. gallery application or image editing application. and/or effect setting
  • the processor 120 may remove artifacts in the first compression of the image.
  • the processor 120 may receive a user input related to image compression and identify a first compression quality related to previous compression (eg, first compression) of the image based on the user input.
  • the processor 120 may remove an artifact (eg, an artifact of a high frequency component region in an image) generated during the first compression, based on a noise removal model corresponding to the first compression quality.
  • the processor 120 may determine a second compression quality based on the first compression quality associated with the first compression. According to an embodiment, the processor 120 may determine a quality parameter for secondary encoding using the quality prediction module 250. For example, when a compressed image is edited and then re-encoded (eg, second compression), the processor 120 may re-determine the compression quality (or compression level) of the image.
  • the processor 120 may set the maximum value of the second compression quality to a compression quality similar to that of the first compression quality. For example, when the first compression quality of the image is first compressed to about 70, the second compression quality may not be set to about 80 or higher.
  • the higher the number of compression quality the better picture quality can be derived.
  • the processor 120 encodes the image with a compression quality similar to that of the original (eg, first compression quality) (eg, a slightly higher compression quality than the first compression quality) during the second compression of the image. , you can reduce the file size of the image, and reduce the archive size.
  • first compression quality e.g, a slightly higher compression quality than the first compression quality
  • the processor 120 may perform a second compression on the image based on the second compression quality. For example, a high-frequency component may occur in an image due to a compression artifact generated in the first compression, and another artifact may occur in the process of compressing the corresponding high-frequency component. Accordingly, the processor 120 may perform the second compression after removing compression artifacts in the first compression before the second compression.
  • the processor 120 may store an image.
  • the processor 120 may store an image generated according to the second compression in the memory 130 .
  • the processor 120 may replace the original image and save it, or may store the original image as a separate image.
  • FIG. 11 is a flowchart illustrating an operation method of providing information on image correction in an electronic device according to an exemplary embodiment.
  • FIG. 12 is a diagram illustrating a user interface for providing information on image correction in an electronic device according to an exemplary embodiment and an operation example thereof.
  • FIGS. 11 and 12 show correction information (eg, compression quality score (or level), correction area notification object, and/or correction information for an image provided from a designated application (eg, a gallery application or an image editing application)). Detailed information) may be shown as an example of an operation of providing.
  • correction information eg, compression quality score (or level), correction area notification object, and/or correction information for an image provided from a designated application (eg, a gallery application or an image editing application).
  • Detailed information may be shown as an example of an operation of providing.
  • the processor 120 of the electronic device 101 may display a screen including an image.
  • the processor 120 may execute a designated application and visually provide an image through the display module 160 based on the designated application.
  • the processor 120 may control the display module 160 to display a screen including an image 1200 selected by a user through a gallery application.
  • the image 1200 may represent a compressed image compressed with a specified compression quality (or compression rate or compression level).
  • the processor 120 may receive a user input requesting information related to image quality.
  • the processor 120 may detect user input instructing it to provide correction information (eg, compression quality score (or level), correction area notification object, and/or correction details) for the provided image.
  • correction information eg, compression quality score (or level), correction area notification object, and/or correction details
  • the user input may be input based on a menu-based request command and/or selection based on a designated object for providing correction information.
  • the processor 120 uses a function execution object 1210 designated to execute a function (eg, an AI remaster function) providing correction information for an image in a gallery application. input can be detected.
  • a function eg, an AI remaster function
  • the function of providing correction information for an image may refer to a function of automatically correcting an image with AI (eg, improving image quality) and providing correction information for the automatic correction. there is.
  • the electronic device 101 provides a designated area for executing the remaster function through a designated area (eg, the upper right area of the screen, the upper left area of the screen, or the lower center area of the screen) of the screen on which the image 1200 is displayed.
  • a function execution object 1210 may be provided.
  • the processor 120 may execute a remaster function based on a user input using the function execution object 1210 and provide a user interface as illustrated in FIG. 12 .
  • the processor 120 may detect a user input selecting an option specified to execute a function of providing correction information on an image through menu entry in the gallery application.
  • the processor 120 may identify a patch having high confidence in a classification operation.
  • the processor 120 may identify a patch (eg, a location or region of a patch) extracted from a given image in an operation of classifying compression quality (eg, a block-by-block reliability-based compression quality prediction operation).
  • classifying compression quality eg, a block-by-block reliability-based compression quality prediction operation.
  • the processor 120 may additionally extract a specified number of samples around the identified patch.
  • the processor 120 may perform quality (eg, quality 830 of FIG. 8 ) and reliability (eg, reliability 840 of FIG. 8 ) around the extracted patch (eg, the location or region of the patch). ))), a specified number of samples (e.g., about A) may be additionally extracted.
  • processor 120 may determine quality and reliability. According to an embodiment, the processor 120 may measure quality and reliability based on the extracted patch and samples additionally extracted from the vicinity of the extracted patch.
  • the processor 120 may cluster patches corresponding to the representative quality (eg, final quality (Q)) of the image.
  • the processor 120 compares the compression quality according to the quality and reliability measured in operation 1109 with the representative quality of the image, and has the compression quality corresponding to the representative quality of the image among the extracted patches, Compared to other patches, patches having relatively high reliability can be clustered.
  • the processor 120 may provide a designated notification object based on a clustered part (or region) in the image.
  • the processor 120 may provide a dotted line and/or an overlay mask of a specified color through the clustered parts in the image.
  • the processor 120 provides a notification object 1230 (eg, a yellow dotted line object) for a clustered portion in a given image 1200, and provides a notification object 1230 for an image correction portion.
  • Information can be provided to users.
  • the notification object 1230 may represent an object for intuitively notifying a user of a clustered part (eg, a corrected area) in a given image.
  • the processor 120 may provide detailed information about image correction (eg, information related to compression quality of an image (or quality notification information)).
  • the processor 120 may provide detailed information on image correction (eg, an overall score and a description of why the image is classified as the current quality) along with an image-based notification object.
  • image correction eg, an overall score and a description of why the image is classified as the current quality
  • the processor 120 provides detailed information 1250 on the correction result of the image 1200 (eg, 'The compression quality of this picture is 50. Accuracy 99 through the yellow part) It was judged as %. As a result of the judgment, compression noise was removed before image enlargement.') can be provided.
  • a user may be guided as to why the image 1200 was classified as a corresponding image quality while displaying an overall score (eg, '50') for the compression quality of the image 1200 .
  • the processor 120 may include correction information (eg, compression quality score (or level), correction area notification object, and / or correction detailed information) may be provided in various ways according to various specified conditions.
  • the processor 120 determines the type of the designated application and/or the depth of the menu, and based on the type of the designated application and/or the depth of the menu, the processor 120 provides correction target information and corresponding correction information. may be provided differently.
  • the processor 120 determines which target information (eg, resolution, brightness, color, and/or sharpness) is to be provided in detail according to the type of the designated application and/or the depth of the menu, Correction information may be provided in a different manner according to the determination result.
  • the depth of the menu corresponds to the minimum first depth (eg, about 1 depth) , correct all target information (eg, resolution, brightness, color tone, and/or sharpness), and provide correction information (eg, correction information based on all target information) for the correction result.
  • the processor 120 may provide correction information (eg, compression quality score, correction area) for how much resolution, brightness, color tone, and/or sharpness have been corrected in each part corresponding to the correction information in the image. notification object and/or correction detailed information) may be provided.
  • the second depth of the menu is greater than the first depth (eg, about 2 to about 3 depth), and corrects for some of the target information (eg, brightness, color, sharpness) specified among all target information (eg, resolution, brightness, color tone, and/or sharpness), and determines the result of the correction.
  • Correction information eg, correction information based on some target information
  • the processor 120 may provide correction information (e.g., compression quality score, correction area notification object) for how much brightness, color, and/or sharpness are corrected in each part corresponding to the correction information in the image. and/or calibration details).
  • the processor 120 when the processor 120 executes a remaster function for a selected image in a third application (eg, a web page application), the third depth of the menu is greater than the second depth (eg, about 3 to about 4 depth), corrects for the specified minimum target information (eg, brightness, color) among all target information (eg, resolution, brightness, color tone, and / or sharpness), and provides information about the correction result.
  • Correction information eg, correction information based on minimum target information
  • the processor 120 may provide correction information (e.g., compression quality score, correction area notification object and/or calibration details).
  • the processor 120 when the processor 120 provides detailed information 1250 on image correction, as illustrated in FIG. 12, the display position of the image 1200 is changed and a separate image is displayed based on screen division.
  • Detailed information 1250 may be provided through a window.
  • the processor 120 may provide detailed information 1250 through a pop-up window or overlay on the image 1200 while the display position of the image 1200 is fixed.
  • AI when the electronic device 101 provides an image through a designated application (eg, a gallery application), AI automatically analyzes the image and, for example, automatically corrects a low-quality image to a high-quality image. may be provided (e.g., remaster function provided).
  • the electronic device 101 may provide detailed information (or explanation) on why the image has been improved. Through this, the user can provide a more detailed guide on why the quality of the image has been evaluated (or image quality has been improved). For example, the electronic device 101 determines whether a given image has a specific degradation due to which part of the image by explicitly displaying the score of the corresponding image and providing a score of a part with high reliability. can be provided to the user.
  • the electronic device 101 intuitively provides a notification object 1230 on an image, a score of the image, and detailed information 1250 including notification information on determination of degradation in the image, so that the user can improve the image. We can provide a more detailed understanding of why.
  • An operating method performed by the electronic device 101 includes an operation of displaying an image through a display module of the electronic device, an operation of extracting a plurality of designated blocks from the image in a designated manner, and the plurality of blocks. Operation of estimating reliability for each block for the number of blocks, based on the reliability estimation, identifying a first block corresponding to an outlier to be excluded from quality prediction and a second block capable of quality prediction among the plurality of blocks.
  • An operation of excluding the first block among the plurality of blocks from a quality prediction target, and an operation of classifying the compression quality of the image using second blocks other than the first block among the plurality of blocks. can include
  • the operation of classifying the compression quality may include selecting at least one first block corresponding to an outlier equal to or less than a specified threshold based on block-by-block reliability estimation for the plurality of extracted blocks. estimating, excluding the at least one first block from an average operation for compression quality classification, performing an average operation for compression quality classification based on at least one second block exceeding a specified threshold; An operation of classifying a result of the averaging operation into a compression quality for the image may be included.
  • the operation method performed by the electronic device includes an operation of storing a plurality of denoising models previously learned for each of various compression qualities, and corresponding to a compression quality classified for the image among the plurality of denoising models.
  • the operating method performed by the electronic device may include receiving a user input requesting information related to image quality of the image, and correction information for the image based on receiving the user input. It may include an operation of controlling the display module to display based on the image.
  • the operation method performed by the electronic device includes an operation of identifying at least one block having a compression quality corresponding to the representative quality of the image, based on receiving the user input, in the image , An operation of providing a designated notification object based on a part corresponding to the identified block, and an operation of displaying detailed information including a description of the overall score and classification for the image correction together with the notification object.
  • the operating method performed by the electronic device may include receiving a user input for compressing the image, and based on receiving the user input, artifacts generated during the first compression of the image. Determining a second compression quality for the second compression based on the first compression quality related to the first compression, and performing a second compression on an image based on the second compression quality.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Structural Engineering (AREA)
  • Signal Processing (AREA)
  • Architecture (AREA)
  • Civil Engineering (AREA)
  • Image Analysis (AREA)

Abstract

다양한 실시예들은 전자 장치에서 이미지 보정(예: 이미지 화질 개선) 시에 이미지의 압축 품질을 예측하고, 그에 기반하여 이미지를 처리하는 방법 및 장치에 관하여 개시한다. 다양한 실시예들에 따른 전자 장치는, 디스플레이 모듈, 메모리, 및 프로세서를 포함하고, 상기 프로세서는, 상기 디스플레이 모듈을 통해 이미지를 표시하고, 상기 이미지에서 지정된 복수 개의 블록을 지정된 방식으로 추출하고, 상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하고, 신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측 제외 대상인 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하고, 상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하고, 및 상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하도록 동작할 수 있다.

Description

전자 장치에서 이미지의 압축 품질 예측 방법 및 장치
본 개시의 실시예들은 전자 장치에서 이미지 보정(예: 이미지 화질 개선) 시에 이미지의 압축 품질을 예측하고, 그에 기반하여 이미지를 처리하는 방법 및 장치에 관하여 개시한다.
디지털 기술의 발달과 함께 이동통신 단말기, PDA(personal digital assistant), 전자수첩, 스마트 폰(smart phone), 태블릿(tablet) PC(personal computer), 웨어러블 디바이스(wearable device) 및/또는 랩탑(laptop) PC와 같은 다양한 유형의 전자 장치가 널리 사용되고 있다. 이러한, 전자 장치는 기능 지지 및 증대를 위해, 전자 장치의 하드웨어적인 부분 및/또는 소프트웨어적인 부분이 지속적으로 개발되고 있다.
전자 장치는 기능이 다양화됨에 따라, 예를 들어, 사진이나 동영상의 촬영, 음악이나 동영상 파일의 재생, 게임, 방송 수신, 또는 통화(call) 기능과 같은 복합적인 기능들을 갖춘 멀티미디어 기기(multimedia device) 형태로 구현되고 있다. 이러한 전자 장치는 디스플레이(display)를 구비하며, 디스플레이에 기반하여 기능들에 관련된 화면을 표시할 수 있다.
전자 장치는, 전자 장치에 저장된 이미지 또는 외부 장치(예: 서버 및/또는 다른 전자 장치)로부터 획득된 이미지를 디스플레이를 통해 표시할 수 있다. 최근에는, 전자 장치는 디스플레이의 해상도 증가 및/또는 물리적인 크기(예: 디스플레이의 화면 크기)의 증가에 따라, 전자 장치에서도 고화질의 이미지가 요구되고 있고, 그에 따른 이미지의 품질 향상에 대한 필요가 제기되고 있다. 예를 들면, 전자 장치 또는 외부 장치에 의해 제공되는 이미지에 대한 이미지 품질(image quality)의 중요도 증가하고 있다.
한편, 외부 장치에서 제공하는 이미지는 압축되어 전송될 수 있다. 예를 들면, 이미지는 클라우드 환경의 스토리지를 절약하고 이미지 전송의 지연을 최소화하기 위해서, 일정 압축 품질(또는 압축률)로 압축되어 제공될 수 있다. 이러한 경우, 원본 영상의 압축 방법 정보(예: 해상도 정보) 및 압축 품질 정보(예: 압축 비트레이트 정보)가 소실되어, 영상 표시 장치에서, 원본 영상의 압축 방법 정보 및 압축 품질 정보와 관련된 영상의 품질 판단이 어려워져, 원본 영상에 알맞은 화질 세팅을 하는 것이 어려워졌으며, 특히, 영상 표시 장치 내의 화질 알고리즘의 최대 성능을 구현하는 것이 어려워졌다.
이미지 압축은, 예를 들면, 이미지에 압축 아티팩트(compression artifact)가 발생할 수 있다. 예를 들면, 이미지 압축에서는 적어도 하나의 아티팩트(예: ringing artifacts(또는 mosquito artifacts), blocking artifacts, blur artifacts, color distortion, 및/또는 texture deviation)가 발생할 수 있다. 일반적으로, 압축 아티팩트는 이미지의 압축 품질(또는 압축률)이 높을수록 보다 많이 발생할 수 있다. 따라서, 외부 장치(예: 컨텐츠 서버 또는 다른 외부 장치와 같은 서비스 제공자)에서는, 이미지를 전자 장치로 제공할 때, 이미지 크기를 최대한 압축하면서도 사용자 눈에는 아티팩트가 최소한으로 보일 수 있도록 하는 이슈가 제기될 수 있다. 또한, 최근에는 전자 장치가 대화면의 디스플레이를 지원함에 따라, 기존의 작은 화면에 최적화되어 아티팩트가 숨겨진 이미지가, 큰 화면에서 확대 제공됨에 따라 사용자에 의해 쉽게 노출될 수 있다. 예를 들면, 작은 화면에서 식별되지 않던 아티팩트가 큰 화면에서 확대되어 사용자에 의해 식별될 수 있고, 사용자에게 이미지 품질의 저하로 인식될 수 있다.
다양한 실시예들에서는, 전자 장치에서 이미지 화질 개선(예: 이미지 보정) 시에 이미지의 압축 품질을 판단하는 동작에서, 이미지의 압축 품질을 정확하고 빠르게 예측할 수 있는 방법 및 장치를 제공한다.
다양한 실시예들에서는, 전자 장치에서 주어진 이미지에 대해 압축 품질 판단 시에 블록 단위의 신뢰도(confidence) 추정에 기반하여 이미지의 압축 품질을 예측할 수 있는 방법 및 장치를 제공한다.
다양한 실시예들에서는, 전자 장치에서 주어진 이미지에 대해 블록 단위 신뢰도 추정 시에, 이미지로부터 압축 품질 예측이 어려운 영역(예: 품질 예측 제외 대상 영역)인 아웃라이어(outlier)를 제거하고, 이미지에서 압축 품질 예측을 가능하게 하는 영역에 기반하여 압축 품질을 정확하고 빠르게 예측할 수 있는 방법 및 장치를 제공한다.
다양한 실시예들에서는, 전자 장치에서 이미지의 화질 개선을 위하여, 주어진 이미지의 압축 품질을 판단하고, 압축 품질에 대응하게 학습된 노이즈 제거 모델에 기반하여 이미지를 보정할 수 있는 방법 및 장치를 제공한다.
본 개시의 일 실시예에 따른 전자 장치는, 디스플레이 모듈, 메모리, 및 상기 디스플레이 모듈 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 디스플레이 모듈을 통해 이미지를 표시하고, 상기 이미지에서 지정된 복수 개의 블록을 지정된 방식(예: 균등 방식 또는 랜덤 방식)으로 추출하고, 상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하고, 신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측 제외 대상인 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하고, 상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하고, 및 상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하도록 동작할 수 있다.
본 개시의 일 실시예에 따른 전자 장치의 동작 방법은, 전자 장치의 디스플레이 모듈을 통해 이미지를 표시하는 동작, 상기 이미지에서 지정된 복수 개의 블록을 지정된 방식으로 추출하는 동작, 상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하는 동작, 신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측이 불가능한 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하는 동작, 상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하는 동작, 및 상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하는 동작을 포함할 수 있다.
상기와 같은 과제를 해결하기 위하여 본 개시의 다양한 실시예들에서는, 상기 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체를 포함할 수 있다.
본 개시의 적용 가능성의 추가적인 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나 본 개시의 사상 및 범위 내에서 다양한 변경 및 수정은 당업자에게 명확하게 이해될 수 있으므로, 상세한 설명 및 본 개시의 바람직한 실시예와 같은 특정 실시예는 단지 예시로 주어진 것으로 이해되어야 한다.
본 개시에 따른 전자 장치 및 그의 동작 방법에 따르면, 전자 장치에서 이미지를 분석할 때, 이미지의 전체 영역이 아닌 일부 영역에 대해, 심층 신경망(DNN, deep neural network)을 이용하여 압축 품질 분석을 수행함에 따라, 이미지의 압축 품질 연산을 정확하고 신속하게 처리할 수 있다. 다양한 실시예들에 따르면, 전자 장치에서 이미지 화질 개선(예: 이미지 보정)을 위해 이미지의 압축 품질을 판단(또는 분석) 시에, 블록 단위의 신뢰도(confidence) 추정에 기반하여 이미지의 압축 품질을 정확하고 빠르게 예측하도록 할 수 있다.
다양한 실시예들에 따르면, 전자 장치에서 주어진 이미지에 대해 블록 단위 신뢰도 추정에 기반하여, 이미지로부터 아웃라이어(outlier)를 제거하고, 이미지에서 압축 품질 예측을 가능하게 하는 영역에 기반하여 압축 품질을 분석함으로써, 보다 정확하게 압축 품질을 분석할 수 있다.
다양한 실시예들에 따르면, 전자 장치에서 주어진 이미지에 대해 압축 품질을 정확하게 판단할 수 있고, 판단된 압축 품질에 대응하게 학습된 노이즈 제거 모델에 기반하여 이미지의 압축 아티팩트(또는 압축 노이즈)를 제거할 수 있다. 이에 따라, 전자 장치는 압축 이미지의 품질을 높여 원본 품질에 가까운 이미지를 사용자에게 제공할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도면 설명과 관련하여, 동일 또는 유사한 구성 요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 2는 일 실시예에 따른 전자 장치의 구성을 개략적으로 도시하는 도면이다.
도 3은 일 실시예에 따른 전자 장치에서 이미지 보정을 위한 학습, 분류 및 제거 동작의 예를 도시하는 흐름도이다.
도 4는 일 실시예에 따른 전자 장치에서 이미지 보정의 예를 도시하는 도면이다.
도 5는 일 실시예에 따른 전자 장치의 동작 방법을 도시하는 흐름도이다.
도 6은 일 실시예에 따른 전자 장치에서 학습하는 동작 예를 도시하는 도면이다.
도 7은 일 실시예에 따른 전자 장치에서 압축 품질을 예측하는 동작 방법을 도시하는 흐름도이다.
도 8은 일 실시예에 따른 전자 장치에서 품질 예측을 위한 추론 동작의 예를 설명하기 위해 도시하는 도면이다.
도 9는 일 실시예에 따른 전자 장치에서 아티팩트를 제거하는 동작 방법을 도시하는 흐름도이다.
도 10은 일 실시예에 따른 전자 장치에서 이미지를 압축하는 동작 방법을 도시하는 흐름도이다.
도 11은 일 실시예에 따른 전자 장치에서 이미지 보정에 대한 정보를 제공하는 동작 방법을 도시하는 흐름도이다.
도 12는 일 실시예에 따른 전자 장치에서 이미지 보정에 대한 정보를 제공하는 사용자 인터페이스 및 그 동작 예를 도시하는 도면이다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치(CPU, central processing unit) 또는 어플리케이션 프로세서(AP, application processor)) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치(GPU, graphic processing unit), 신경망 처리 장치(NPU, neural processing unit), 이미지 시그널 프로세서(ISP, image signal processor), 센서 허브 프로세서(sensor hub processor), 또는 커뮤니케이션 프로세서(CP, communication processor))를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(inactive)(예: 슬립(sleep)) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(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) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(OS, operating system)(142), 미들 웨어(middleware)(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD(secure digital) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN(wide area network))와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB, enhanced mobile broadband), 단말 전력 최소화와 다수 단말의 접속(mMTC, massive machine type communications), 또는 고신뢰도와 저지연(URLLC, ultra-reliable and low-latency communications)을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO, full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시예들에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC, mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 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)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱(heuristic)하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 2는 일 실시예에 따른 전자 장치의 구성을 개략적으로 도시하는 도면이다.
도 2를 참조하면, 일 실시예에 따른 전자 장치(101)는 통신 모듈(190), 디스플레이 모듈(160), 메모리(130) 및 프로세서(120)를 포함할 수 있다. 일 실시예에서, 프로세서(120)는 이미지 처리 모듈(210), 샘플 패치 추출 모듈(220), 압축 품질 분류 모듈(230), 노이즈 제거 모델(260), 모델 선택 모듈(270), 및/또는 스코어 산출 모듈(280) 중 적어도 하나를 포함할 수 있다.
통신 모듈(190)은 레거시 네트워크(예: 3G 네트워크 및/또는 4G 네트워크), 5G 네트워크, OOB(out of band) 및/또는 차세대 통신 기술(예: NR(new radio) 기술)을 지원할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 도 1에 예시한 바와 같은 무선 통신 모듈(192)에 대응할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 통신 모듈(190)을 이용하여 네트워크를 통해 외부 장치(예: 도 1의 서버(108) 및/또는 다른 전자 장치(102, 104))와 통신을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 통신 모듈(190)을 통해 외부 장치로부터 이미지 및/또는 이미지를 포함하는 컨텐츠(예: 웹 페이지)를 수신할 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 다양한 정보를 시각적으로 제공할 수 있다. 일 실시예에 따라, 디스플레이 모듈(160)은 터치 감지 회로(또는 터치 센서)(미도시), 터치의 세기를 측정할 수 있는 압력 센서 및/또는 자기장 방식의 스타일러스 펜을 검출하는 터치 패널(예: 디지타이저)을 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치 감지 회로, 압력 센서 및/또는 터치 패널에 기반하여 디스플레이 모듈(160)의 특정 위치에 대한 신호(예: 전압, 광량, 저항, 전자기 신호 및/또는 전하량)의 변화를 측정함으로써 터치 입력 및/또는 호버링 입력(또는 근접 입력)을 감지할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 액정 표시 장치(LCD, liquid crystal display), OLED(organic light emitted diode), AMOLED(active matrix organic light emitted diode)로 구성될 수 있다. 어떤 실시예에 따르면, 디스플레이 모듈(160)은 플렉서블 디스플레이(flexible display)로 구성될 수 있다.
디스플레이 모듈(160)은 프로세서(120)의 제어 하에, 이미지 및/또는 이미지를 포함하는 컨텐츠를 시각적으로 제공할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 표시된 적어도 하나의 이미지에 대응하는 이미지 처리(image processing)(예: 이미지 보정)와 관련된 다양한 정보(예: 사용자 인터페이스)를 제공할 수 있다.
메모리(130)는 전자 장치(101)에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 어플리케이션(예: 도 1의 프로그램(140)), 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 일 실시예에 따라, 메모리(130)는 실행 시에, 프로세서(120)가 동작하도록 하는 인스트럭션들(instructions)을 저장할 수 있다. 예를 들면, 어플리케이션은 메모리(130) 상에 소프트웨어(예: 도 1의 프로그램(140))로서 저장될 수 있고, 프로세서(120)에 의해 실행 가능할 수 있다. 일 실시예에 따라, 어플리케이션은 전자 장치(101)에서 이미지를 제공할 수 있는 다양한 어플리케이션(예: 갤러리 어플리케이션, 이미지 편집 어플리케이션)일 수 있다.
일 실시예에 따르면, 메모리(130)는 프로세서(120)에 의하여 수행될 수 있는, 블록 단위 신뢰도(confidence) 추정 기반 압축 품질(compression quality) 예측 및 압축 품질 별 이미지 보정을 처리하는 기능(또는 동작)과 관련된 적어도 하나의 구성 요소(또는 모듈)를 저장할 수 있다. 예를 들면, 메모리(130)는 프로세서(120)의 이미지 처리 모듈(210), 샘플 패치 추출 모듈(220), 압축 품질 분류 모듈(230), 노이즈 제거 모델(260), 모델 선택 모듈(270), 및/또는 스코어 산출 모듈(280) 중 적어도 일부를 소프트웨어 형태(또는 인스트럭션 형태)로 포함할 수 있다.
프로세서(120)는 전자 장치(101)에서 블록 단위 신뢰도 추정(confidence estimation) 기반 압축 품질 예측(compression quality prediction) 및 압축 품질 별 이미지 보정을 처리하기 위한 관련된 동작을 제어할 수 있다. 일 실시예에 따르면, 프로세서(120)는 전자 장치(101)의 메모리(130)에 저장된 이미지 및/또는 외부 장치로부터 수신된 이미지에 관련된 압축 품질을 블록 단위의 신뢰도 추정에 기반하여 판단하고, 판단된 압축 품질에 기반하여 이미지 보정을 처리하는 것과 관련된 동작을 제어할 수 있다.
일 실시예에서, 프로세서(120)는 이미지 화질 개선(예: 이미지 보정)을 위해 이미지의 압축 품질을 판단(또는 분석) 시에, 블록 단위의 신뢰도 추정에 기반하여 이미지의 압축 품질을 예측할 수 있다. 일 실시예에서, 프로세서(120)는 주어진 이미지에 대해 블록 단위 신뢰도 추정에 기반하여, 이미지로부터 아웃라이어(outlier)를 제거하고, 이미지에서 압축 품질 예측을 가능하게 하는 영역, 예를 들면, 이미지의 전체 영역이 아닌 일부 영역에 기반하여 압축 품질을 분석함으로써, 압축 품질의 분류 속도를 향상하도록 동작할 수 있다. 여기서, 아웃라이어는 신뢰도 추정을 제대로 수행할 수 없는(또는 압축 품질 예측이 어려운 또는 불가능한) 특이 블록으로, 예를 들면, 품질 예측에서 제외되는 대상 영역을 나타낼 수 있다.
일 실시예에 따르면, 프로세서(120)는 디스플레이 모듈(160)을 통해 적어도 하나의 이미지를 포함하는 화면을 표시하도록 디스플레이 모듈(160)을 제어할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지를 표시할 때, 또는 이미지를 표시하는 동안 주어진 이미지의 압축 품질(예: 압축률)을 예측(또는 분류)할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메모리(130)에 저장된 다양한 압축 품질 별로 학습된(또는 모델링된) 다양한 노이즈 제거 모델(260)(또는 디노이징 모델(denoising model), 디노이저(denoiser) 또는 아티팩트 제거기(artifact reducer)) 중, 주어진 이미지에 대해 예측된 압축 품질에 대응하게 학습된 노이즈 제거 모델(260)을 선택할 수 있다.
일 실시예에 따르면, 프로세서(120)는 선택된 노이즈 제거 모델(260)에 기반하여 이미지 보정을 처리(예: 압축 이미지에서 압축 아티팩트를 제거하여 원본 품질의 이미지로 복구)하고, 보정된 이미지를 지정된 동작에 따라 처리할 수 있다. 예를 들면, 프로세서(120)는 보정된 이미지를 디스플레이 모듈(160)을 통해 표시하거나, 메모리(130)에 저장하거나, 또는 외부(예: 서버 또는 다른 전자 장치)로 전송하도록 동작할 수 있다.
일 실시예에 따르면, 프로세서(120)는 블록 단위 신뢰도 추정 기반 압축 품질 예측 및 압축 품질 별 이미지 보정을 처리하기 적어도 하나의 구성 요소(또는 모듈)를 포함할 수 있다. 예를 들면, 프로세서(120)는 이미지 처리 모듈(210), 샘플 패치 추출 모듈(220), 압축 품질 분류 모듈(230), 노이즈 제거 모델(260), 모델 선택 모듈(270), 및/또는 스코어 산출 모듈(280) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따라, 이미지 처리 모듈(210), 샘플 패치 추출 모듈(220), 압축 품질 분류 모듈(230), 노이즈 제거 모델(260), 모델 선택 모듈(270), 및/또는 스코어 산출 모듈(280) 중 적어도 일부는 하드웨어 모듈(예: 회로(circuitry))로 프로세서(120)에 포함되거나, 및/또는 프로세서(120)에 의해 실행될 수 있는 하나 이상의 인스트럭션들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 프로세서(120)에서 수행하는 동작들은, 메모리(130)에 저장되고, 실행 시에, 프로세서(120)가 동작하도록 하는 인스트럭션들에 의해 실행될 수 있다.
이미지 처리 모듈(210)은, 이미지 인코더(image encoder) 및 이미지 디코더(image decoder)를 포함할 수 있다. 일 실시예에 따르면, 이미지 처리 모듈(210)은, 이미지 인코더를 통해, 이미지에 대한 인코딩(encoding)을 처리할 수 있다. 예를 들면, 이미지 처리 모듈(210)은, 이미지 인코더를 이용하여, 이미지 인코딩을 통해 이미지를 지정된 압축률(또는 압축 레벨) 및 지정된 포맷(예: mpeg, jpeg, gif, 및/또는 png)의 파일로 압축할 수 있다. 일 실시예에 따르면, 이미지 처리 모듈(210)은, 이미지 디코더를 통해, 지정된 인코딩으로 압축된 이미지에 대한 디코딩(decoding)을 처리할 수 있다. 예를 들면, 이미지 처리 모듈(210)은, 이미지 디코더를 이용하여, 인코딩으로 압축된 이미지 파일의 압축을 해제하여, 이미지를 복구(또는 복원)할 수 있다.
샘플 패치 추출 모듈(220)(예: sample patch extractor)은, 이미지의 압축 품질을 구분하기 위해서 일정 개수(예: M개)의 패치(예: 16x16 patch)를 추출하는 모듈을 나타낼 수 있다. 일 실시예에 따르면, 샘플 패치 추출 모듈(220)은, 주어진 이미지로부터 M개(예: 약 256개)의 샘플(samples)(예: 약 256개의 16x16 패치)를 지정된 방식으로 추출하고, 프로세서(120)(예: 압축 품질 분류 모듈(230))가 추출된 256개의 16x16 패치 중 적어도 일부에 대해서 압축 품질 분류(예: 품질 예측 및 신뢰도 추정) 및 통합을 수행하여 이미지에 대한 최종 품질(Q)을 판단하도록 동작할 수 있다.
일 실시예에 따르면, 샘플 패치 추출 모듈(220)은 패치를 추출할 때, 지정된 방식(예: 균등 방식 또는 랜덤 방식)에 따라 복수 개의 패치를 균등하게 또는 랜덤하게 추출할 수 있다. 예를 들면, 프로세서(120)는 주어진 이미지에서, 전체 영역이 아닌 일부 영역(예: 패치 단위)을 통해 분석을 수행할 수 있다. 예를 들면, 프로세서(120)는 이미지에서 전체 영역이 아닌 지정된 관심 영역(ROI, region of interest)에 기반하여 분석을 수행할 수 있다.
어떤 실시예에 따르면, 샘플 패치 추출 모듈(220)은, 주어진 이미지로부터, 패치 단위로 복수 개의 영역들을 추출(예: 균등 추출 또는 랜덤 추출)할 수 있다. 일 실시예에서, 패치는 이미지의 압축 품질을 이해할 수 있는 최소한의 이미지 단위를 의미할 수 있다. 예를 들어, 이미지를 압축하는 압축 방법이 8x8 블록 단위로 이미지를 분할하여 압축하는 경우, 패치는 8x8 블록뿐만 아니라, 8x8 블록의 주변 관계를 포함할 수 있는 좀 더 큰 영역의 10x10 블록을 패치로 설정할 수 있다. 일 실시예에 따르면, 패치는 8x8 블록의 주변 블록의 중심까지 포함할 수 있도록 주변 블록의 약 4 픽셀(pixel)을 추가하여 16x16 크기의 영역을 패치의 크기로 정의할 수 있다.
압축 품질 분류 모듈(230)(예: compression quality classifier)은, 일정 단계(예: N 단계)(예: 13 단계, 16 단계, 50 단계, 또는 100 단계)로 압축 품질(compression quality)을 구분하는 모듈을 나타낼 수 있다. 예를 들면, 압축 품질 분류 모듈(230)은 이미지에 관련된 N개의 압축 품질(또는 압축률 또는 압축 레벨)에 대응하여 N개의 압축 품질을 분류할 수 있다. 일 실시예에 따르면, 압축 품질 분류 모듈(230)은 서비스 또는 어플리케이션에 기반하여 다양한 단계(예: 13 단계, 16 단계, 50 단계, 또는 100 단계)로 설정 가능할 수 있다.
예를 들면, 압축 품질 분류 모듈(230)은 제1 어플리케이션(예: 이미지 편집 어플리케이션)은 X 단계(예: 16 단계)로 설정할 수 있고, 제2 어플리케이션(예: 갤러리 어플리케이션)은 Y 단계(예: 100 단계)로 설정할 수 있다.
예를 들면, 압축 품질 분류 모듈(230)은 이미지 인코더의 품질(quality) 옵션을 N개의 클래스로 다양하게 설정하여, N개의 품질의 압축 이미지를 준비할 수 있다. 일 예로, JPEG 포맷의 인코딩이 구현된 라이브러리 어플리케이션은 인코딩 품질(encoding quality)을, 예를 들면, 1에서 100까지의 100개의 압축 단계를 제공할 수 있고, 이미지 편집 어플리케이션은 인코딩 품질을, 예를 들면, 1에서 13까지의 13개의 압축 단계를 제공할 수 있다. 일 실시예에 따르면, 압축 품질 분류 모듈(230)의 입력은, 예를 들면, 16x16 패치의 크기를 갖는 이미지일 수 있다. 일 실시예에 따라, 압축 품질 분류 모듈(230)의 압축 품질 분류 동작과 관련하여 후술하는 도면들을 참조하여 설명된다.
일 실시예에 따르면, 압축 품질 분류 모듈(230)은 샘플 패치 추출 모듈(220)에 의해 추출된 패치에 대한 신뢰도 추정에 기반하여 주어진 이미지에 대한 압축 품질을 예측할 수 있다. 예를 들면, 압축 품질 분류 모듈(230)은 주어진 이미지에서 블록 단위(예: 패치 단위)로 신뢰도를 추정하도록 동작 가능한 신뢰도 추정 모듈(240)(예: confidence estimator)과 주어진 이미지에서 압축 품질을 예측하도록 동작 가능한 품질 예측 모듈(250)(예: quality predictor)과 을 포함할 수 있다.
신뢰도 추정 모듈(240)은 입력 패치(예: 샘플 패치 추출 모듈(220)에 의해 추출된 패치)의 신뢰도를 추정할 수 있다. 일 실시예에 따르면, 신뢰도 추정 모듈(240)은 이미지에서 전체 영역이 아닌 특정 관심 영역(ROI)에 기반하여 신뢰도를 추정할 수 있다. 예를 들면, 신뢰도 추정 모듈(240)은 이미지에서 추정하고자 하는 범위를 지정하여 신뢰도를 추정할 수 있다.
일 실시예에 따르면, 신뢰도 추정 모듈(240)은 이미지로부터 추출된 복수 개(예: 지정된 M개)의 패치들에 대한 신뢰도 추정을 수행할 수 있다. 일 실시예에서, 신뢰도 추정 모듈(240)은 다양한 신뢰도 추정 방식을 기반으로, 추출된 패치들의 신뢰도를 추정하여, 신뢰도가 지정된 임계 값 이하인 아웃라이어에 대응하는 적어도 하나의 패치(예: K개의 패치)를 추정할 수 있다. 일 실시예에 따르면, 신뢰도 추정 모듈(240)은 품질 예측 모듈(250)을 학습하는 중에, 동시에 입력 패치에 대한 품질 예측 성능을 계속 측정하여, 품질 예측 모듈(250)이 특정 타입의 입력 패치에 품질 측정 성능이 떨어지는 현상을 통계적으로 파악할 수 있도록, 품질 예측 모듈(250)과 함께 학습할 수 있다.
품질 예측 모듈(250)은 입력 패치에 대한 품질을 측정할 수 있다. 일 실시예에 따르면, 품질 예측 모듈(250)은 이미지로부터 추출된 복수 개(예: 지정된 M개)의 패치들 중, 신뢰도 추정 모듈(240)에 기반하여 추정된 아웃라이어에 대응하는 패치(예: K개의 패치)를 품질 예측 대상에서 제외하고, 입력 패치 중 아웃라이어의 패치를 제외한 나머지 패치(예: 압축 품질 예측을 가능하게 하는 영역)를 이용하여 압축 품질을 판단할 수 있다.
일 실시예에 따르면, 품질 예측 모듈(250)은 신뢰도가 지정된 임계 값 이하인 아웃라이어에 대응하는 적어도 하나의 패치(예: K개의 패치)에 대해, 패치 별 압축 품질의 평균 연산에서 제외하고, 신뢰도가 지정된 임계 값 초과인 나머지 패치(예: (M-K)개의 패치)에 기반하여 압축 품질을 분석(예: 나머지 패치 별 압축 품질의 평균을 연산)하여, 압축 품질(예: 이미지에 대한 최종 품질(Q))를 분류(또는 결정)할 수 있다.
예를 들면, 품질 예측 모듈(250)은 이미지에서 아웃라이어를 제거하고, 유의미한 압축 품질 예측을 가능하게 하는 영상 패치에서 획득하는 예측 결과만을 종합하여 이미지의 품질을 보다 정확하고 신속하게 예측할 수 있다. 일 실시예에 따르면, 품질 예측 모듈(250)은 만약 추출된 복수 개(예: 지정된 M개)의 패치가 모두 아웃라이어라고 판단하는 경우, 다른 영역에서 복수 개(예: 지정된 M개)의 패치를 다시 추출하는 방식으로, 적응적으로 품질을 예측하도록 동작할 수도 있다.
노이즈 제거 모델(260)은, 디노이징 모델, 디노이저 또는 아티팩트 제거기를 포함할 수 있다. 일 실시예에 따라, 노이즈 제거 모델(260)은, 예를 들면, 이미지 처리 모듈(210)(예: 이미지 디코더)의 후처리(post-processing) 필터(filter)로 사용될 모델을 나타낼 수 있다. 일 실시예에 따르면, 노이즈 제거 모델(260)은, 이미지에 관련된 다양한 압축 품질(또는 압축률 또는 압축 레벨) 별로 복수 개(예: n개, n은 2 이상의 자연수)를 포함할 수 있다. 일 실시예에 따르면, 노이즈 제거 모델(260)은 전자 장치(101)에서 다양한 압축 품질에 대응하는 다양한 압축 이미지를 이용하여, 다양한 압축 품질에 각각 대응하는 복수 개의 노이즈 제거 모델(260)이 학습되어, 메모리(130)에 저장될 수 있다.
모델 선택 모듈(270)은, 적어도 하나의 지정된 조건(criteria)에 기반하여, 주어진 이미지의 이미지 보정(예: 압축 품질에 기반한 압축 아티팩트 제거)에 적용하기 최적의 노이즈 제거 모델(260)을 선택할 수 있다. 일 실시예에 따르면, 모델 선택 모듈(270)은 노이즈 제거 모델(260) 선택 시에, 신뢰도 추정 기반 압축 품질에 대응하게 학습된 노이즈 제거 모델(260)을 선택할 수 있다.
어떤 실시예에 따르면, 모델 선택 모듈(270)은 노이즈 제거 모델(260) 선택 시에, 압축 품질에 더하여, 사용자 의도(또는 선호도 또는 취향), 이미지를 제공하는 서비스 또는 어플리케이션의 종류 및/또는 실제 이미지가 표시될 디스플레이 모듈(160)의 물리적 크기(예: 디스플레이 모듈(160)의 화면 크기) 중 적어도 하나를 고려하여, 다른 보정 강도 적용(또는 설정)을 위한 노이즈 제거 모델(260)을 선택할 수도 있다.
스코어 산출 모듈(280)은 입력 패치의 추론 결과들을 신뢰도 기반으로 평균(mean) 또는 중간(median) 값을 계산하여 하나의 출력(예: 숫자)을 생성할 수 있다. 일 실시예에 따르면, 스코어 산출 모듈(280)은 이미지의 압축 품질(예: 최종 품질(Q))에 대한 품질 정보(예: 숫자)를 출력하도록 학습할 수 있다. 일 실시예에 따르면, 스코어 산출 모듈(280)은 미리 정의된 스코어 산출 기준이나 범위(예: 평균 또는 중간 값)에 기반하여 압축 품질에 대한 품질 정보를 학습할 수 있다.
본 개시에서 설명되는 다양한 실시예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 다양한 실시예들에서 설명되는 동작들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로프로세서(microprocessors), 및/또는 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다.
다양한 실시예들에서, 기록 매체는 디스플레이 모듈(160)을 통해 이미지를 포함하는 화면을 표시하는 동작, 이미지의 압축 품질을 결정하는 동작, 결정된 압축 품질에 대응하게 학습된 노이즈 제거 모델을 선택하는 동작, 선택된 노이즈 제거 모델에 기반하여 이미지 보정을 처리하는 동작, 및 보정된 이미지를 지정된 동작(예: 표시, 저장 및/또는 전송 동작)에 따라 처리하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체를 포함할 수 있다.
본 개시의 일 실시예에 따른 전자 장치(101)는 디스플레이 모듈(예: 도 1 또는 도 2의 디스플레이 모듈(160)), 메모리(예: 도 1 또는 도 2의 메모리(130)), 및 상기 디스플레이 모듈 및 상기 메모리와 작동적으로 연결된 프로세서(예: 도 1 또는 도 2의 프로세서(120))를 포함하고, 상기 프로세서는, 상기 디스플레이 모듈을 통해 이미지를 표시하고, 상기 이미지에서 지정된 복수 개의 블록을 지정된 방식으로 추출하고, 상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하고, 신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측 제외 대상인 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하고, 상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하고, 및 상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하도록 동작할 수 있다.
일 실시예에 따르면, 상기 이미지는, 지정된 압축 품질로 압축된 압축 이미지일 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 추출된 복수 개의 블록에 대해, 블록 단위의 신뢰도 추정에 기반하여, 지정된 임계 값 이하의 아웃라이어에 대응하는 적어도 하나의 제1 블록을 추정하고, 상기 적어도 하나의 제1 블록을 압축 품질 분류를 위한 평균 연산에서 제외하고, 지정된 임계 값 초과의 적어도 하나의 제2 블록에 기반하여 압축 품질 분류를 위한 평균 연산을 수행하고, 평균 연산의 결과를 상기 이미지에 대한 압축 품질로 분류하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 이미지에 대해 분류된 압축 품질에 대응하게 학습된 노이즈 제거 모델을 선택하고, 상기 선택된 노이즈 제거 모델에 기반하여 상기 이미지에 대한 화질 개선을 처리하고, 개선된 이미지를 지정된 동작에 기반하여 처리하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 다양한 압축 품질 별로 미리 학습된 복수의 노이즈 제거 모델을 상기 메모리에 저장하고, 상기 복수의 노이즈 제거 모델 중 상기 이미지의 압축 품질의 분류에 대응하게 학습된 노이즈 제거 모델을 선택하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 개선된 이미지를, 상기 디스플레이 모듈을 통한 표시, 상기 메모리에 저장 또는 외부로 전송 중 적어도 하나의 지정된 동작으로 처리하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 이미지의 이미지 품질에 관련된 정보를 요청하는 사용자 입력을 수신하고, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지에 대한 보정 정보를 상기 이미지에 기반하여 표시하도록 상기 디스플레이 모듈(160)을 제어하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지의 대표 품질에 대응하는 압축 품질을 갖는 적어도 하나의 블록을 식별하고, 상기 식별된 블록에 기반하여 지정된 노티 객체와 이미지 보정에 대한 상세 정보를 제공하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 이미지로부터 높은 신뢰도의 블록을 식별하고, 식별된 블록에 대한 품질 및 신뢰도를 측정하고, 측정된 품질 및 신뢰도에 따른 블록 별 압축 품질과 상기 이미지의 대표 품질을 비교하고, 상기 블록 별 압축 품질 중 상기 대표 품질에 대응하는 압축 품질을 가지면서, 다른 블록과 비교하여 상대적으로 높은 신뢰도를 갖는 블록을 군집화(clustering) 하고, 상기 이미지에서 군집화된 블록에 대응하는 부분에 기반하여 상기 지정된 노티 객체를 제공하고, 상기 노티 객체와 함께, 상기 이미지 보정에 대한 전체 스코어 및 분류에 대한 설명을 포함하는 상세 정보를 표시하도록 상기 디스플레이 모듈을 제어하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 이미지의 제2 압축 시에, 상기 이미지의 제1 압축 시에 발생된 아티펙트를 제거하고, 이후 제2 압축을 수행하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 이미지의 압축을 위한 사용자 입력을 수신하고, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지의 제1 압축 시의 제1 압축 품질에 대응하는 노이즈 제거 모델에 기반하여, 상기 제1 압축 시 발생한 아티펙트를 제거하고, 상기 제1 압축에 관련된 제1 압축 품질에 기반하여 상기 제2 압축을 위한 제2 압축 품질을 결정하고, 상기 제2 압축 품질에 기반하여 이미지에 대한 제2 압축을 수행하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 제1 압축 품질에 대응하게 상기 제2 압축 품질을 결정하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 상기 압축 품질 분류를 위한 품질 예측 모듈 및 신뢰도 추정 모듈을 포함하고, 상기 품질 예측 모듈을 학습하는 중에, 상기 신뢰도 추정 모듈을 함께 학습하도록 동작할 수 있다.
일 실시예에 따르면, 상기 프로세서는, 인공 지능 알고리즘을 이용하여 학습된 학습 모델(learning model 또는 trained model)을 이용하여, 이미지의 압축 품질을 분류하도록 동작할 수 있다.
이하에서는 다양한 실시예들의 전자 장치(101)의 동작 방법에 대해서 상세하게 설명한다. 이하에서 설명하는 전자 장치(101)에서 수행하는 동작들은, 전자 장치(101)의 다양한 프로세싱 회로(various processing circuitry) 및/또는 실행 가능한 프로그램 요소(executable program elements)를 포함하는 프로세서(120)에 의해 실행될 수 있다. 일 실시예에 따라, 전자 장치(101)에서 수행하는 동작들은, 메모리(130)에 저장되고, 실행 시에, 프로세서(120)가 동작하도록 하는 인스트럭션들에 의해 실행될 수 있다.
도 3은 일 실시예에 따른 전자 장치에서 이미지 보정을 위한 학습, 분류 및 제거 동작의 예를 도시하는 흐름도이다.
도 3을 참조하면, 동작 301에서, 전자 장치(101)의 프로세서(120)는 복수 개 클래스(class)의 압축 품질로 구성된 데이터 세트(dataset)를 생성할 수 있다. 일 실시예에 따르면, 프로세서(120)는 N개 클래스의 압축 품질로 구성된 데이터 세트를 생성할 수 있다. 예를 들면, 전자 장치(101)에서 머신 러닝(machine learning) 모델을 만들기 위해서, 이미지의 데이터 세트가 필요할 수 있다.
일 실시예에서, 이미지의 데이터 세트는, 예를 들면, 도 2의 이미지 처리 모듈(210)(예: 이미지 인코더)을 사용하여 준비할 수 있다. 예를 들면, 프로세서(120)는 이미지 인코더의 품질(quality) 옵션을 N개의 클래스로 다양하게 설정하여, N개의 품질의 압축 이미지를 준비할 수 있다. 일 예로, JPEG 포맷의 인코딩이 구현된 라이브러리 어플리케이션은 인코딩 품질(encoding quality)을, 예를 들면, 1에서 100까지의 100개의 압축 단계를 제공할 수 있고, 이미지 편집 어플리케이션은 인코딩 품질을, 예를 들면, 1에서 13까지의 13개의 압축 단계를 제공할 수 있다.
일 실시예에 따르면, 프로세서(120)는 데이터 세트에 기반하여, 예를 들면, 도 2의 압축 품질 분류 모듈(230)(예: 신뢰도 추정 모듈(240) 및 품질 예측 모듈(250))을 학습할 수 있다. 일 실시예에 따르면, 프로세서(120)는 다양한 품질로 압축된 이미지를 “입력 X”로 하고, 각 압축 이미지를 생성할 때 사용한 품질을 “Ground Truth 출력 Y”(예: 라벨(label) 또는 표지)로 설정할 수 있다.
일 실시예에 따르면, 프로세서(120)는 품질 예측 모듈(250)을 학습하는 도중에, 동시에 입력 패치에 대한 품질 예측 성능을 계속 측정하여 해당 품질 예측 모듈(250)이 특정 타입의 입력 패치에 품질 측정 성능이 떨어지는 현상을 통계적으로 파악할 수 있는 신뢰도 추정 모듈(240)도 함께 학습하도록 동작할 수 있다. 예를 들면, 프로세서(120)는 학습 데이터에서 해당 압축 품질을 분류하는 방법을 학습할 뿐만 아니라, 대응하는 신뢰도를 추정하는 방법까지 학습할 수 있다. 이를 기반으로, 프로세서(120)는 특정 이미지가 주어졌을 때, 해당 압축 품질에 맞는 신뢰도 추정을 적용할 수 있다.
일 실시예에 따르면, 프로세서(120)는, 예를 들면, 도 2의 노이즈 제거 모델(260)(예: artifact reducer)을 학습할 수 있다. 일 실시예에 따르면, 프로세서(120)는 다양한 품질로 압축된 이미지를 “입력 X”로 하고, 원본 이미지를 “Ground Truth 출력 Y”로 설정할 수 있다. 일 실시예에 따라, 노이즈 제거 모델(260)은 압축 품질 분류 모듈(230)과 다르게 라벨이 정수가 아닌 이미지를 나타낼 수 있다.
동작 303에서, 프로세서(120)는 압축 품질의 클래스를 분류할 수 있다. 일 실시예에 따르면, 프로세서(120)는 압축 품질의 클래스를 분류하기 위한 학습(learning)을 수행할 수 있다. 일 실시예에 따라, 프로세서(120)는 압축 품질의 클래스를 분류하기 위한 방법으로 다양한 머신 러닝 방법을 이용할 수 있다. 예를 들면, CNN(convolutional neural network)으로 압축 품질 분류 모듈(230)(예: 품질 예측 모듈(250))을 구현할 수 있다. 예를 들면, 프로세서(120)는 CNN 모델을 동작 301에서 생성한 데이터 세트 상에서 다양한 압축 이미지 품질을 이미지 처리 모듈(210)(예: 이미지 디코더)로 디코딩한 데이터로 훈련하여, 전자 장치(101) 상에서의 임의의 이미지가 주어졌을 때 해당 이미지의 압축 품질을 예측하도록 할 수 있다.
일 실시예에 따른 머신 러닝 방법은 CNN 모델에 한정하지 않으며, 압축 품질의 분류 및 개선을 위해 이용될 수 있는 다양한 머신 러닝 방법을 이용할 수 있다. 예를 들면, 머신 러닝 방법으로, 비지도 학습 방법(unsupervised learning)을 기반으로 하는 심층 신뢰 신경망(DBN, deep belief network) 및/또는 심층 오토인코더(deep autoencoder), 이미지와 같은 2차원 데이터 처리를 위한 합성곱 신경망(CNN), 및/또는 시계열 데이터 처리를 위한 순환 신경망(RNN, recurrent neural network)과 같은 다양한 모신 러닝 방법을 포함할 수 있다.
일 실시예에 따르면, 프로세서(120)는 이미지에 대한 압축 품질을 예측(inference)할 수 있다. 일 실시예에 따르면, 프로세서(120)는 전자 장치(101)에서 압축 품질의 클래스 분류를 수행할 때, 이미지의 모든 패치(patch)들을 모두 체크(check)하지 않고, 예를 들면, 도 2의 샘플 패치 추출 모듈(220)을 이용하여, 예를 들면, 약 256개의 16x16 패치를 추출(예: 균등 추출 또는 랜덤 추출)하고, 추출된 256개 각각에 기반하여 이미지에 대한 압출 품질(예: 최종 품질(Q))를 예측할 수 있다.
일 실시예에 따르면, 프로세서(120)는 추출된 영역들에 기반한 최종 품질(Q)을 예측할 때, 추출된 영역들의 신뢰도를 추정하여, 신뢰도(또는 점수)가 지정된 임계 값 이하인 아웃라이어(outlier)에 대해, 압축 품질의 평균 연산에서 제외하고 최종 품질(Q)을 예측할 수 있다. 다양한 실시예들에 따르면, 프로세서(120)는 이미지의 전체가 아닌 일부를 분석함으로써 분류 속도를 급격하게 향상할 수 있다. 일 실시예에 따라, 압축 품질 분류 동작과 관련하여 후술하는 도면들을 참조하여 설명된다.
동작 305에서, 프로세서(120)는 압축 품질에 대응하게 학습된 노이즈 제거 모델 적용에 기반하여 아티팩트(artifacts)를 제거할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주어진 이미지에 대해, 해당 압축 품질에 대응하게 학습된 개선 강도(denoising strength)를 적용하여 아티팩트를 제거할 수 있다. 일 실시예에 따르면, 프로세서(120)는 압축 품질에 대응하는 노이즈 제거 모델을 결정하기 위한 학습을 수행할 수 있다. 일 실시예에 따르면, 프로세서(120)는 압축 품질의 분류 개수와 같이, 예를 들면, N개의 노이즈 제거 모델(260)을 생성할 수 있다.
어떤 실시예에 따르면, 프로세서(120)는 노이즈 제거 모델(260)의 개수를 줄이기 위해서, 예를 들면, N개보다 적은 개수로 근사화(quantization)하여 노이즈 제거 모델(260)을 생성할 수도 있다. 일 예로, 프로세서(120)는 약 100개의 압축 품질 중에서, 예를 들면, 약 8개의 품질(예: 압축 품질 20, 30, 40, 50, 60, 70, 80, 및 90)로 근사화할 수 있다.
일 실시예에 따르면, 프로세서(120)는 근사화를 통해 생성된 압축 이미지가 원본 이미지로 8x8 패치 단위로 보정될 수 있도록 학습 모델을 생성할 수 있다. 일 실시예에 따르면, 프로세서(120)는 입력 크기를 16x16 픽셀(pixel) 크기를 갖는 패치로 설정하여 주위의 블록의 적어도 일부 영역을 같이 고려하도록 할 수도 있다. 예를 들면, 프로세서(120)는 특정 블록의 주변 블록과 질감 및/또는 색감이 급격하게 변하는 것을 방지할 수 있다.
일 실시예에 따르면, 프로세서(120)는 압축 품질 분류 모듈(230)을 통해서 예측된 품질(예: 최종 품질(Q))에 기반하여 적절한 노이즈 제거 모델(260)을 결정하고, 결정된 노이즈 제거 모델(260)을 이미지 보정에 적용하여, 이미지의 손실 압축에 따른 압축 아티팩트를 제거할 수 있다.
도 4는 일 실시예에 따른 전자 장치에서 이미지 보정의 예를 도시하는 도면이다.
도 4의 예시에서, 예시 화면 <401>은 압축 품질에 따른 이미지 보정 전의 압축 이미지(410)(예: 주어진 이미지)가 제공되는 예를 나타낼 수 있다. 도 4의 예시에서, 예시 화면 <403>은 압축 품질에 따른 이미지 보정 후의 보정 이미지(420)(예: 복구 이미지)가 제공되는 예를 나타낼 수 있다.
일 실시예에 따라, 도 4의 예시에서, 예시 화면 <401>은 주어진 이미지(예: 지정된 압축 품질로 압축된 압축 이미지(410))의 압축 품질이, 예를 들면, JPEG 품질 레벨(quality level)(예: 약 80)인 것을 예로 나타낼 수 있다. 일 실시예에 따라, 도 4의 예시에서, 예시 화면 <403>은 전자 장치(101)가 주어진 이미지(410)에서 JPEG 품질 레벨(예: 약 80)인 것을 분류(classification)(또는 예측)하고, 분류된 압축 품질(예: 품질 레벨: 약 80)에 대응하게 학습된 개선 알고리즘(예: 노이즈 제거 모델)을 적용(예: 이미지 보정)한 예를 나타낼 수 있다.
일 실시예에 따르면, 전자 장치(101)에서 이미지는 대부분 일정 압축 품질(또는 압축률)로 압축되어 제공될 수 있다. 이러한 압축 이미지는, 예시 화면 <401>에 예시한 바와 같이, 압축 품질에 따라 고유한 아티팩트(artifacts)(예: 예시 화면 <401>에서 엘리먼트 430 부분)가 발생할 수 있다. 예를 들면, 이미지는, 압축 품질(예: 비트레이트(bit rate))을 낮추기 위해서 다양한 샘플링(예: chroma subsampling), 블록 크기(block size), 및/또는 근사화(예: 이산코사인변환(DCT, discrete cosine transform) 계수 근사화(coefficient quantization))와 같은 다양한 방법들이 사용될 수 있고, 압축 코덱에 따라 추가로 더 다양한 압축 품질 조절 방법(예: 비트레이트 조절 방법)으로 압축될 수 있다.
일 실시예에 따르면, 전자 장치(101)는 다양한 압축 품질로 이루어진 학습 데이터(예: 다양한 압축 품질 별 이미지들)에서 해당 압축 품질에 나타나는 특유의 아티팩트(또는 노이즈)들의 패턴을 학습(또는 훈련)하고, 이를 제거하는 복수 개의 모델(예: 노이즈 제거 모델)을 심층 신경망(deep neural network)을 통해 학습할 수 있다. 일 실시예에서, 심층 신경망은 입력층(input layer)과 출력층(output layer) 사이에 다중의 은닉층(hidden layer)을 포함하는 인공 신경망(ANN, artificial neural network)을 나타낼 수 있다.
일 실시예에 따르면, 심층 신경망은 다중의 은닉층을 포함하여 다양한 비선형적 관계를 학습할 수 있으며, 딥 러닝(deep learning)의 핵심 모델로 활용되고 있다. 일 실시예에 따르면, 심층 신경망은 알고리즘에 따라 심층 신뢰 신경망(DBN), 심층 오토인코더, 합성곱 신경망(CNN), 및/또는 순환 신경망(RNN)을 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치(101)는 아티팩트(또는 노이즈)들의 패턴에 대해 미리 학습(또는 훈련)된 모델(예: 노이즈 제거 모델)을 다른 전자 장치로부터 전달받거나 또는 서버로부터 획득(예: 다운로드)할 수도 있다.
다양한 실시예들에서는, 다양한 압축 품질 별로 최적화된 노이즈 제거 모델을 매칭할 수 있고, 압축 품질에 대응하는 노이즈 제거 모델을 적용하여 아티팩트(또는 노이즈)(예: 엘리먼트 430)를 제거할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 학습 데이터를 통해서 압축 품질에 따른 아티팩트를 분류할 수 있고, 아티팩트의 패턴을 자동적으로 분석하여, 해당 압축 품질에 대응하는 특유의 아티팩트까지 제거할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 주어지 이미지(예: 예시 화면 <401>의 압축 이미지(410))에 대해 압축 품질을 파악하고, 해당 압축 품질의 아티팩트(또는 노이즈)에 맞게 학습된 노이즈 제거 모델을 적용하여, 사용자에게 아티팩트가 제거된 이미지(예: 예시 화면 <403>의 복구 이미지(420))를 제공할 수 있다.
도 5는 일 실시예에 따른 전자 장치의 동작 방법을 도시하는 흐름도이다.
도 5를 참조하면, 동작 501에서, 전자 장치(101)의 프로세서(120)는 이미지를 포함하는 화면을 표시할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지 및/또는 이미지를 포함하는 컨텐츠를 디스플레이 모듈(160)을 통해 시각적으로 제공할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자 입력에 기반하여, 전자 장치(101)의 메모리(130)에 저장된 이미지 및/또는 외부 장치로부터 수신된 이미지를 포함하는 화면을 표시하도록 디스플레이 모듈(160)을 제어할 수 있다. 일 실시예에 따라, 이미지는 지정된 압축 품질(또는 압축률 또는 압축 레벨)로 압축된 압축 이미지를 나타낼 수 있다.
동작 503에서, 프로세서(120)는 주어진 이미지에 대한 압축 품질(또는 압축률 또는 압축 레벨)을 판단(또는 분류)할 수 있다. 일 실시예에 따르면, 프로세서(120)는 압축 품질을 판단할 때, 주어진 이미지의 전체 영역이 아닌 일부 영역, 예를 들면, 패치(예: 8x8 픽셀(pixel), 16x16 픽셀 또는 64x64 픽셀) 단위)로, 지정된 M개(예: 약 256개)의 패치를 지정된 방식으로(예: 균등하게 또는 랜덤하게) 추출하여 패치 별로 압축 품질을 예측할 수 있다. 예를 들면, 이미지 압축은 이미지를 작은 블록(block)으로 나누고 같은 압축 품질 레벨의 압축 메커니즘(예: chroma subsampling, DCT, Quantization)을 모든 블록에 일괄적으로 적용하는 동작으로 이루어질 수 있다.
예를 들면, 압축 이미지는, 압축 품질(예: 비트레이트(bit rate))를 낮추기 위해서 다양한 샘플링(예: chroma subsampling), 블록 크기(block size), 및/또는 근사화(예: 이산코사인변환(DCT, discrete cosine transform), 계수 근사화(coefficient quantization))와 같은 다양한 압축 메커니즘이 사용될 수 있고, 압축 코덱에 따라 추가로 더 다양한 압축 품질 조절 방법(예: 비트레이트 조절 방법)으로 압축될 수 있다. 압축 이미지는 이미지 전체를 목표 압축 품질을 맞추기 위해 모든 블록에 대해 일정 압축 품질(또는 압축률)로 압축(예: 비슷한 수준의 압축 메커니즘 적용)될 수 있다. 따라서, 이미지에서 적어도 일부 블록만 확인하더라도, 이미지에 대해 전체 압축 품질을 예측할 수 있다.
일 실시예에 따르면, 프로세서(120)는 이미지의 압축 품질 판단 시에, 블록 단위(예: 패치 단위)의 신뢰도 추정에 기반하여 이미지의 압축 품질을 예측할 수 있다. 예를 들면, 프로세서(120)는 주어진 이미지에 대해 블록 단위 신뢰도 추정에 기반하여, 이미지로부터 아웃라이어(outlier)를 제거하고, 이미지에서 압축 품질 예측을 가능하게 하는 영역을 기반으로 압축 품질을 분석할 수 있다. 예를 들면, 프로세서(120)는 입력 패치에서 신뢰도 추정을 통해 아웃라이어에 대응하는 패치는 품질 예측 대상에서 제외하고, 입력 패치 중 아웃라이어의 패치를 제외한 나머지 패치(예: 압축 품질 예측을 가능하게 하는 영역)를 이용하여 압축 품질을 판단할 수 있다.
일 실시예에 따르면, 프로세서(120)는 압축 품질을 판단할 때, 주어진 이미지로부터, 복수 개(예: 지정된 M개)의 패치를 지정된 방식(예: 균등 방식 또는 랜덤 방식)으로 추출하고, 추출된 패치의 신뢰도 추정을 수행할 수 있다. 예를 들면, 프로세서(120)는 다양한 신뢰도 추정 방식에 기반하여, 추출된 패치들의 신뢰도를 추정하여, 신뢰도가 지정된 임계 값 이하인 아웃라이어에 대응하는 적어도 하나의 패치(예: K개의 패치)에 대해, 패치 별 압축 품질의 평균 연산에서 제외할 수 있다. 프로세서(120)는 신뢰도가 지정된 임계 값 초과인 나머지 패치(예: (M-K)개의 패치)에 기반하여 압축 품질을 분석(예: 나머지 패치 별 압축 품질의 평균을 연산)하여, 압축 품질(예: 이미지에 대한 최종 품질(Q))를 분류(또는 결정)할 수 있다. 예를 들면, 프로세서(120)는 이미지에서 아웃라이어를 제거하고, 유의미한 압축 품질 예측을 가능하게 하는 영상 패치에서 획득하는 예측 결과만을 종합하여 이미지의 품질을 보다 정확하고 신속하게 예측할 수 있다.
일 실시예에 따르면, 프로세서(120)는 압축 이미지를 패치 단위(예: 8x8 패치 단위, 16x16 패치 단위 또는 64x64 패치 단위)로 분류 학습 및 예측을 통해 압축 품질을 결정할 수 있다. 예를 들면, 이미지의 압축은, 패치 단위로 이루어질 수 있으므로, 8x8 패치 단위, 16x16 패치 단위 또는 최대로 64x64(예: HEVC의 경우) 패치 단위로 분류가 가능할 수 있다. 이를 통해, 프로세서(120)는 압축이 발생하는 단위인 해당 패치에 집중하여, 전체적인 이미지 특성에 의한 계산 오류를 방지할 수 있다. 또한, 프로세서(120)는 압축 품질을 결정하기 위한 연산의 입력 이미지(input image)의 크기가 작으므로, 기존의 풀링 레이어(pooling layer)를 사용하여 불필요하게 수용 영역(receptive field)을 넓히고 정확성이 떨어질 수 있는 동작을 회피할 수 있다.
일 실시예에 따르면, 프로세서(120)는 이미지의 특성상 압축률을 명확히 반영하지 못하는 영역(예: 아웃라이어)(예: 이미지에서 검은색의 영역 및/또는 저주파 성분의 영역과 같이 압축 여부에 관계 없이 비슷한 특성을 가지는 영역)이 발생할 수 있으므로, 이를 고려하여, 압축 품질 판단 시에, 이미지로부터 아웃라이어를 제거할 수 있다. 예를 들면, 프로세서(120)는 추출된 영역들의 각 압축 품질(또는 점수)들의 평균 값을 계산할 때, 추출된 영역들의 신뢰도를 분석하여, 신뢰도가 지정된 임계 값 이하인 아웃라이어에 대해, 평균 값 계산에서 제외할 수 있다.
동작 505에서, 프로세서(120)는 압축 품질에 대응하게 학습된 모델(예: 노이즈 제거 모델 또는 디노이징 모델)을 선택할 수 있다. 예를 들면, 프로세서(120)는 압축 품질을 사전에 예측하고, 전자 장치(101)에서 해당 압축 품질로 학습된 노이즈 제거 모델(260)을 사용할 수 있다.
일 실시예에 따르면, 프로세서(120)는 메모리(130)에 다양한 압축 품질 별로 미리 학습된 복수의 노이즈 제거 모델(260) 중, 이미지의 압축 품질에 대응하게 학습된 노이즈 제거 모델(260)을 선택할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주어진 이미지에 대해, 제1 압축 품질로 분류하는 경우 제1 압축 품질의 분류에 대응하는 제1 노이즈 제거 모델을 선택할 수 있다. 일 실시예에 따르면, 프로세서(120)는 제2 압축 품질로 분류하는 경우 제2 압축 품질의 분류에 대응하는 제2 노이즈 제거 모델을 선택할 수 있다. 일 실시예에 따르면, 프로세서(120)는 제3 압축 품질로 분류하는 경우 제3 압축 품질의 분류에 대응하는 제3 노이즈 제거 모델을 선택할 수 있다.
어떤 실시예에 따르면, 프로세서(120)는 압축 품질에 대응하게 학습된 노이즈 제거 모델 선택 시, 사용자 의도(또는 선호도 또는 취향), 이미지를 제공하는 서비스 또는 어플리케이션의 종류 및/또는 실제 이미지가 표시될 디스플레이 모듈(160)의 물리적 크기(예: 디스플레이 모듈(160)의 화면 크기) 중 적어도 하나를 더 고려하여, 노이즈 제거 모델을 선택할 수도 있다.
동작 507에서, 프로세서(120)는 선택된 모델에 기반하여 이미지 처리를 수행할 수 있다. 일 실시예에 따르면, 프로세서(120)는 복수의 노이즈 제거 모델(260) 중, 이미지의 압축 품질에 기반하여 선택된 노이즈 제거 모델을 이용하여 이미지 보정을 처리할 수 있다. 일 실시예에 따르면, 프로세서(120)는 선택된 노이즈 제거 모델에 대응하는 보정 강도에 따라 주어진 이미지에서 압축 아티팩트(또는 노이즈)를 제거하여 주어진 이미지(예: 압축 이미지)를 압축 이전의 원본 이미지로 복구할 수 있다.
동작 509에서, 프로세서(120)는 지정된 동작을 처리할 수 있다. 일 실시예에 따라, 프로세서(120)는 보정된 이미지를 표시하도록 디스플레이 모듈(160)을 제어할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주어진 이미지가 대응하는 노이즈 제거 모델에 기반하여 보정된 상태를 표시하도록 디스플레이 모듈(160)을 제어할 수 있다. 어떤 실시예에 따르면, 동작 509의 지정된 동작은, 보정된 이미지를 외부로 전송하거나, 또는 전자 장치(101)의 메모리(130)에 저장하는 동작을 포함할 수 있다.
도 6은 일 실시예에 따른 전자 장치에서 학습하는 동작 예를 도시하는 도면이다.
일 실시예에 따라, 도 6에서는 전자 장치(101)에서 수행하는 사전 학습 동작의 예를 나타낼 수 있다. 어떤 실시예에 따르면, 도 6에 예시한 바와 같은 전자 장치(101)에서 수행하는 사전 학습 동작은, 예를 들면, 다른 환경(예: 개발자 워크스테이션 및/또는 클라우드 환경)에서 수행되고, 전자 장치(101)에서 다운로드 될 수도 있다. 어떤 실시예에 따르면, 전자 장치(101)의 사전 학습 동작에 따른 모델(예: 분류 모델)에 대해, 다른 전자 장치 또는 서버에 의해 미리 학습(또는 훈련)된 모델을 획득(예: 수신 또는 다운로드)할 수도 있다.
도 6을 참조하면, 블록 610에서, 전자 장치(101)의 프로세서(120)는 N개의 품질로 구성된 데이터 세트(dataset)를 생성할 수 있다. 일 실시예에 따르면, 프로세서(120)는 복수 개(예: N개) 클래스의 압축 품질로 구성된 데이터 세트를 생성하기 위해, 이미지들의 채널을 N 단계로 서브샘플링(subsampling), 변환(transform) 및/또는 계수 근사화(coefficients quantization)를 수행할 수 있다.
블록 620에서, 프로세서(120)는 압축 이미지에 기반하여 모델을 학습할 수 있다. 일 실시예에 따르면, 프로세서(120)는 압축 이미지에 대해 학습(예: 블록 630)을 수행할 수 있다. 일 실시예에 따라, 본 개시에서 학습은, 블록 630에 예시한 바와 같이, 대상 노이즈 제거 모델이 변환된 패치의 아티팩트들을 분석하여, 압축 품질 및 그 압축 품질의 신뢰도를 알아낼 수 있도록 하는 학습을 나타낼 수 있다.
블록 640에서, 프로세서(120)는 학습(블록 630)에 따른 1개의 분류 모델을 생성할 수 있다. 일 실시예에 따르면, 프로세서(120)는 학습에 기반하여 생성하는 분류 모델을, 후술하는 도 7의 압축 품질을 예측하는 동작에 이용할 수 있다.
도 7은 일 실시예에 따른 전자 장치에서 압축 품질을 예측하는 동작 방법을 도시하는 흐름도이다.
일 실시예에 따라, 도 7은 전자 장치(101)에서 수행하는 압축 품질을 분류하는 동작의 예를 나타낼 수 있다.
도 7을 참조하면, 동작 701에서, 전자 장치(101)의 프로세서(120)는 이미지를 입력할 수 있다. 일 실시예에 따르면, 프로세서(120)는 개선할 압축 품질의 이미지를 학습 대상의 이미지로 입력할 수 있다.
동작 703에서, 프로세서(120)는 이미지에서 균등한 간격으로 약 M개의 패치를 추출할 수 있다. 일 실시예에 따르면, 프로세서(120)는 입력된 이미지로부터, 예를 들면, 약 256개의 16x16 패치를 균등하게 또는 랜덤하게 추출할 수 있다.
동작 705에서, 프로세서(120)는 분류 모델로 아티팩트를 분석하여 N 단계(예: 아티팩트의 특성에 따른 품질 정보(예: 숫자)) 중 하나의 압축 품질로 구분할 수 있다. 일 실시예에 따르면, 프로세서(120)는 도 6에서 학습(예: 블록 630)에 따라 생성된 분류 모델을 기반으로 대응하는 아티팩트를 분석하여, N 단계의 압축 품질 중 어느 하나의 압축 품질로 분류할 수 있다
동작 707에서, 프로세서(120)는 신뢰도를 이용하여 약 K개의 아웃라이어를 제거할 수 있다. 일 실시예에 따르면, 프로세서(120)는 패치 단위로 신뢰도를 추정하고, 패치 단위 신뢰도 추정에 기반하여, 이미지로부터 아웃라이어를 제거할 수 있다. 예를 들면, 프로세서(120)는 신뢰도 추정을 통해, 신뢰도가 지정된 임계 값 이하인 아웃라이어에 대응하는 패치는 품질 예측 대상에서 제외할 수 있다. 이의 예가 도 8에 예시된다.
동작 709에서, 프로세서(120)는 Y(예: Y = M - K)개의 패치의 품질 결과를 종합하여 이미지의 대표 품질(예: 최종 품질(Q))을 예측할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지에서 추출된 패치(예: M개의 패치)로부터 아웃라이어에 대응하는 적어도 하나의 패치(예: K개의 패치)를 제거하고, 나머지 패치(예: Y개(예: M - K개)의 패치)에서 출력된 결과(예: Y개의 패치 별 압축 품질)를 평균하여 이미지의 대표 품질(또는 최종 품질(Q))을 예측(또는 도출)할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지에 대해 예측된 대표 품질을, 후술하는 압축 아티팩트 제거 및/또는 이미지 보정 동작에서 이미지에 대한 압축 품질의 입력으로 사용할 수 있다.
도 8은 일 실시예에 따른 전자 장치에서 품질 예측을 위한 추론 동작의 예를 설명하기 위해 도시하는 도면이다.
일 실시예에 따라, 도 8은 전자 장치(101)에서 패치 단위의 신뢰도 기반 압축 품질을 예측하는 동작의 예를 나타낼 수 있다.
도 8을 참조하면, 전자 장치(101)는 패치 단위의 신뢰도를 추정하기 위한 학습(learning)을 수행할 수 있다. 일 실시예에 따라, 전자 장치(101)는 패치 단위의 신뢰도를 추정하기 위한 방법으로 다양한 머신 러닝 방법을 이용할 수 있으며, 예를 들면, CNN(convolutional neural network)으로 신뢰도 추정을 구현할 수 있다.
예를 들면, 전자 장치(101)는 임의의 이미지(800)(예: 압축 이미지)가 주어졌을 때, 이미지(800)의 패치(810) 별 신뢰도 인식 CNN(820)을 사용하여, 해당 이미지(800)의 압축 품질 수준을 예측하도록 할 수 있다. 일 실시예에 따라, 도 8의 예시에서는, 주어진 이미지(800)는 이미지(800)의 전체 영역에서 9개의 입력 패치(810)만 검사한다고 가정할 수 있다. 일 실시예에 따르면, 각 입력 패치(810)에는 압축 코딩 블록이 포함될 수 있다. 일 실시예에서, 패치(810)는, 예를 들면, 샘플 패치 추출 모듈(220)을 통해 균일하게 샘플링될 수 있다. 샘플링된 패치는 일괄적인 예측을 위해 CNN(820)에 입력될 수 있고, CNN(820)을 통해, 예를 들면, 9 쌍(pairs)의 품질 결과(예: 품질(quality)(830) 및 신뢰도(confidence)(840))를 산출할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 9 쌍의 품질 결과에서 신뢰도가 지정된 임계 값(예: 약 80%) 이하인 아웃라이어에 대응하는 패치(예: 낮은 신뢰도의 2개의 패치)는 제외할 수 있다. 일 실시예에 따라, 전자 장치(101)는 9 쌍의 품질 결과에서 신뢰도가 지정된 임계 값(예: 약 80%) 초과의 나머지 패치(예: 아웃라이어에 대응하는 패치가 제거된 패치로, 예를 들면, 높은 신뢰도의 7개의 패치)의 품질 결과를 평균할 수 있다. 예를 들면, 도 8의 예시에서, 전자 장치(101)는 7개의 패치에서 출력된 결과(850)를 평균하고, 그 평균 값(예: ‘85’)을 이미지(800)의 대표 품질(또는 최종 품질(Q))을 예측(또는 도출)할 수 있다.
일 실시예에 따른 머신 러닝 방법은 CNN 모델에 한정하지 않으며, 압축 품질의 분류를 위해 이용될 수 있는 다양한 머신 러닝 방법을 이용할 수 있다. 예를 들면, 머신 러닝 방법으로, 심층 신뢰 신경망(DBN, deep belief network), 심층 오토인코더(deep autoencoder), 합성곱 신경망(CNN), 및/또는 순환 신경망(RNN, recurrent neural network)과 같은 다양한 머신 러닝 방법을 포함할 수 있다.
일 실시예에 따르면, 전자 장치(101)는 이미지에 대한 압축 품질의 예측(또는 압축 품질의 클래스 분류)을 수행할 때, 이미지의 모든 패치들을 모두 체크(check)하지 않고, 예를 들면, 샘플 패치 추출 모듈(220)을 이용하여, 예를 들면, 약 256개의 16x16 패치를 추출하고, 추출된 256개에서, 신뢰도 추정을 통해 아웃라이어에 대응하는 패치를 제거하고, 압축 품질의 예측을 가능하게 하는 유의미한 패치를 분류 및 통합하여 이미지에 대한 최종 품질(Q)을 정확하고 신속하게 예측할 수 있다. 예를 들면, 전자 장치(101)는 추출된 영역들에 기반한 최종 품질(Q)을 예측할 때, 추출된 영역들의 신뢰도를 추정하여, 신뢰도가 지정된 임계 값 이하인 영역에 대해, 평균 값 계산에서 제외하고 최종 품질(Q)를 예측할 수 있다.
일 실시예에 따라, 본 개시에서는, 도 8에 예시한 바와 같이, CNN(820)의 품질 결과를, 품질(830)(예: 품질 예측 모듈(250)의 학습에 의한 예측 결과)과 신뢰도(840)(예: 신뢰도 추정 모듈(240)의 학습에 의한 예측 결과)로 구분할 수 있다. 예를 들면, 전자 장치(101)는 각 패치의 품질 예측의 신뢰도를 품질 예측 결과와 Ground Truth 결과의 차이를 기반으로 압축 품질을 예측할 수 있다. 예를 들면, 본 개시에 따르면, 품질 예측 모듈(250)을 학습하는 중에, 동시에 입력 패치에 대한 품질 예측 성능을 계속 측정하고, 해당 품질 예측 모듈(250)이 특정 타입의 입력 패치에 대해 품질 측정 성능이 떨어지는 현상을 통계적으로 파악할 수 있는 신뢰도 추정 모듈(240)도 함께 학습할 수 있다.
예를 들면, CNN(820) 훈련의 경우 이미지(예: raw 이미지)를 일정 수준으로 압축하여 압축 품질의 Ground Truth 레이블을 제공할 수 있지만, 품질 예측에 대한 실제 신뢰도(또는 점수)는 제공할 수 없다. 이하에서는 본 개시에 따라 각 후보 패치(예: 입력 패치)에 대해 예측된 품질 레벨의 신뢰도를 실질적으로 추정하여 제공하는 일 예를 설명한다.
예를 들면, 훈련된 CNN 모델 G(·)가 주어진 입력 패치(input patch) x의 압축 품질(예:
Figure PCTKR2022014632-appb-img-000001
)을 정확하게 예측할 수 있다고 가정하면, 주어진 입력 패치 xi의 실제 신뢰도 ci는 아래 <수학식 1>과 같이 근사화될 수 있다.
Figure PCTKR2022014632-appb-img-000002
<수학식 1>에서,
Figure PCTKR2022014632-appb-img-000003
는 주어진 i번째 입력 패치 xi의 예측된 품질(predicted quality)을 나타내고, qi는 실제 품질(true quality)을 나타내며, m은 최대 품질 레벨(maximum quality level)을 나타낼 수 있다. 예를 들면, m은 libjpeg-turbo의 경우 100으로 설정될 수 있고, FFmpeg의 경우 51로 설정될 수 있다.
따라서, CNN 모델 G(·)(예: 품질 예측 모듈(250))와 <수학식 1>을 이용하여, 또 다른 신뢰도 추정 모듈(240)을 훈련할 수 있다.
Figure PCTKR2022014632-appb-img-000004
<수학식 2>에서
Figure PCTKR2022014632-appb-img-000005
는 입력 패치 x에 대해 추정된 신뢰도(estimated confidence)를 나타낼 수 있다. 예를 들면, L1 손실(loss)이 CNN 모델 H(·)(예: 신뢰도 추정 모듈(240)) 훈련에 사용되는 것을 가정하면, H(·)은 각 후보 패치(예: 입력 패치)에 대한 신뢰도 측정 값에서 평균 편차(average deviation)가 가장 작은 중간 값(median number) z를 추정할 수 있다.
Figure PCTKR2022014632-appb-img-000006
하지만, G(·)와 H(·)의 2개의 네트워크를 사용하는 종래의 방법은 2개의 학습 단계(two learning stages)와 2개의 추론(two inferences)이 필요하다는 점에서 비효율적일 수 있다. 따라서, 본 개시에서는 품질 예측과 신뢰도 추정이라는 2개의 작업(two tasks)이 많은 공통 특징(common features)를 공유할 수 있으므로 아래 <수학식 4>와 같이, 하나의 네트워크에서 품질(830)과 신뢰도(840)를 모두 출력할 수 있도록 네트워크 F(·)를 구현할 수 있다.
Figure PCTKR2022014632-appb-img-000007
<수학식 4>에서, F(x)1 및 F(x)2는 각각 F(x)의 첫 번째 및 두 번째 출력 유닛(output units)을 나타낼 수 있다. 결과적으로, 아래 <수학식 5>와 같은 손실 함수(loss function)가 채택될 수 있다.
Figure PCTKR2022014632-appb-img-000008
<수학식 5>에서, Fθ는 파라미터 세트(parameter set) θ가 있는 신뢰도 인식(confidence-aware) CNN을 나타낼 수 있다. 본 개시에서, 신뢰도 추정은 입력을 신뢰할 수 있는 패치(예: 이미지에서 아웃라이어 영역)와 신뢰할 수 없는 패치(예: 이미지에서 유의미한 압축 품질 예측이 가능한 영역)의 2가지 카테고리(two categories)로 분류하는 데 사용될 수 있다. 또한, 품질 예측은 보다 정확한 품질 출력이 요구될 수 있다. 일 실시예에서는, 품질이 아닌 신뢰도의 상대적 중요성을 반영하는 파라미터 λ를 0.5로 실험적으로 설정하고, 그에 따른 결과는 아래와 같이 나타낼 수 있다. 다른 실시예에 따르면, 파라미터 λ를 0.25와 같이 0.5 보다 작은 경우에서도 비슷한 결과가 획득되는 것을 실험적으로 확인할 수 있다.
일 실시예에 따라, <수학식 1> 내지 <수학식 5>는 CNN(820)의 출력 유닛을 품질(830)과 신뢰도(840)로 구분하는 배경과 학습을 하기 위한 손실 함수(loss function)를 설계하는 지에 대한 예시를 나타낼 수 있고, 이러한 예시는 본 개시의 이해를 돕기 위한 것일 뿐, 본 개시의 실시예를 제한하는 것은 아니다.
일 실시예에 따라, 아래 <표 1> 및 <표 2>는 본 개시에 따른 품질 예측 방법을 이용한 실험 결과의 예를 나타낼 수 있다. 예를 들면, <표 1>은 JPEG 코덱을 사용한 경우의 실험 결과의 일 예를 나타내고, <표 2>는 H.264 코덱을 사용한 경우의 일 예를 나타낼 수 있다. 본 개시에 따른 품질 예측 방법(예: <표 1> 및 <표 2>의 예시에서 제5 방법)에 따르면, 입력 패치의 신뢰도를 추정하여 압축 품질을 측정하였을 때 기존의 다른 방법(예: 제1 방법 내지 제4 방법) 보다 비슷하거나 빠른 시간으로 보다 정확한 압축 품질 예측 결과를 획득하는 것을 알 수 있다. 일 실시예에서, 제1 방법은, MobileNetV2 알고리즘을 나타낼 수 있고, 제2 방법은 EfficientNet 알고리즘을 나타낼 수 있고, 제3 방법은 블록 단위 기반 Naive 알고리즘을 나타낼 수 있고, 제4 방법은 블록 단위 기반 Sobel 알고리즘을 나타낼 수 있고, 제5 방법은 본 개시의 품질 예측 방법(예: ‘Q1Net’이라 명명)의 알고리즘을 나타낼 수 있다.
<표 1> 및 <표 2>는 데이터 세트에 대한 성능 비교를 나타낸 것으로, 각 방법의 평균 절대 오차(MAE, mean absolute error), 오차의 표준 편차(SDE, stand deviation of errors), 레이턴시(latency), 및/또는 모델 크기(model size)를 비교하여 총 224x224 또는 256x256 입력 픽셀로 주요 실험 결과의 요약을 나타낼 수 있다. 예를 들면, 1에서 100까지의 품질 레벨을 예측하는 작업에서, 제5 방법은 JPEG의 경우 약 10ms의 처리 시간으로 약 0.43의 MAE로 우수한 예측 성능을 달성하고, 약 0.42의 SDE로 높은 신뢰도를 달성하는 것을 나타내고, H.264의 경우 약 18ms의 처리 시간으로 약 0.48dml MAE로 우수한 예측 성능을 달성하고, 약 0.51의 SDE로 높은 신뢰도를 달성하는 것을 나타낼 수 있다. <표 1> 및 <표 2>에 예시한 바와 같이, 제5 방법은, 기존의 제1 방법 내지 제4 방법과 비교하여, 상대적인 우위의 성능을 가지며, 보다 정확하고 빠른 품질 예측 결과를 도출할 수 있다.
Method 제1 방법 제2 방법 제3 방법 제4 방법 제5 방법
MAE 1.16 2.24 1.28 0.46 0.43
SDE 1.43 2.29 5.79 0.50 0.42
Time (ms) 7 12 9 14 10
#Params 2.32 M 4.13 M 125 K 125 K 125 K
Method 제1 방법 제2 방법 제3 방법 제4 방법 제5 방법
MAE 0.58 0.56 1.01 0.77 0.48
SDE 0.52 0.6 2.16 0.87 0.51
Time (ms) 7 12 18 21 18
#Params 2.32 M 4.13 M 208 K 208 K 208 K
본 개시에 따른 품질 예측 방법에 따르면, CNN의 입력을 압축 코딩 블록의 크기로 줄일 수 있다. 기존 이미지 분류에 사용되던 입력 사이즈는 224x224 정도의 크기이지만, 압축에 사용하는 코딩 블록의 사이즈는 그 보다 훨씬 작을 수 있다. 예를 들면, JPEG의 경우 8x8이고, H.264의 경우 가장 큰 코딩 블록 사이즈는 16x16일 수 있다. 따라서 본 개시에 의하면 CNN의 입력 크기를 효과적으로 줄일 수 있고 CNN 크기가 줄어들기 때문에 CNN의 파라미터 개수도 줄일 수 있다. 일 실시예에 따라, 머신 러닝 모델의 파라미터 개수가 적을 수록 계산 량도 줄어들기 때문에, 단일 블록을 기준으로 할 때, 추론(inference) 시 기존의 이미지 분류 네트워크보다 훨씬 낮은 지연 속도(algorithm latency)를 가질 수 있다.
또한, 본 개시에 의하면, 추론하는 블록(또는 패치)의 개수를 가변적으로 받아들여 컴퓨팅 능력이 상대적으로 약한 오래된 전자 장치나 저가 전자 장치에서도 효과적이고도 정확하게 압축 품질 측정이 가능하다. 또한, 본 개시에 의하면, 초해상도(super resolution)와 같은 이미지에서, 이미지의 화질 개선 전에 사용되어 아티펙트(또는 노이즈)가 증폭되는 것을 사전에 방지할 수 있고, 또는 브라우저에 적용되어 외부 서버(예: 인터넷)로부터 수신 받은 고압축 저화질 이미지의 개선 필요 여부 및 개선 강도를 빠르게 파악할 수 있는 효과가 있다.
일 실시예에 따르면, 압축 이미지의 화질 개선을 위한 아티펙트 제거는 디테일 보존과 ‘트레이드 오프’ 관계일 수 있다. 예를 들면, 아티펙트 제거를 완벽하게 하는 경우 이미지의 디테일이 사라질 수 있고, 디테일을 유지하는 경우 아티펙트를 제거하지 못할 수 있다. 따라서, 이미지에서 아티펙트를 제거할수록 디테일이 사라질 수 있고 보다 블러한 이미지를 얻을 수 있게 된다. 이에, 본 개시에 따른 품질 예측 방법에 따라 추론된 화질 값(예: 블록 단위의 신뢰도 추정에 기반하여 예측된 최종 품질(Q))을 이용하여, 아티펙트 제거를 위한 노이즈 제거 모델의 선택하는 성능을 향상(예: 정확한 압축 품질에 대응하는 정확한 노이즈 제거 모델 선택 가능)할 수 있고, 결과적으로 이미지의 전체 품질을 향상할 수 있다.
도 9는 일 실시예에 따른 전자 장치에서 아티팩트를 제거하는 동작 방법을 도시하는 흐름도이다.
일 실시예에 따라, 도 9는 전자 장치(101)에서 분류된 압축 품질에 대응하게 학습된 노이즈 제거 모델에 기반하여 아티팩트를 제거하는 동작의 예를 나타낼 수 있다.
도 9를 참조하면, 동작 901에서, 전자 장치(101)의 프로세서(120)는 이미지를 입력할 수 있다. 일 실시예에 따르면, 프로세서(120)는 개선할 압축 품질의 이미지(예: 도 7의 학습 대상의 이미지)를 압축 아티팩트 제거 대상의 이미지로 입력할 수 있다.
동작 903에서, 프로세서(120)는 예측된 대표 품질을 입력할 수 있다. 일 실시예에 따르면, 프로세서(120)는 도 7에서 예측된 대표 품질을 아티팩트 제거 대상의 이미지의 압축 품질로 입력할 수 있다.
동작 905에서, 프로세서(120)는 대표 품질을 기반으로 N개의 노이즈 제거 모델 중 하나를 선택할 수 있다. 일 실시예에 따르면, 프로세서(120)는 다양한 압축 품질 별로 미리 학습된 N개의 변형 모델 중, 주어진 이미지의 대표 품질에 대응하게 학습된 노이즈 제거 모델(예: translation model i)을 선택할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주어진 이미지에 대해, 제1 압축 품질로 분류하는 경우 제1 압축 품질의 분류에 대응하는 제1 노이즈 제거 모델을 선택할 수 있고, 제2 압축 품질로 분류하는 경우 제2 압축 품질의 분류에 대응하는 제2 노이즈 제거 모델을 선택할 수 있고, 제3 압축 품질로 분류하는 경우 제3 압축 품질의 분류에 대응하는 제3 노이즈 제거 모델을 선택할 수 있다
동작 907에서, 프로세서(120)는 선택된 노이즈 제거 모델에 기반하여 이미지 처리를 수행할 수 있다. 일 실시예에 따르면, 프로세서(120)는 복수의 노이즈 제거 모델 중, 이미지의 압축 품질(예: 대표 품질)에 기반하여 선택된 노이즈 제거 모델을 이용하여 이미지 보정을 처리할 수 있다. 일 실시예에 따르면, 프로세서(120)는 선택된 노이즈 제거 모델에 대응하는 보정 강도에 따라 주어진 이미지(예: 압축 이미지)에서 압축 아티팩트(또는 노이즈)를 제거하여 주어진 이미지(예: 압축 이미지)를 압축 이전의 원본 이미지로 복구할 수 있다. 예를 들면, 프로세서(120)는 압축 이미지를 원본 품질의 이미지(예: 원본 이미지)로 복구할 수 있다.
도 10은 일 실시예에 따른 전자 장치에서 이미지를 압축하는 동작 방법을 도시하는 흐름도이다.
일 실시예에 따라, 도 10은 압축 이미지를 다시 압축(또는 인코딩)(예: 2차 압축)하는 동작의 예를 나타낼 수 있다.
도 10을 참조하면, 동작 1001에서, 전자 장치(101)의 프로세서(120)는 이미지를 제공할 수 있다. 일 실시예에 따르면, 프로세서(120)는 사용자 선택에 대응하는 압축 이미지를 표시하거나, 또는 적어도 하나의 압축 이미지를 포함하는 이미지 리스트를 표시할 수 있다.
동작 1003에서, 프로세서(120)는 이미지의 압축을 위한 사용자 입력을 수신할 수 있다. 일 실시예에 따르면, 프로세서(120)는 제공된 이미지(또는 사용자에 의해 선택된 적어도 하나의 이미지)에 대한 압축을 실행하도록 하는 사용자 입력을 감지할 수 있다. 일 실시예에서, 사용자 입력은, 이미지의 저장 명령, 메뉴 기반의 압축 명령 및/또는 압축을 위한 지정된 객체 기반의 선택에 기반하여 입력될 수 있다. 예를 들면, 사용자는 지정된 어플리케이션(예: 갤러리 어플리케이션 또는 이미지 편집 어플리케이션)을 통해 이미지를 편집(예: 자르기(crop), 회전, 밝기 조정, 해상도 조정, 색감 조정, 선명도 조정, 크기 조정, 포맷 변경 및/또는 효과 설정)할 수 있고, 편집된 이미지를 저장하고자 할 수 있다.
동작 1005에서, 프로세서(120)는 이미지의 제1 압축 시의 아티펙트를 제거할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지의 압축에 관련된 사용자 입력을 수신하고, 사용자 입력에 기반하여 이미지의 이전 압축(예: 제1 압축)에 관련된 제1 압축 품질을 식별할 수 있다. 일 실시예에 따라, 프로세서(120)는 제1 압축 품질에 대응하는 노이즈 제거 모델에 기반하여, 제1 압축 시 발생한 아티펙트(예: 이미지에서 고주파 성분 영역의 아티펙트)를 제거할 수 있다.
동작 1007에서, 프로세서(120)는 제1 압축에 관련된 제1 압축 품질에 기반하여 제2 압축 품질을 결정할 수 있다. 일 실시예에 따르면, 프로세서(120)는 품질 예측 모듈(250)을 이용하여 2차 인코딩을 위한 품질 파라미터를 결정할 수 있다. 예를 들면, 프로세서(120)는 압축 이미지가 편집된 후 다시 인코딩(예: 제2 압축)하는 경우, 이미지의 압출 품질(또는 압축 레벨)을 다시 결정할 수 있다.
예를 들면, 한번 저품질(low quality)로 인코딩된 이미지는, 다시 고품질(high quality)로 인코딩 하더라도 디그레데이션(degradation)된 디테일은 다시 복원되지 않을 수 있다. 예를 들면, 제2 압축에 관련된 제2 압축 품질을 제1 압축에 관련된 제1 압축 품질 보다 높게 설정하더라도, 제1 압축에 의해서 이미 손실된 정보(예: 고주파 성분 정보)는 복원할 수 없다. 따라서, 프로세서(120)는 제2 압축 품질의 최대치를 제1 압축 품질과 비슷한 수준의 압축 품질로 설정할 수 있다. 예를 들면, 이미지의 제1 압축 품질이 약 70으로 제1 압축된 경우, 제2 압축 품질은 약 80 이상으로 설정하지 않을 수 있다. 여기서, 압축 품질의 숫자가 높을수록 더 좋은 화질이 도출될 수 있다.
일 실시예에 따르면, 프로세서(120)는 이미지의 제2 압축 시, 원본(예: 제1 압축 품질)과 비슷한 압축 품질(예: 제1 압축 품질 보다 상대적으로 약간의 높은 압축 품질)로 인코딩함으로써, 이미지의 파일 크기를 줄일 수 있고, 보관 크기를 줄일 수 있다.
동작 1009에서, 프로세서(120)는 제2 압축 품질에 기반하여 이미지에 대한 제2 압축을 수행할 수 있다. 예를 들면, 이미지는 제1 압축에서 생성된 압축 아티펙트로 인하여 고주파 성분이 발생할 수 있고, 해당 고주파 성분을 압축하는 과정에서 또 다른 아티펙트가 발생할 수 있다. 따라서, 프로세서(120)는 제2 압축 이전에 제1 압축 시의 압축 아티펙트를 제거한 후, 제2 압축을 수행할 수 있다.
동작 1011에서, 프로세서(120)는 이미지를 저장할 수 있다. 예를 들면, 프로세서(120)는 제2 압축에 따라 생성되는 이미지를 메모리(130)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지를 저장할 때, 원본 이미지를 대체하여 저장하거나, 원본 이미지와 별도의 이미지로 저장할 수 있다.
도 11은 일 실시예에 따른 전자 장치에서 이미지 보정에 대한 정보를 제공하는 동작 방법을 도시하는 흐름도이다.
도 12는 일 실시예에 따른 전자 장치에서 이미지 보정에 대한 정보를 제공하는 사용자 인터페이스 및 그 동작 예를 도시하는 도면이다.
일 실시예에 따라, 도 11 및 도 12는 지정된 어플리케이션(예: 갤러리 어플리케이션 또는 이미지 편집 어플리케이션)에서 제공된 이미지에 대한 보정 정보(예: 압축 품질 스코어(또는 레벨), 보정 영역 노티 객체 및/또는 보정 상세 정보)를 제공하는 동작의 예를 나타낼 수 있다.
도 11을 참조하면, 동작 1101에서, 전자 장치(101)의 프로세서(120)는 이미지를 포함하는 화면을 표시할 수 있다. 일 실시예에 따르면, 프로세서(120)는 지정된 어플리케이션을 실행하고, 지정된 어플리케이션에 기반하여 이미지를 디스플레이 모듈(160)을 통해 시각적으로 제공할 수 있다. 예를 들면, 도 12에 예시한 바와 같이, 프로세서(120)는 갤러리 어플리케이션을 통해 사용자에 의해 선택된 이미지(1200)를 포함하는 화면을 표시하도록 디스플레이 모듈(160)을 제어할 수 있다. 일 실시예에 따라, 이미지(1200)는 지정된 압축 품질(또는 압축률 또는 압축 레벨)로 압축된 압축 이미지를 나타낼 수 있다.
동작 1103에서, 프로세서(120)는 이미지 품질에 관련된 정보를 요청하는 사용자 입력을 수신할 수 있다. 일 실시예에 따르면, 프로세서(120)는 제공된 이미지에 대한 보정 정보(예: 압축 품질 스코어(또는 레벨), 보정 영역 노티 객체 및/또는 보정 상세 정보)를 제공하도록 명령하는 사용자 입력을 감지할 수 있다. 일 실시예에서, 사용자 입력은, 메뉴 기반의 요청 명령 및/또는 보정 정보 제공을 위한 지정된 객체 기반의 선택에 기반하여 입력될 수 있다.
예를 들면, 도 12에 예시한 바와 같이, 프로세서(120)는 갤러리 어플리케이션에서, 이미지에 대한 보정 정보를 제공하는 기능(예: AI 리마스터 기능)을 실행하도록 지정된 기능 실행 객체(1210)를 통해 사용자 입력을 감지할 수 있다. 일 실시예에서, 이미지에 대한 보정 정보를 제공하는 기능(예: AI 리마스터 기능)은 이미지에 대해 AI로 자동 보정(예: 화질 개선)하고, 자동 보정에 대한 보정 정보를 제공하는 기능을 나타낼 수 있다.
일 실시예에 따르면, 전자 장치(101)는 이미지(1200)가 표시된 화면의 지정된 영역(예: 화면 우측 상단 영역, 화면 좌측 상단 영역, 또는 화면 중앙 하단 영역)을 통해 리마스터 기능 실행을 을 위한 지정된 기능 실행 객체(1210)를 제공할 수 있다. 일 실시예에 따르면, 프로세서(120)는 기능 실행 객체(1210)를 이용한 사용자 입력에 기반하여 리마스터 기능을 실행하고 도 12에 예시한 바와 같은 사용자 인터페이스를 제공할 수 있다. 어떤 실시예에 따르면, 프로세서(120)는 갤러리 어플리케이션에서, 메뉴 진입을 통해 이미지에 대한 보정 정보를 제공하는 기능을 실행하도록 지정된 옵션을 선택하는 사용자 입력을 감지할 수 있다.
동작 1105에서, 프로세서(120)는 분류 동작에서 높은 신뢰도를 갖는 패치를 식별할 수 있다. 일 실시예에 따르면, 프로세서(120)는 주어진 이미지에서, 압축 품질을 분류하는 동작(예: 블록 단위의 신뢰도 기반 압축 품질 예측 동작)에서 추출된 패치(예: 패치의 위치 또는 영역)를 식별할 수 있다.
동작 1107에서, 프로세서(120)는 식별된 패치 주변에서 지정된 개수의 샘플을 추가 추출할 수 있다. 일 실시예에 따르면, 프로세서(120)는 추출된 패치(예: 패치의 위치 또는 영역)의 주변에서, 품질(예: 도 8의 품질(830))과 신뢰도(예: 도 8의 신뢰도(840))를 측정하기 위한 지정된 개수(예: 약 A개)의 샘플을 추가로 추출할 수 있다.
동작 1109에서, 프로세서(120)는 품질 및 신뢰도를 판단할 수 있다. 일 실시예에 따르면, 프로세서(120)는 추출된 패치 및 추출된 패치의 주변에서 추가로 추출된 샘플에 기반하여 품질 및 신뢰도를 측정할 수 있다.
동작 1111에서, 프로세서(120)는 이미지의 대표 품질(예: 최종 품질(Q))에 대응하는 패치를 군집화(clustering)할 수 있다. 일 실시예에 따르면, 프로세서(120)는 동작 1109에서 측정된 품질 및 신뢰도에 따른 압축 품질과 이미지의 대표 품질을 비교하여, 추출된 패치들 중 이미지의 대표 품질에 대응하는 압축 품질을 가지면서, 다른 패치와 비교하여 상대적으로 높은 신뢰도를 갖는 패치를 군집화할 수 있다.
동작 1113에서, 프로세서(120)는 이미지에서 군집화된 부분(또는 영역)에 기반하여 지정된 노티 객체를 제공할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지에서 군집화된 부분을 통해 지정된 컬러의 점선 및/또는 오버레이된 마스크를 제공할 수 있다. 예를 들면, 도 12에 예시한 바와 같이, 프로세서(120)는 주어진 이미지(1200)에서, 군집화된 부분에 대하여 노티 객체(1230)(예: 노란색 점선 객체)를 제공하여, 이미지 보정 부분에 대한 정보를 사용자에게 제공할 수 있다. 일 실시예에서, 노티 객체(1230)는 주어진 이미지에서 군집화된 부분(예: 보정된 영역)을 사용자에게 직관적으로 노티하기 위한 객체를 나타낼 수 있다.
동작 1115에서, 프로세서(120)는 이미지 보정에 대한 상세 정보(예: 이미지에 대한 압축 품질과 관련된 정보(또는 화질 알림 정보))를 제공할 수 있다. 일 실시예에 따르면, 프로세서(120)는 이미지에 기반한 노티 객체와 함께, 이미지 보정에 대한 상세 정보(예: 전체 스코어 및 이미지가 현재 화질로 분류된 이유 설명)를 제공할 수 있다. 예를 들면, 도 12에 예시한 바와 같이, 프로세서(120)는 이미지(1200)의 보정 결과에 관한 상세 정보(1250)(예: ‘이 사진의 압축 품질은 50입니다. 노란색 부분을 통해서 정확도 99%로 판단되었습니다. 판단 결과로 이미지 확대 전에 압축 노이즈를 제거하였습니다.’와 같은 안내 텍스트)를 제공할 수 있다. 예를 들면, 이미지(1200)의 압축 품질에 대한 전체 스코어(예: ‘50’)를 표시하면서 해당 화질로 분류된 이유를 사용자에게 가이드할 수 있다.
일 실시예에 따르면, 프로세서(120)는 지정된 어플리케이션(예: 갤러리 어플리케이션, 이미지 편집 어플리케이션 또는 웹 페이지 어플리케이션)에서 제공된 이미지에 대한 보정 정보(예: 압축 품질 스코어(또는 레벨), 보정 영역 노티 객체 및/또는 보정 상세 정보)를 제공할 때, 다양한 지정된 조건에 따라 다양하게 제공할 수 있다. 일 실시예에 따르면, 프로세서(120)는 지정된 어플리케이션의 종류 및/또는 메뉴의 뎁스(depth)를 판단하고, 지정된 어플리케이션의 종류 및/또는 메뉴의 뎁스에 기반하여 보정 대상 정보 및 그에 따른 보정 정보를 다르게 제공할 수 있다. 예를 들면, 프로세서(120)는 지정된 어플리케이션의 종류 및/또는 메뉴의 뎁스에 따라, 어떤 대상 정보(예: 해상도, 밝기, 색감, 및/또는 선명도)를 어느 정도 상세하게 제공할 지를 판단하고, 판단 결과에 따라 보정 정보를 다른 방식으로 제공할 수 있다.
일 실시예에 따르면, 프로세서(120)는 제1 어플리케이션(예: 갤러리 어플리케이션)에서 선택 이미지에 대한 리마스터 기능을 실행하는 경우, 메뉴의 뎁스가 최소의 제1 뎁스(예: 약 1 뎁스)에 해당할 수 있고, 모든 대상 정보(예: 해상도, 밝기, 색감, 및/또는 선명도)에 대해 보정하고, 보정 결과에 대한 보정 정보(예: 모든 대상 정보에 기초한 보정 정보)를 제공할 수 있다. 예를 들면, 프로세서(120)는 이미지에서 보정 정보에 대응하는 각각의 부분에서 해상도, 밝기, 색감, 및/또는 선명도가 어느 정도로 보정되었는지에 대한 보정 정보(예: 예: 압축 품질 스코어, 보정 영역 노티 객체 및/또는 보정 상세 정보)를 제공할 수 있다.
다른 실시예에 따르면, 프로세서(120)는 제2 어플리케이션(예: 이미지 편집 어플리케이션)에서 선택 이미지에 대한 리마스터 기능을 실행하는 경우, 메뉴의 뎁스가 제1 뎁스 보다 많은 제2 뎁스(예: 약 2 내지 약 3 뎁스)에 해당할 수 있고, 모든 대상 정보(예: 해상도, 밝기, 색감, 및/또는 선명도) 중 지정된 일부 대상 정보(예: 밝기, 색감, 선명도)에 대해 보정하고, 보정 결과에 대한 보정 정보(예: 일부 대상 정보에 기초한 보정 정보)를 제공할 수 있다. 예를 들면, 프로세서(120)는 이미지에서 보정 정보에 대응하는 각각의 부분에서 밝기, 색감, 및/또는 선명도가 어느 정도로 보정되었는지에 대한 보정 정보(예: 예: 압축 품질 스코어, 보정 영역 노티 객체 및/또는 보정 상세 정보)를 제공할 수 있다.
다른 실시예에 따르면, 프로세서(120)는 제3 어플리케이션(예: 웹 페이지 어플리케이션)에서 선택 이미지에 대한 리마스터 기능을 실행하는 경우, 메뉴의 뎁스가 제2 뎁스 보다 많은 제3 뎁스(예: 약 3 내지 약 4 뎁스)에 해당할 수 있고, 모든 대상 정보(예: 해상도, 밝기, 색감, 및/또는 선명도) 중 지정된 최소의 대상 정보(예: 밝기, 색감)에 대해 보정하고, 보정 결과에 대한 보정 정보(예: 최소의 대상 정보에 기초한 보정 정보)를 제공할 수 있다. 예를 들면, 프로세서(120)는 이미지에서 보정 정보에 대응하는 각각의 부분에서 밝기 및/또는 색감이 어느 정도로 보정되었는지에 대한 보정 정보(예: 예: 압축 품질 스코어, 보정 영역 노티 객체 및/또는 보정 상세 정보)를 제공할 수 있다.
일 실시예에 따르면, 프로세서(120)는 이미지 보정에 대한 상세 정보(1250)를 제공할 때, 도 12에 예시한 바와 같이, 이미지(1200)의 표시 위치를 변경하고 화면 분할에 기반하여 별도의 윈도우를 통해 상세 정보(1250)를 제공할 수 있다. 다른 실시예에 따르면, 프로세서(120)는 이미지(1200)의 표시 위치를 고정된 상태에서, 이미지(1200) 상에 팝업 윈도우 또는 오버레이를 통해 상세 정보(1250)를 제공할 수도 있다.
본 개시에 따르면, 전자 장치(101)는 지정된 어플리케이션(예: 갤러리 어플리케이션)을 통해 이미지를 제공할 때, AI가 이미지를 자동 분석하여, 예를 들면, 저화질의 이미지를 고화질의 이미지로 자동 보정하여 제공(예: 리마스터 기능 제공)할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 리마스터 기능을 제공할 때, 이미지가 어떤 이유에 의해서 개선되었는지에 대한 상세 정보(또는 설명)를 제공할 수 있다. 이를 통해, 사용자는 해당 이미지가 어떤 이유로 이미지의 품질 평가(또는 화질 개선)되었는지 보다 상세히 가이드 할 수 있다. 예를 들면, 전자 장치(101)는 해당 이미지의 스코어를 명시적으로 표시하고, 신뢰도가 높은 부분의 스코어를 제공함으로써, 이미지의 어떤 부분 때문에 주어진 이미지를 특정 디그레데이션(degradation)이 있다고 판단했는지 사용자에게 제공할 수 있다. 예를 들면, 전자 장치(101)는 이미지 상의 노티 객체(1230) 및 이미지의 스코어와 이미지에서 디그레데이션 판단에 대한 알림 정보를 포함하는 상세 정보(1250)를 직관적으로 제공하여, 사용자가 이미지 개선 이유를 보다 자세히 이해할 수 있도록 제공할 수 있다.
본 개시의 일 실시예에 따른 전자 장치(101)에서 수행하는 동작 방법은, 전자 장치의 디스플레이 모듈을 통해 이미지를 표시하는 동작, 상기 이미지에서 지정된 복수 개의 블록을 지정된 방식으로 추출하는 동작, 상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하는 동작, 신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측 제외 대상인 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하는 동작, 상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하는 동작, 및 상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 압축 품질을 분류하는 동작은, 상기 추출된 복수 개의 블록에 대해, 블록 단위의 신뢰도 추정에 기반하여, 지정된 임계 값 이하의 아웃라이어에 대응하는 적어도 하나의 제1 블록을 추정하는 동작, 상기 적어도 하나의 제1 블록을 압축 품질 분류를 위한 평균 연산에서 제외하는 동작, 지정된 임계 값 초과의 적어도 하나의 제2 블록에 기반하여 압축 품질 분류를 위한 평균 연산을 수행하는 동작, 평균 연산의 결과를 상기 이미지에 대한 압축 품질로 분류하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 전자 장치에서 수행하는 동작 방법은, 다양한 압축 품질 별로 미리 학습된 복수의 노이즈 제거 모델을 저장하는 동작, 상기 복수의 노이즈 제거 모델 중 상기 이미지에 대해 분류된 압축 품질에 대응하게 학습된 노이즈 제거 모델을 선택하는 동작, 상기 선택된 노이즈 제거 모델에 기반하여 상기 이미지에 대한 화질 개선을 처리하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 전자 장치에서 수행하는 동작 방법은, 상기 이미지의 이미지 품질에 관련된 정보를 요청하는 사용자 입력을 수신하는 동작, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지에 대한 보정 정보를 상기 이미지에 기반하여 표시하도록 디스플레이 모듈을 제어하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 전자 장치에서 수행하는 동작 방법은, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지의 대표 품질에 대응하는 압축 품질을 갖는 적어도 하나의 블록을 식별하는 동작, 상기 이미지에서, 상기 식별된 블록에 대응하는 부분에 기반하여 지정된 노티 객체를 제공하는 동작, 상기 노티 객체와 함께, 상기 이미지 보정에 대한 전체 스코어 및 분류에 대한 설명을 포함하는 상세 정보를 표시하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 전자 장치에서 수행하는 동작 방법은, 상기 이미지의 압축을 위한 사용자 입력을 수신하는 동작, 상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지의 제1 압축 시 발생된 아티펙트를 제거하는 동작, 상기 제1 압축에 관련된 제1 압축 품질에 기반하여 상기 제2 압축을 위한 제2 압축 품질을 결정하는 동작, 상기 제2 압축 품질에 기반하여 이미지에 대한 제2 압축을 수행하는 동작을 포함할 수 있다.
본 명세서와 도면에 개시된 본 개시의 다양한 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 따라서 본 개시의 범위는 여기에 개시된 실시예들 이외에도 본 개시의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 전자 장치에 있어서,
    디스플레이 모듈;
    메모리; 및
    상기 디스플레이 모듈 및 상기 메모리와 작동적으로 연결된 프로세서를 포함하고, 상기 프로세서는,
    상기 디스플레이 모듈을 통해 이미지를 표시하도록 제어하고,
    상기 이미지에서 지정된 복수 개의 블록을 지정된 방식으로 추출하고,
    상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하고,
    신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측 제외 대상인 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하고,
    상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하고, 및
    상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하도록 설정된 전자 장치.
  2. 제1항에 있어서, 상기 이미지는,
    지정된 압축 품질로 압축된 압축 이미지인 것을 특징으로 하는 전자 장치.
  3. 제1항에 있어서, 상기 프로세서는,
    상기 추출된 복수 개의 블록에 대해, 블록 단위의 신뢰도 추정에 기반하여, 지정된 임계 값 이하의 아웃라이어에 대응하는 적어도 하나의 제1 블록을 추정하고,
    상기 적어도 하나의 제1 블록을 압축 품질 분류를 위한 평균 연산에서 제외하고,
    지정된 임계 값 초과의 적어도 하나의 제2 블록에 기반하여 압축 품질 분류를 위한 평균 연산을 수행하고,
    평균 연산의 결과를 상기 이미지에 대한 압축 품질로 분류하도록 설정된 전자 장치.
  4. 제1항에 있어서, 상기 프로세서는,
    상기 이미지에 대해 분류된 압축 품질에 대응하게 학습된 노이즈 제거 모델을 선택하고,
    상기 선택된 노이즈 제거 모델에 기반하여 상기 이미지에 대한 화질 개선을 처리하고,
    개선된 이미지를 지정된 동작에 기반하여 처리하도록 설정된 전자 장치.
  5. 제4항에 있어서, 상기 프로세서는,
    다양한 압축 품질 별로 미리 학습된 복수의 노이즈 제거 모델을 상기 메모리에 저장하고,
    상기 복수의 노이즈 제거 모델 중 상기 이미지의 압축 품질의 분류에 대응하게 학습된 노이즈 제거 모델을 선택하도록 설정된 전자 장치.
  6. 제4항에 있어서, 상기 프로세서는,
    개선된 이미지를, 상기 디스플레이 모듈을 통한 표시, 상기 메모리에 저장 또는 외부로 전송 중 적어도 하나의 지정된 동작으로 처리하도록 설정된 전자 장치.
  7. 제1항에 있어서, 상기 프로세서는,
    상기 이미지의 이미지 품질에 관련된 정보를 요청하는 사용자 입력을 수신하고,
    상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지에 대한 보정 정보를 상기 이미지에 기반하여 표시하도록 상기 디스플레이 모듈을 제어하도록 설정된 전자 장치.
  8. 제7항에 있어서, 상기 프로세서는,
    상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지의 대표 품질에 대응하는 압축 품질을 갖는 적어도 하나의 블록을 식별하고,
    상기 식별된 블록에 기반하여 지정된 노티 객체와 이미지 보정에 대한 상세 정보를 제공하도록 설정된 전자 장치.
  9. 제8항에 있어서, 상기 프로세서는,
    상기 이미지로부터 높은 신뢰도의 블록을 식별하고,
    식별된 블록에 대한 품질 및 신뢰도를 측정하고,
    측정된 품질 및 신뢰도에 따른 블록 별 압축 품질과 상기 이미지의 대표 품질을 비교하고,
    상기 블록 별 압축 품질 중 상기 대표 품질에 대응하는 압축 품질을 가지면서, 다른 블록과 비교하여 상대적으로 높은 신뢰도를 갖는 블록을 군집화(clustering) 하고,
    상기 이미지에서 군집화된 블록에 대응하는 부분에 기반하여 상기 지정된 노티 객체를 제공하고,
    상기 노티 객체와 함께, 상기 이미지 보정에 대한 전체 스코어 및 분류에 대한 설명을 포함하는 상세 정보를 표시하도록 상기 디스플레이 모듈을 제어하도록 설정된 전자 장치.
  10. 제1항에 있어서, 상기 프로세서는,
    상기 이미지의 제2 압축 시에, 상기 이미지의 제1 압축 시에 발생된 아티펙트를 제거하고, 이후 제2 압축을 수행하도록 설정된 전자 장치.
  11. 제10항에 있어서, 상기 프로세서는,
    상기 이미지의 압축을 위한 사용자 입력을 수신하고,
    상기 사용자 입력을 수신하는 것에 기반하여, 상기 이미지의 제1 압축 시의 제1 압축 품질에 대응하는 노이즈 제거 모델에 기반하여, 상기 제1 압축 시 발생한 아티펙트를 제거하고,
    상기 제1 압축에 관련된 제1 압축 품질에 기반하여 상기 제2 압축을 위한 제2 압축 품질을 결정하고,
    상기 제2 압축 품질에 기반하여 이미지에 대한 제2 압축을 수행하도록 설정된 전자 장치.
  12. 제11항에 있어서, 상기 프로세서는,
    상기 제1 압축 품질에 대응하게 상기 제2 압축 품질을 결정하도록 설정된 전자 장치.
  13. 제1항에 있어서, 상기 프로세서는,
    상기 압축 품질 분류를 위한 품질 예측 모듈 및 신뢰도 추정 모듈을 포함하고,
    상기 품질 예측 모듈을 학습하는 중에, 상기 신뢰도 추정 모듈을 함께 학습하도록 설정된 전자 장치.
  14. 제2항에 있어서, 상기 프로세서는,
    인공 지능 알고리즘을 이용하여 학습된 학습 모델을 이용하여, 이미지의 압축 품질을 분류하도록 설정된 전자 장치.
  15. 전자 장치의 동작 방법에 있어서,
    전자 장치의 디스플레이 모듈을 통해 이미지를 표시하는 동작;
    상기 이미지에서 지정된 복수 개의 블록을 지정된 방식으로 추출하는 동작;
    상기 복수 개의 블록에 대하여 각 블록 별로 신뢰도를 추정하는 동작;
    신뢰도 추정에 기반하여, 상기 복수 개의 블록 중 품질 예측 제외 대상인 아웃라이어(outlier)에 대응하는 제1 블록과 품질 예측이 가능한 제2 블록을 식별하는 동작;
    상기 복수 개의 블록 중 상기 제1 블록을 품질 예측 대상에서 제외하는 동작; 및
    상기 복수 개의 블록 중 상기 제1 블록을 제외한 나머지 제2 블록을 이용하여, 상기 이미지에 대한 압축 품질을 분류하는 동작을 포함하는 방법.
PCT/KR2022/014632 2021-09-30 2022-09-29 전자 장치에서 이미지의 압축 품질 예측 방법 및 장치 WO2023055112A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280066109.8A CN118057962A (zh) 2021-09-30 2022-09-29 用于预测电子装置中图像的压缩质量的方法和装置
EP22876884.2A EP4365825A1 (en) 2021-09-30 2022-09-29 Method and apparatus for predicting compression quality of image in electronic device
US17/970,482 US20230102895A1 (en) 2021-09-30 2022-10-20 Apparatus and method for predicting compression quality of image in electronic device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2021-0130181 2021-09-30
KR20210130181 2021-09-30
KR1020210153020A KR20230046913A (ko) 2021-09-30 2021-11-09 전자 장치에서 이미지의 압축 품질 예측 방법 및 장치
KR10-2021-0153020 2021-11-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/970,482 Continuation US20230102895A1 (en) 2021-09-30 2022-10-20 Apparatus and method for predicting compression quality of image in electronic device

Publications (1)

Publication Number Publication Date
WO2023055112A1 true WO2023055112A1 (ko) 2023-04-06

Family

ID=85783219

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/014632 WO2023055112A1 (ko) 2021-09-30 2022-09-29 전자 장치에서 이미지의 압축 품질 예측 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2023055112A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160150650A (ko) * 2010-02-04 2016-12-30 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 높은 동적 범위의 이미지 생성 및 렌더링
US20180324438A1 (en) * 2016-06-15 2018-11-08 Abenecel Inc. Method, device, and computer-readable medium for compressing image
WO2019151808A1 (ko) * 2018-02-02 2019-08-08 삼성전자 주식회사 이미지 센서를 이용한 이미지 획득 과정에서 생성된 압축 속성을 이용하여 이미지를 압축하는 전자 장치 및 그 동작 방법
KR20190105745A (ko) * 2018-03-06 2019-09-18 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20210014303A (ko) * 2019-07-30 2021-02-09 삼성전자주식회사 스타일러스에 대한 보정을 수행하는 전자 장치 및 이의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160150650A (ko) * 2010-02-04 2016-12-30 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 높은 동적 범위의 이미지 생성 및 렌더링
US20180324438A1 (en) * 2016-06-15 2018-11-08 Abenecel Inc. Method, device, and computer-readable medium for compressing image
WO2019151808A1 (ko) * 2018-02-02 2019-08-08 삼성전자 주식회사 이미지 센서를 이용한 이미지 획득 과정에서 생성된 압축 속성을 이용하여 이미지를 압축하는 전자 장치 및 그 동작 방법
KR20190105745A (ko) * 2018-03-06 2019-09-18 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20210014303A (ko) * 2019-07-30 2021-02-09 삼성전자주식회사 스타일러스에 대한 보정을 수행하는 전자 장치 및 이의 동작 방법

Similar Documents

Publication Publication Date Title
WO2020032661A1 (en) Electronic apparatus, method for controlling thereof, and method for controlling a server
WO2021086040A1 (en) Method for providing preview and electronic device for displaying preview
WO2021261836A1 (en) Image detection apparatus and operation method thereof
WO2021230485A1 (ko) 영상을 제공하는 방법 및 장치
WO2022005000A1 (en) Electronic device and method of operating the same
WO2022186443A1 (ko) 전자 장치에서 이미지의 압축 품질에 기반한 이미지 보정 방법 및 장치
WO2022071695A1 (ko) 영상을 처리하는 디바이스 및 그 동작 방법
WO2021118220A1 (en) Electronic device for changing display in designated area of display and operating method thereof
WO2023055112A1 (ko) 전자 장치에서 이미지의 압축 품질 예측 방법 및 장치
WO2022108201A1 (ko) 영상을 제공하는 방법 및 이를 지원하는 전자 장치
WO2022124679A1 (ko) 복제 비디오를 검출하는 장치 및 방법
WO2019231068A1 (en) Electronic device and control method thereof
WO2023033333A1 (ko) 복수의 카메라를 포함하는 전자 장치 및 그 동작 방법
WO2022139238A1 (ko) 이미지를 제공하는 방법 및 이를 지원하는 전자 장치
EP3738305A1 (en) Electronic device and control method thereof
WO2022045613A1 (ko) 비디오 품질 향상 방법 및 장치
WO2021256781A1 (ko) 영상을 처리하는 디바이스 및 그 동작 방법
KR20230046913A (ko) 전자 장치에서 이미지의 압축 품질 예측 방법 및 장치
WO2022145932A1 (ko) 이미지 프레임 처리 방법 및 이를 지원하는 전자 장치
WO2023136532A1 (ko) 이미지를 제공하는 방법 및 이를 지원하는 전자 장치
WO2024112145A1 (ko) 인공지능 모델을 이용한 스케일링을 수행하는 전자 장치 및 그 동작 방법
WO2024043604A1 (ko) 신경망을 통해 이미지를 처리하는 방법 및 그 전자 장치
WO2023146286A1 (ko) 이미지의 화질을 개선하기 위한 전자 장치 및 방법
WO2022250388A1 (ko) 비디오 품질을 평가하는 전자 장치 및 그 동작 방법
WO2022270726A1 (ko) 표시 영역 내의 잔상을 감소시키기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022876884

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022876884

Country of ref document: EP

Effective date: 20240201