Neural Image Compression with Adaptive Intra Prediction
The adaptive block-based intra-prediction mechanism in neural image compression optimizes block sizes for encoding residuals, enhancing efficiency by leveraging neural networks for improved rate-distortion performance.
Patent Information
- Application Number
- JP2022560920
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-09-29
- Filing Date
- 2021-10-04
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2041-10-04
AI Technical Summary
Existing neural image compression methods using variational autoencoders encode and decode entire images, which is inefficient and does not leverage the potential of block-based intra-prediction mechanisms for improved compression performance.
Adaptive block-based intra-prediction mechanism that partitions images into blocks of varying sizes, encoding the residual between predicted and original blocks, and using neural networks for compression and decompression, allowing for optimal block size determination based on rate-distortion loss.
Enhances compression efficiency by adaptively determining block sizes for improved rate-distortion performance, leveraging neural networks for efficient encoding and decoding of image residuals.
Smart Images

Figure 0007733001000096 
Figure 0007733001000097 
Figure 0007733001000098
Abstract
Description
[Technical Field]
[0001] [Related Applications] This application claims priority to U.S. Provisional Application No. 63 / 138,963, filed January 19, 2021, and U.S. Patent Application No. 17 / 488,532, filed September 29, 2021, which are incorporated herein by reference in their entireties. [Background technology]
[0002] Standardization groups and companies have been actively exploring potential needs for future video coding technologies. These groups and companies have established the JPEG-AI group, which focuses on end-to-end neural image compression based on AI. The success of recent approaches has further fueled industry interest in advanced neural image and video compression methods.
[0003] Given an input image x, the NIC target uses image x as input to a NN encoder to generate a compressed representation y that is compact for storage and transmission. - Calculate y - as input to the NN decoder, and - Previous NIC methods employ a variational autoencoder (VAE) structure, where the NN encoder directly uses the entire image x as input, passing the input through a set of network layers that act like a black box to produce an output representation y - Correspondingly, the NN decoder computes the entire representation y - as input, and the input is passed through another set of network layers that act like another black box to reconstruct x - Calculate.
[0004] Block-based intra-prediction and residual coding mechanisms encode the residual between a predicted block and an original block instead of directly encoding the entire original image. This mechanism has proven very efficient for compressing images in modern video coding standards such as HEVC and VVC. The entire image is partitioned into blocks of various sizes, and a predicted block is generated by copying the boundary pixels of the previous compressed block along various angular directions. Then, the residual between the original block and the predicted block is compressed. The residual can be coded more efficiently than the original pixels, and therefore, better coding performance can be achieved. Different block sizes directly affect compression performance, and the optimal block size usually depends on the specific image. Summary of the Invention
[0005] According to an embodiment, a method for neural image compression with adaptive intra prediction is performed by at least one processor and comprises the steps of receiving a compressed representation of an input comprising an optimal partition and a first set of blocks; For each block in the first block set, receiving a block selection signal indicating one of a first reconstruction block and a second reconstruction block as a current reconstruction block; and performing one of a first reconstruction and a second reconstruction based on the received block selection signal; and merging the currently reconstructed block to obtain a reconstructed image. The first reconstruction includes directly calculating the first reconstructed block based on each block in the first block set. The second reconstruction includes generating a reconstruction residual based on the calculated residual, partitioning the first predicted block, and adding the reconstruction residual to obtain the second reconstructed block. The first reconstruction includes compressing the blocks in the first block set using a first neural network to calculate a first compressed representation, and decompressing the first compressed representation using a second neural network to calculate the first reconstructed block. The second reconstruction includes calculating a first predicted block based on a set of previously reconstructed blocks and a set of previously reconstructed microblocks, calculating a first residual based on the current block and the predicted block in the first block set, generating a reconstruction residual based on the first residual, partitioning the first predicted block, and adding the reconstruction residual to obtain the second reconstructed block.
[0006] According to an embodiment, the device for neural image compression with multiple neighborhood adaptive intra prediction comprises: at least one memory configured to store program code; at least one processor configured to read the program code and to act as directed by the program code; The program code includes: first receiving code configured to cause the at least one processor to receive an optimal partition; second receiving code configured to cause the at least one processor to receive a condensed representation of an input including the first set of blocks; third receiving code configured to cause the at least one processor to receive, for each block in the first set of blocks, a block selection signal indicating one of the first reconstruction block and the second reconstruction as a currently reconstructed block, and to execute one of the first reconstruction code and the second reconstruction code; merging code configured to cause the at least one processor to merge each of the current reconstruction blocks to obtain a reconstructed image; Includes: Furthermore, the first restoration first compression code configured to cause the at least one processor to compress blocks in the first set of blocks using a first neural network to calculate a first compressed representation; first decompression code configured to cause the at least one processor to decompress the first compressed residual representation and calculate the first reconstruction block using a second neural network; Including, The second restoration is a first prediction code configured to cause the at least one processor to predict a first predicted block based on a set of previously reconstructed blocks and a set of previously reconstructed microblocks; a first residual code configured to cause the at least one processor to calculate a first residual based on a current block in the first set of blocks and the predicted block; first generation code configured to cause the at least one processor to generate a reconstruction residual based on the first residual; a first partition code configured to cause the at least one processor to partition the first prediction block and add the reconstructed residual to obtain the second reconstructed block; Includes:
[0007] According to an embodiment, a non-transitory computer-readable medium storing instructions, which when executed by at least one processor for neural image compression with adaptive intra prediction, cause the at least one processor to: Receive the optimal partition, receiving a compressed representation of an input including a first set of blocks; receiving a block selection signal indicating one of a first reconstruction block and a second reconstruction block as a current reconstruction block for each block in the first block set; and performing one of a first reconstruction and a second reconstruction; Merging each of the current reconstruction blocks to obtain a reconstructed image; The first restoration is compressing the blocks in the first set of blocks using a first neural network to calculate a first compressed representation; using a second neural network to decompress the first compressed representation and calculate the first reconstructed block; This includes: The second restoration is Calculating a first prediction block based on the set of previously reconstructed blocks and the set of previously reconstructed microblocks; calculating a first residual based on the current block in the first set of blocks and the predicted block; generating a reconstruction residual based on the first residual; Partitioning the first predicted block and adding the reconstruction residual to obtain the first reconstruction block; 1. A non-transitory computer-readable medium, comprising: [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a diagram of an environment in which the methods, apparatus, and systems described herein may be implemented, according to an embodiment.
[0009] [Figure 2] FIG. 2 is a block diagram of example components of one or more devices of FIG. 1.
[0010] [Figure 3] FIG. 1 is a block diagram of a NIC encoder device during a testing phase, according to an embodiment.
[0011] [Figure 4]4 is a detailed workflow of the partition selection module of FIG. 3 during a testing phase, according to an embodiment.
[0012] [Figure 5] FIG. 1 is a block diagram of a NIC decoder device during a testing phase, according to an embodiment.
[0013] [Figure 6] 1 is a workflow of a NIC intra prediction device during the training phase, according to an embodiment.
[0014] [Figure 7] 1 is a flowchart of a method for neural image compression with adaptive intra prediction, according to an embodiment.
[0015] [Figure 8] FIG. 1 is a block diagram of an apparatus for neural image compression with adaptive intra-prediction, according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0016] This disclosure proposes a Neural Image Compression (NIC) framework that compresses input images using a Neural Network (DNN) with a block-based intra-prediction mechanism with adaptive block sizes. Exemplary embodiments are described below with reference to the figures, in which like modules are denoted by like reference numerals, and therefore repeated descriptions may be omitted where necessary. FIG. 1 is a diagram of an environment 100 in which the methods, apparatus, and systems described herein may be implemented, according to an embodiment.
[0017] 1, environment 100 may include user devices 110, a platform 120, and a network 130. The devices of environment 100 may be interconnected by wired connections, wireless connections, or a combination of wired and wireless connections.
[0018] User device 110 includes one or more devices that can receive, generate, store, process, and / or provide information associated with platform 120. For example, user device 110 may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smartphone, a wireless phone, etc.), a wearable device (e.g., smart glasses or a smart watch), or a similar device. In some implementations, user device 110 may receive information from and / or transmit information to platform 120.
[0019] Platform 120 includes one or more devices as described herein. In some implementations, platform 120 may include a cloud server or a group of cloud servers. In some implementations, platform 120 may be designed to be modular, such that software components can be swapped in or out. In this manner, platform 120 may be easily and / or quickly reconfigured for different specifications.
[0020] In some implementations, as shown, platform 120 may be hosted in a cloud computing environment 122. Notably, although implementations described herein describe platform 120 as being hosted in a cloud computing environment 122, platform 120 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.
[0021] Cloud computing environment 122 includes an environment that hosts platform 120. Cloud computing environment 122 may provide services such as computation, software, data access, storage, etc., without requiring end users (e.g., user devices 110) to have knowledge of the physical location and configuration of the systems and / or devices hosting platform 120. As shown, cloud computing environment 122 may include a group of computing resources 124 (collectively referred to as “computing resources 124” and individually as “computing resource 124”).
[0022] Computing resources 124 may include one or more personal computers, workstation computers, server devices, or other types of computing and / or communication devices. In some implementations, computing resources 124 may host platform 120. Cloud resources may include compute instances running within computing resources 124, storage devices provided within computing resources 124, transport devices provided by computing resources 124, etc. In some implementations, computing resources 124 may communicate with other computing resources 124 via wired connections, wireless connections, or a combination of wired and wireless connections.
[0023] As further shown in FIG. 1, computing resources 124 include a group of cloud resources such as one or more applications (“APP”) 124-1, one or more virtual machines (“VM”) 124-2, virtual storage devices (“VS”) 124-3, one or more hypervisors (“HYP”) 124-4, etc.
[0024] Application 124-1 includes one or more software applications that may be provided to or accessed by user device 110 and / or platform 120. Application 124-1 may eliminate the need to install and run software applications on user device 110. For example, application 124-1 may include software associated with platform 120 and / or any other software that may be provided by cloud computing environment 122. In some implementations, one application 124-1 may send / receive information to / from another application 124-1 via virtual machine 124-2.
[0025] Virtual machine 124-2 includes a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. Virtual machine 124-2 may be either a system virtual machine or a process virtual machine, depending on the extent to which virtual machine 124-2 uses and supports any real-world machine. A system virtual machine may provide a complete system platform that supports the execution of a complete operating system (“OS”). A process virtual machine may execute a single program and support a single process. In some implementations, virtual machine 124-2 may run on behalf of a user (e.g., user device 110) and manage the infrastructure of cloud computing environment 122, such as data management, synchronization, or long-term data transfer.
[0026] Virtual storage devices 124-3 include one or more storage systems and / or one or more devices that use virtualization techniques within the storage systems or devices of computing resources 124. In some implementations, in the context of storage systems, types of virtualization may include block virtualization and file virtualization. Block virtualization may refer to the abstraction (or separation) of logical storage from physical storage so that the storage system can be accessed regardless of the physical storage or heterogeneous structure. The separation may allow storage system administrators flexibility in how they manage storage for end users. File virtualization can remove the dependency between data accessed at the file level and where the file is physically stored. This may enable optimization of storage usage, server consolidation, and / or performing non-disruptive file migrations.
[0027] The hypervisor 124-4 may provide hardware virtualization technology that allows multiple operating systems (e.g., "guest operating systems") to run simultaneously on a host computer such as the computing resource 124. The hypervisor 124-4 may present a virtual operating platform to the guest operating systems and may manage the execution of the guest operating systems. Multiple instances of different operating systems may share virtualized hardware resources.
[0028] Network 130 may include one or more wired and / or wireless networks. For example, network 130 may include a cellular network (e.g., a fifth generation (5G) network, a long term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, an optical fiber-based network, etc., and / or a combination of these or other types of networks.
[0029] The number and arrangement of devices and networks shown in Figure 1 are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or different arrangements of devices and / or networks than those shown in Figure 1. Furthermore, two or more devices shown in Figure 1 may be implemented within a single device, or a single device shown in Figure 1 may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (e.g., one or more devices) of environment 100 may perform one or more functions that are described as being performed by another set of devices of environment 100.
[0030] FIG. 2 is a block diagram of example components of one or more of the devices of FIG.
[0031] The device 200 may correspond to the user device 110 and / or the platform 120. As shown in Figure 12, the device 200 may include a bus 210, a processor 220, a memory 230, a storage component 240, an input component 250, an output component 260, and a communication interface 270.
[0032] Bus 210 includes components that enable communication between the components of device 200. Processor 220 is implemented in hardware, firmware, or a combination of hardware and software. Processor 220 may be a central processing unit (CPU), graphics processing unit (GPU), accelerated processing unit (APU), microprocessor, microcontroller, digital signal processor (DSP), field programmable gate array (FPGA), application specific integrated circuit (ASIC), or another type of processing component. In some implementations, processor 220 includes one or more processors that are programmable to perform functions. Memory 230 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions for use by processor 220.
[0033] Storage component 240 stores information and / or software related to the operation and use of device 200. For example, storage component 240 may include a hard disk (e.g., a magnetic disk, optical disk, magneto-optical disk, and / or solid state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-transitory computer-readable medium along with a corresponding drive.
[0034] Input components 250 include components that enable device 200 to receive information, for example, via user input (e.g., a touchscreen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone). Additionally or alternatively, input components 250 may include sensors that detect information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and / or an actuator). Output components 260 include components that provide output information from device 200 (e.g., a display, a speaker, and / or one or more light-emitting diodes (LEDs)).
[0035] Communications interface 270 includes transceiver-like components (e.g., a transceiver and / or a separate receiver and transmitter) that enable device 200 to communicate with other devices, for example, via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communications interface 270 may enable device 200 to receive information from and / or provide information to another device. For example, communications interface 270 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a WiFi interface, a cellular network interface, etc.
[0036] Device 200 may perform one or more of the processes described herein. Device 200 may perform these processes in response to processor 220 executing software instructions stored on a transient computer-readable medium, such as memory 230 and / or storage component 240. Computer-readable medium is defined herein as a non-transitory memory device. A memory device may include memory space within a single physical storage device or memory space spread across multiple physical storage devices.
[0037] Software instructions may be loaded into memory 230 and / or storage component 240 from another computer-readable medium or from another device via communications interface 270. When executed, the software instructions stored in memory 230 and / or storage component 240 may cause processor 220 to perform one or more of the operations described herein. Additionally or alternatively, hard-wired circuitry may be used in place of or in combination with software instructions to perform one or more of the operations described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
[0038] The number and arrangement of components shown in Figure 2 are provided as an example. In practice, device 200 may include additional, fewer, different, or differently arranged components than those shown in Figure 2. Additionally or alternatively, a set of components (e.g., one or more components) of device 200 may perform one or more functions that are described as being performed by another set of components of device 200.
[0039] The method and apparatus for NIC using block-based intra prediction with adaptive block size is described in detail below.
[0040] This disclosure proposes a NIC framework that uses block-based intra prediction with adaptive block size. Instead of encoding the original pixels, the residual between the predicted block and the original block is encoded, and the block size is adaptively determined based on the compression quality, such as the rate-distortion (RD) loss.
[0041] FIG. 3 is a block diagram of a NIC Encoder 300 device during the testing phase, according to an embodiment.
[0042] As shown in FIG. 3, the encoder 300 includes a partition module 310 and a partition selection module 320 .
[0043] On the encoder side, given an input image x, the partition module 310 partitions the input image x into the following:
number
number
[0044] Each microblock is divided into blocks m i Assume that there are P different ways to partition u, ...
[0045] FIG. 4 is a detailed workflow of the partition selection module 320 of FIG. 3 during the testing phase, according to an embodiment.
[0046] As shown in FIG. 4, the partition selection module 320 includes an intra prediction module 410, a residual neural compression module 420, a residual neural decompression module 430, a residual compression loss calculation module 440, a neural compression module 450, a neural decompression module 460, a compression loss calculation module 470, a block selection module 480, and a calculation partition loss module 490.
[0047] The output of the partition selection module 320 is the optimal partitioning method p*, the block selection signal:
number
number
[0048] The following expression represents the block obtained by the pth partition method:
number
number
number
number
[0049] Partition block b i,p,j After calculating the following predicted blocks for
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
[0050]
number
[0051] where:
number
number
number
number
number
[0052] At the same time, for each original block:
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
[0053]
number
[0054] Here, each w i,p,j Here is the original block:
number
[0055] Repeating the same process for all P partition methods yields the quality loss:
number
number
number
[0056] below:
number
number
number
number
number
number
number
[0057] Neural compression module 450 and residual neural compression module 420 can use any neural compression method, and embodiments do not constrain the particular method or network architecture used for these two modules.
[0058] FIG. 5 is a block diagram of a NIC decoder 500 device during the testing phase, according to an embodiment.
[0059] As shown in FIG. 5, the decoder 500 includes an intra prediction module 410, a residual neural decompression module 430, a neural decompression module 460, and a merge module 510.
[0060] On the decoder 500 side, the system generates the optimal partition p*, the compressed representation:
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
number
[0061] NIC Intra Prediction Training Process: Figure 6 is a workflow of the NIC intra prediction device 600 during the training phase, according to an embodiment.
[0062] As shown in FIG. 6, the NIC intra-prediction training device 600 includes a partition module 310, a partition selection module 320, an intra-prediction module 410, a residual neural extension module 430, a neural extension module 460, a merge module 510, an overall loss calculation module 610, and an additive loss calculation module 620.
[0063] The target of the training process is to train the prediction networks, neural compression module 450, neural decompression module 460, residual neural compression module 420, and residual neural decompression module 430. When the learnable merge module 510 and block selection module 480 are used, for example, when a NN is used to aggregate reconstructed blocks into a reconstructed image, the corresponding learnable parameters can also be learned in the training process. In the training process, the weight coefficients of the above-mentioned networks and modules to be trained are initialized, for example, by using a pre-trained model or by setting their parameters to random values. Next, given an input training image x, it passes through the encoder 300 described in FIG. 3 and then the decoder 500 described in FIG. 5 to generate an optimal partition p*, a compressed representation:
number
number
number
number
number
number
number
[0064]
number
[0065] where α and β i is a trade-off hyperparameter that balances the importance of different terms.
[0066] Residuals:
number
number
number
number
number
number
[0067] FIG. 7 is a flowchart of a method for neural image compression with adaptive intra prediction, according to an embodiment.
[0068] In some implementations, one or more processing blocks in Figure 7 may be performed by platform 120. In some implementations, one or more processing blocks in Figure 7 may be performed by another device or group of devices separate from or including platform 120, such as user device 110. Although Figure 7 shows example blocks of a method, the method in some implementations may include more, fewer, or differently arranged blocks than those shown in Figure 7. Additionally or alternatively, two or more of the blocks of the method may be performed in parallel.
[0069] 7, in operation 701, the method includes receiving an optimal partitioning method and a condensed representation of an input including a first set of blocks. Operations 702-709 are performed for each block in the first set of blocks.
[0070] At operation 702, the method of FIG. 7 includes receiving a block selection signal indicating one of the first reconstructed block and the second reconstructed block as a current reconstructed block.
[0071] At operation 703, based on the selection signal, the method continues to one of operations 704-705 or operations 706-709.
[0072] At operation 704, the method of FIG. 7 includes compressing the blocks in the first set of blocks using a first neural network to calculate a first compressed representation.
[0073] At operation 705, the method of FIG. 7 includes decompressing the first compressed representation using a second neural network to calculate a first reconstructed block.
[0074] At operation 706, the method of FIG. 7 includes calculating a first prediction block based on the set of previously reconstructed blocks and the set of previously reconstructed microblocks.
[0075] In operation 707, the method of FIG. 7 includes calculating a first residual based on the current block and the predicted block in the first set of blocks.
[0076] At operation 708, the method of FIG. 7 includes generating a reconstruction residual based on the first residual.
[0077] In operation 709, the method of FIG. 7 includes partitioning the first predicted block and adding the reconstructed residual to obtain a second reconstructed block.
[0078] At operation 710, the method of FIG. 7 includes merging each of the currently reconstructed blocks to obtain a reconstructed image.
[0079] FIG. 8 is a block diagram of an apparatus for neural image compression with adaptive intra prediction, according to an embodiment.
[0080] As shown in FIG. 8 , the device includes a first received code 801, a second received code 802, a third received code 803, a first compressed code 804, a first decompressed code 805, a first predicted code 806, a first residual code 807, a first generated code 808, a first partition code 809, and a merge code 810.
[0081] The first receiving code 801 is configured to cause at least one processor to receive the optimal partitioning method.
[0082] The first receiving code 802 is configured to cause the at least one processor to receive, for each block in the first set of blocks, a condensed representation of an input including the first set of blocks.
[0083] The third receiving code 803 is configured to cause the at least one processor to receive a block selection signal indicating one of the first reconstructed block and the second reconstructed block as a currently reconstructed block.
[0084] The first compression code 804 is configured to cause the at least one processor to compress the blocks in the first set of blocks using a first neural network to compute a first compressed representation.
[0085] The first compression code 805 is configured to cause the at least one processor to decompress the first compressed representation using a second neural network to compute a first decompressed block.
[0086] The first prediction code 806 is configured to cause the at least one processor to predict a first prediction block based on a set of previously reconstructed blocks and a set of previously reconstructed microblocks.
[0087] The first residual code 807 is configured to cause the at least one processor to calculate a first residual based on the current block and the predicted block in the first set of blocks.
[0088] The first generation code 808 is configured to cause the at least one processor to generate a reconstructed residual based on the first residual.
[0089] The first partition code 809 is configured to cause the at least one processor to partition the first prediction block and add the reconstruction residual to obtain a second reconstruction block.
[0090] The merge code 810 is configured to cause the at least one processor to merge each of the currently reconstructed blocks to obtain a reconstructed image.
[0091] Although Figure 8 illustrates example blocks of an apparatus, in some implementations an apparatus may include more, fewer, or differently arranged blocks than those illustrated in Figure 8. Additionally or alternatively, two or more of the blocks of an apparatus may be combined.
[0092] The embodiment describes the idea of adaptive block partition and block compression method selection using intra prediction with original image pixels, and the idea of using different block sizes for intra prediction residual generation and block-wise neural compression. This method of NIC encoding and decoding advantageously provides a flexible and general framework that accommodates different intra prediction methods, different neural compression methods for both residual and original image blocks, different microblocks, and block partitions.
[0093] The proposed NIC coding methods may be used separately or combined in any order. Furthermore, each of the methods (or embodiments), encoders, and decoders may be implemented by processing circuitry (e.g., one or more processors, or one or more integrated circuits). In one example, the one or more processors execute a program stored on a non-transitory computer-readable medium.
[0094] While the foregoing disclosure has provided illustrations and descriptions, it is not intended to be exhaustive or to limit implementations to the precise forms disclosed. Modifications and variations may be possible in light of the above disclosure or may be acquired from experience with implementations.
[0095] As used herein, the term component is intended to broadly comprise hardware, firmware, or a combination of hardware and software.
[0096] It will be apparent that the systems and / or methods described herein may be implemented in different forms, such as hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not intended to limit implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it will be understood that software and hardware may be designed to implement the systems and / or methods based on the description herein.
[0097] Although combinations of features are recited in the claims and / or disclosed in the specification, these combinations do not limit the disclosure of possible implementations. Indeed, many of these features can be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim listed below may depend directly on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.
[0098] No element, act, or instruction used herein is construed as critical or essential unless explicitly stated otherwise. Also, as used herein, the articles "a" and "an" are intended to include one or more items and may be used synonymously with "one or more." Furthermore, as used herein, the term "set" is intended to include one or more items (e.g., related items, unrelated items, or a combination of related and unrelated items) and may be used synonymously with "one or more." When only one item is intended, the term "one" or similar language is used. Also, as used herein, terms such as "has," "have," and "having" are intended to be open-ended terms. Furthermore, the phrase "based on" is intended to mean "based at least in part on," unless expressly stated otherwise.
Claims
1. 1. A method for neural image compression with adaptive intra prediction, the method being performed by at least one processor, the method comprising: Partitioning an input image into a set of microblocks and repartitioning each microblock in the set of microblocks into a first set of blocks; For each block in the first set of blocks: compressing the blocks in the first set of blocks using a first neural network to calculate a first compressed representation; calculating a first predicted block based on a set of previously coded blocks and a set of previously coded microblocks; calculating a first residual based on the current block in the first set of blocks and the first predicted block; computing a second condensed representation based on the first residual; generating a block select signal indicating whether the blocks in the first set of blocks should be reconstructed using the first compressed representation or the second compressed representation; Including, repartitioning each microblock in the set of microblocks into a first set of blocks includes using a partitioning method among a plurality of partitioning methods that results in a minimum quality loss from the first set of blocks; The method comprises: generating a second reconstructed block based on the first predicted block; calculating a first quality loss based on the first set of blocks, the second reconstructed block, and a second compressed representation; using a second neural network to decompress the first compressed representation to compute a third reconstructed block; generating a second quality loss based on the first set of blocks, the third reconstructed block, and the first compressed representation; Including, the block selection signal indicates that the block should be reconstructed using the second compressed representation based on the first quality loss being less than the second quality loss; The method, wherein the block selection signal indicates that the block should be reconstructed using the first compressed representation based on the second quality loss being less than the first quality loss.
2. Each of the first neural network and the second neural network comprises: Initialize the weighting coefficients, Calculate the global loss and backpropagate the gradient of the global loss to update the learnable parameters. The method of claim 1 , wherein the training is performed by:
3. 1. An apparatus for neural image compression with adaptive intra prediction, the apparatus comprising: at least one memory configured to store program code; at least one processor configured to read the program code and to act as directed by the program code; 3. An apparatus comprising: a processor configured to:
4. A program for causing a computer to execute the method according to claim 1 or 2.
Citation Information
Patent Citations
Method and equipment for data compression
JP1990303220A
Image encoding device, image encoding method, and image encoding program
JP2013223096A
Residual tree structure of transformation unit partitioning
JP2014526207A
Dynamic image encoding device, dynamic image decoding device, and filter device
JP2020120141A
Neural network powered codec
US10499081B1