Encoding device, decoding device, and non-transitory machine-readable medium for coding video data
By deriving and arranging multiple extrapolation filter models based on area and filter types, the method addresses the complexity of filter candidate selection in video coding, enhancing prediction and reconstruction efficiency.
Patent Information
- Application Number
- PCT/JP2025/000530
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-10
- Filing Date
- 2025-01-09
- Publication Date
- 2025-07-17
AI Technical Summary
The selection process of extrapolation filter candidates for video coding is complex and time-consuming, making it inefficient for predicting and reconstructing block units.
A method involving determining multiple extrapolation filter models based on extrapolation area and filter types, calculating template matching costs, and arranging these models to efficiently reconstruct block units.
This approach simplifies the selection process, enabling precise and efficient prediction and reconstruction of block units in video coding, improving processing speed and accuracy.
Smart Images

Figure JP2025000530_17072025_PF_FP_ABST
Abstract
Description
ENCODING DEVICE, DECODING DEVICE, AND NON-TRANSITORY MACHINE-READABLE MEDIUM FOR CODING VIDEO DATA
[0001] The present disclosure generally relates to video coding, and more specifically, to techniques for predicting and / or reconstructing a block unit using multiple extrapolation merge candidates, each derived based on a corresponding extrapolation area type and a corresponding extrapolation filter type.
[0002] The present disclosure claims the benefit of and priority to U.S. Provisional Patent Application Serial No. 63 / 619,585, filed on January 10, 2024, entitled “PROPOSED TEMPLATE COST BASED SELECTION AND ON-THE-FLY MERGE CANDIDATE FOR EIP METHOD,” the content of which is hereby incorporated herein fully by reference in its entirety for all purposes.
[0003] Extrapolation filter-based intra prediction (EIP) mode is a coding tool for video coding, in which, an encoder and / or a decoder may predict each of multiple block samples in a current block by using an extrapolation filter based on multiple reconstructed neighboring samples associated with a corresponding one of the block samples. In addition, the encoder and / or the decoder may derive the extrapolation filter of the current block based on multiple extrapolation neighboring samples in an extrapolation neighboring area reconstructed prior to the reconstruction of the current block.
[0004] However, different area types of the extrapolation neighboring area and different shape types of the extrapolation filter may generate multiple extrapolation filter candidates, each including different filter coefficients. In addition, the selection process of the extrapolation filter candidates, using a cost function, may be complex and time-consuming. Therefore, an efficient mechanism for selecting one of the extrapolation filter candidates may be required for the encoder and / or the decoder to be able to precisely and efficiently predict and / or reconstruct the current block.Summery of Invention
[0005] The present disclosure is directed to a device and method for predicting and / or reconstructing a block unit using multiple extrapolation filter models, each of the extrapolation filter models derived based on a corresponding extrapolation area type and a corresponding extrapolation filter type.
[0006] In a first aspect of the present disclosure, a non-transitory machine-readable medium of an electronic device storing one or more computer-executable instructions for decoding video data is provided. The one or more computer-executable instructions, when executed by at least one processor of the electronic device, cause the electronic device to: receive the video data; determine a block unit from a current frame included in the video data; determine at least one extrapolation area type and at least one extrapolation filter type, wherein: a number of the at least one extrapolation area type is equal to N, a number of the at least one extrapolation filter type is equal to M, and at least one of the numbers N or M is greater than one; derive multiple extrapolation filter models of the block unit, each of the multiple extrapolation filter models derived based on a corresponding one of the at least one extrapolation area type and a corresponding one of the at least one extrapolation filter type; determine multiple template matching costs, each calculated using a corresponding one of the multiple extrapolation filter models of the block unit; determine an arrangement of the multiple extrapolation filter models based on the multiple template matching costs; and reconstruct the block unit based on the arrangement of the multiple extrapolation filter models.
[0007] In an implementation of the first aspect of the present disclosure, a number of the multiple extrapolation filter models is equal to N×M, and greater than one, and each of the numbers N and M is a positive integer, equal to, or different from, each other.
[0008] In another implementation of the first aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine a block template region, neighboring the block unit and reconstructed prior to reconstructing the block unit; determine a reconstructed template result of the block template region; and predict the block template region using the multiple extrapolation filter models to generate multiple predicted template results, each of the multiple predicted template results generated using a corresponding of the multiple extrapolation filter models, wherein: determining the multiple template matching costs further includes comparing each of the multiple predicted template results with the reconstructed template result to generate the multiple template matching costs, and each of the multiple template matching costs is generated based on a corresponding one of the multiple predicted template results.
[0009] In another implementation of the first aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the multiple extrapolation filter models of the block unit is further based on the multiple block reference regions, and the multiple block reference regions are included in the block template region.
[0010] In another implementation of the first aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the multiple extrapolation filter models of the block unit is further based on the multiple block reference regions, and the multiple block reference regions are excluded from the block template region.
[0011] In another implementation of the first aspect of the present disclosure, reconstructing the block unit based on the arrangement of the multiple extrapolation filter models further includes: selecting at least one of the multiple extrapolation filter models based on the arrangement of the multiple extrapolation filter models; and reconstructing the block unit based on the selected at least one of the multiple extrapolation filter models.
[0012] In another implementation of the first aspect of the present disclosure, reconstructing the block unit based on the selected at least one of the multiple extrapolation filter models further includes: when a number of the selected at least one of the multiple extrapolation filter models is greater than one, predicting the block unit based on the selected at least one of the multiple extrapolation filter models to generate multiple predicted blocks; and reconstructing the block unit by fusing the multiple predicted blocks.
[0013] In a second aspect of the present disclosure, an electronic device for decoding video data is provided. The electronic device includes at least one processor; and at least one non-transitory computer-readable medium coupled to the at least one processor and storing one or more computer-executable instructions that, when executed by the at least one processor, cause the electronic device to: receive the video data; determine a block unit from a current frame included in the video data; determine at least one extrapolation area type and at least one extrapolation filter type, wherein: a number of the at least one extrapolation area type is equal to N, a number of the at least one extrapolation filter type is equal to M, and at least one of the numbers N or M is greater than one; derive multiple extrapolation filter models of the block unit, each of the multiple extrapolation filter models derived based on a corresponding one of the at least one extrapolation area type and a corresponding one of the at least one extrapolation filter type; determine multiple template matching costs, each calculated using a corresponding one of the multiple extrapolation filter models of the block unit; determine an arrangement of the multiple extrapolation filter models based on the multiple template matching costs; and reconstruct the block unit based on the arrangement of the multiple extrapolation filter models.
[0014] In an implementation of the second aspect of the present disclosure, a number of the multiple extrapolation filter models is equal to N×M, and greater than one, and each of the numbers N and M is a positive integer, equal to, or different from, each other.
[0015] In another implementation of the second aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine a block template region, neighboring the block unit and reconstructed prior to reconstructing the block unit; determine a reconstructed template result of the block template region; and predict the block template region using the multiple extrapolation filter models to generate multiple predicted template results, each of the multiple predicted template results generated using a corresponding of the multiple extrapolation filter models, wherein: determining the multiple template matching costs further includes comparing each of the multiple predicted template results with the reconstructed template result to generate the multiple template matching costs, and each of the multiple template matching costs is generated based on a corresponding one of the multiple predicted template results.
[0016] In another implementation of the second aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the multiple extrapolation filter models of the block unit is further based on the multiple block reference regions, and the multiple block reference regions are included in the block template region.
[0017] In another implementation of the second aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the multiple extrapolation filter models of the block unit is further based on the multiple block reference regions, and the multiple block reference regions are excluded from the block template region.
[0018] In another implementation of the second aspect of the present disclosure, reconstructing the block unit based on the arrangement of the multiple extrapolation filter models further includes: selecting at least one of the multiple extrapolation filter models based on the arrangement of the multiple extrapolation filter models; and reconstructing the block unit based on the selected at least one of the multiple extrapolation filter models.
[0019] In another implementation of the second aspect of the present disclosure, reconstructing the block unit based on the selected at least one of the multiple extrapolation filter models further includes: when a number of the selected at least one of the multiple extrapolation filter models is greater than one, predicting the block unit based on the selected at least one of the multiple extrapolation filter models to generate multiple predicted blocks; and reconstructing the block unit by fusing the multiple predicted blocks.
[0020] In a third aspect of the present disclosure, an electronic device for encoding video data is provided. The electronic device includes at least one processor; and at least one non-transitory computer-readable medium coupled to the at least one processor and storing one or more computer-executable instructions that, when executed by the at least one processor, cause the electronic device to: receive the video data; determine a block unit from a current frame included in the video data; determine at least one extrapolation area type and at least one extrapolation filter type, wherein: a number of the at least one extrapolation area type is equal to N, a number of the at least one extrapolation filter type is equal to M, and at least one of the numbers N or M is greater than one; derive multiple extrapolation filter models of the block unit, each of the multiple extrapolation filter models derived based on a corresponding one of the at least one extrapolation area type and a corresponding one of the at least one extrapolation filter type; determine multiple template matching costs, each calculated using a corresponding one of the multiple extrapolation filter models of the block unit; determine an arrangement of the multiple extrapolation filter models based on the multiple template matching costs; and reconstruct the block unit based on the arrangement of the multiple extrapolation filter models.
[0021] In an implementation of the third aspect of the present disclosure, a number of the multiple extrapolation filter models is equal to N×M, and greater than one, and each of the numbers N and M is a positive integer, equal to, or different from, each other.
[0022] In another implementation of the third aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine a block template region, neighboring the block unit and reconstructed prior to reconstructing the block unit; determine a reconstructed template result of the block template region; and predict the block template region using the multiple extrapolation filter models to generate multiple predicted template results, each of the multiple predicted template results generated using a corresponding of the multiple extrapolation filter models, wherein: determining the multiple template matching costs further includes comparing each of the multiple predicted template results with the reconstructed template result to generate the multiple template matching costs, and each of the multiple template matching costs is generated based on a corresponding one of the multiple predicted template results.
[0023] In another implementation of the third aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the multiple extrapolation filter models of the block unit is further based on the multiple block reference regions, and the multiple block reference regions are included in the block template region.
[0024] In another implementation of the third aspect of the present disclosure, the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the multiple extrapolation filter models of the block unit is further based on the multiple block reference regions, and the multiple block reference regions are excluded from the block template region.
[0025] In another implementation of the third aspect of the present disclosure, reconstructing the block unit based on the arrangement of the multiple extrapolation filter models further includes: selecting at least one of the multiple extrapolation filter models based on the arrangement of the multiple extrapolation filter models; and reconstructing the block unit based on the selected at least one of the multiple extrapolation filter models.
[0026] In another implementation of the third aspect of the present disclosure, reconstructing the block unit based on the selected at least one of the multiple extrapolation filter models further includes: when a number of the selected at least one of the multiple extrapolation filter models is greater than one, predicting the block unit based on the selected at least one of the multiple extrapolation filter models to generate multiple predicted blocks; and reconstructing the block unit by fusing the multiple predicted blocks.
[0027] Aspects of the present disclosure are best understood from the following detailed disclosure and the corresponding figures. Various features are not drawn to scale and dimensions of various features may be arbitrarily increased or reduced for clarity of discussion.
[0028] FIG. 1 is a block diagram illustrating a system having a first electronic device and a second electronic device for encoding and decoding video data, in accordance with one or more example implementations of this disclosure.
[0029] FIG. 2 is a block diagram illustrating a decoder module of the second electronic device illustrated in FIG. 1, in accordance with one or more example implementations of this disclosure.
[0030] FIG. 3 is a flowchart illustrating a method / process for decoding and / or encoding video data by an electronic device, in accordance with one or more example implementations of this disclosure.
[0031] FIGS. 4A-4C are schematic illustrations of three extrapolation filter regions, corresponding to three extrapolation filter types, in accordance with one or more example implementations of this disclosure
[0032] FIGS. 5A-5C are schematic illustrations of three block reference regions, corresponding to three extrapolation area types, in accordance with one or more example implementations of this disclosure.
[0033] FIG. 6 is a block diagram illustrating an encoder module of the first electronic device illustrated in FIG. 1, in accordance with one or more example implementations of this disclosure.
[0034] The following disclosure contains specific information pertaining to implementations in the present disclosure. The figures and the corresponding detailed disclosure are directed to example implementations. However, the present disclosure is not limited to these example implementations. Other variations and implementations of the present disclosure will occur to those skilled in the art.
[0035] Unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference designators. The figures and illustrations in the present disclosure are generally not to scale and are not intended to correspond to actual relative dimensions.
[0036] For the purposes of consistency and ease of understanding, features are identified (although, in some examples, not illustrated) by reference designators in the exemplary figures. However, the features in different implementations may differ in other respects and shall not be narrowly confined to what is illustrated in the figures.
[0037] The disclosure uses the phrases “in one implementation,” or “in some implementations,” which may refer to one or more of the same or different implementations. The term “coupled” is defined as connected, whether directly or indirectly through intervening components, and is not necessarily limited to physical connections. The term “comprising” means “including, but not necessarily limited to” and specifically indicates open-ended inclusion or membership in the so-described combination, group, series, and the equivalent.
[0038] For purposes of explanation and non-limitation, specific details, such as functional entities, techniques, protocols, and standards, are set forth for providing an understanding of the disclosed technology. Detailed disclosure of well-known methods, technologies, systems, and architectures are omitted so as not to obscure the present disclosure with unnecessary details.
[0039] Persons skilled in the art will recognize that any disclosed coding function(s) or algorithm(s) described in the present disclosure may be implemented by hardware, software, or a combination of software and hardware. Disclosed functions may correspond to modules that are software, hardware, firmware, or any combination thereof.
[0040] A software implementation may include a program having one or more computer-executable instructions stored on a computer-readable medium, such as memory or other types of storage devices. For example, one or more microprocessors or general-purpose computers with communication processing capability may be programmed with computer-executable instructions and perform the disclosed function(s) or algorithm(s).
[0041] The microprocessors or general-purpose computers may be formed of application-specific integrated circuits (ASICs), programmable logic arrays, and / or one or more digital signal processors (DSPs). Although some of the disclosed implementations are oriented to software installed and executing on computer hardware, alternative implementations implemented as firmware, as hardware, or as a combination of hardware and software are well within the scope of the present disclosure. The computer-readable medium includes, but is not limited to, random-access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, compact disc read-only memory (CD ROM), magnetic cassettes, magnetic tape, magnetic disk storage, or any other equivalent medium capable of storing computer-executable instructions. The computer-readable medium may be a non-transitory computer-readable medium.
[0042] FIG. 1 is a block diagram illustrating a system 100 having a first electronic device and a second electronic device for encoding and decoding video data, in accordance with one or more example implementations of this disclosure.
[0043] The system 100 includes a first electronic device 110, a second electronic device 120, and a communication medium 130.
[0044] The first electronic device 110 may be a source device including any device configured to encode video data and transmit the encoded video data to the communication medium 130. The second electronic device 120 may be a destination device including any device configured to receive encoded video data via the communication medium 130 and decode the encoded video data.
[0045] The first electronic device 110 may communicate via wire, or wirelessly, with the second electronic device 120 via the communication medium 130. The first electronic device 110 may include a source module 112, an encoder module 114, and a first interface 116, among other components. The second electronic device 120 may include a display module 122, a decoder module 124, and a second interface 126, among other components. The first electronic device 110 may be a video encoder and the second electronic device 120 may be a video decoder.
[0046] The first electronic device 110 and / or the second electronic device 120 may be a mobile phone, a tablet, a desktop, a notebook, or other electronic devices. FIG. 1 illustrates one example of the first electronic device 110 and the second electronic device 120. The first electronic device 110 and second electronic device 120 may include greater or fewer components than illustrated or have a different configuration of the various illustrated components.
[0047] The source module 112 may include a video capture device to capture new video, a video archive to store previously captured video, and / or a video feed interface to receive the video from a video content provider. The source module 112 may generate computer graphics-based data, as the source video, or may generate a combination of live video, archived video, and computer-generated video, as the source video. The video capture device may include a charge-coupled device (CCD) image sensor, a complementary metal-oxide-semiconductor (CMOS) image sensor, or a camera.
[0048] The encoder module 114 and the decoder module 124 may each be implemented as any one of a variety of suitable encoder / decoder circuitry, such as one or more microprocessors, a central processing unit (CPU), a graphics processing unit (GPU), a system-on-a-chip (SoC), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combinations thereof. When implemented partially in software, a device may store the program having computer-executable instructions for the software in a suitable, non-transitory computer-readable medium and execute the stored computer-executable instructions using one or more processors to perform the disclosed methods. Each of the encoder module 114 and the decoder module 124 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (CODEC) in a device.
[0049] The first interface 116 and the second interface 126 may utilize customized protocols or follow existing standards or de facto standards including, but not limited to, Ethernet, IEEE 802.11 or IEEE 802.15 series, wireless USB, or telecommunication standards including, but not limited to, Global System for Mobile Communications (GSM), Code-Division Multiple Access 2000 (CDMA2000), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Worldwide Interoperability for Microwave Access (WiMAX), Third Generation Partnership Project Long-Term Evolution (3GPP-LTE), or Time-Division LTE (TD-LTE). The first interface 116 and the second interface 126 may each include any device configured to transmit a compliant video bitstream via the communication medium 130 and to receive the compliant video bitstream via the communication medium 130.
[0050] The first interface 116 and the second interface 126 may include a computer system interface that enables a compliant video bitstream to be stored on a storage device or to be received from the storage device. For example, the first interface 116 and the second interface 126 may include a chipset supporting Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Express (PCIe) bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, Inter-Integrated Circuit (I2C) protocols, or any other logical and physical structure(s) that may be used to interconnect peer devices.
[0051] The display module 122 may include a display using liquid crystal display (LCD) technology, plasma display technology, organic light-emitting diode (OLED) display technology, or light-emitting polymer display (LPD) technology, with other display technologies used in some other implementations. The display module 122 may include a High-Definition display or an Ultra-High-Definition display.
[0052] FIG. 2 is a block diagram illustrating a decoder module 124 of the second electronic device 120 illustrated in FIG. 1, in accordance with one or more example implementations of this disclosure. The decoder module 124 may include an entropy decoder (e.g., an entropy decoding unit 2241), a prediction processor (e.g., a prediction processing unit 2242), an inverse quantization / inverse transform processor (e.g., an inverse quantization / inverse transform unit 2243), a summer (e.g., a summer 2244), a filter (e.g., a filtering unit 2245), and a decoded picture buffer (e.g., a decoded picture buffer 2246). The prediction processing unit 2242 further may include an intra prediction processor (e.g., an intra prediction unit 22421) and an inter prediction processor (e.g., an inter prediction unit 22422). The decoder module 124 receives a bitstream, decodes the bitstream, and outputs a decoded video.
[0053] The entropy decoding unit 2241 may receive the bitstream including multiple syntax elements from the second interface 126, as shown in FIG. 1, and perform a parsing operation on the bitstream to extract syntax elements from the bitstream. As part of the parsing operation, the entropy decoding unit 2241 may entropy decode the bitstream to generate quantized transform coefficients, quantization parameters, transform data, motion vectors, intra modes, partition information, and / or other syntax information.
[0054] The entropy decoding unit 2241 may perform context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy coding technique to generate the quantized transform coefficients. The entropy decoding unit 2241 may provide the quantized transform coefficients, the quantization parameters, and the transform data to the inverse quantization / inverse transform unit 2243 and provide the motion vectors, the intra modes, the partition information, and other syntax information to the prediction processing unit 2242.
[0055] The prediction processing unit 2242 may receive syntax elements, such as motion vectors, intra modes, partition information, and other syntax information, from the entropy decoding unit 2241. The prediction processing unit 2242 may receive the syntax elements including the partition information and divide image frames according to the partition information.
[0056] Each of the image frames may be divided into at least one image block according to the partition information. The at least one image block may include a luminance block for reconstructing multiple luminance samples and at least one chrominance block for reconstructing multiple chrominance samples. The luminance block and the at least one chrominance block may be further divided to generate macroblocks, coding tree units (CTUs), coding blocks (CBs), sub-divisions thereof, and / or other equivalent coding units.
[0057] During the decoding process, the prediction processing unit 2242 may receive predicted data including the intra mode or the motion vector for a current image block of a specific one of the image frames. The current image block may be the luminance block or one of the chrominance blocks in the specific image frame.
[0058] The intra prediction unit 22421 may perform intra-predictive coding of a current block unit relative to one or more neighboring blocks in the same frame, as the current block unit, based on syntax elements related to the intra mode in order to generate a predicted block. The intra mode may specify the location of reference samples selected from the neighboring blocks within the current frame. The intra prediction unit 22421 may reconstruct multiple chroma components of the current block unit based on multiple luma components of the current block unit when the multiple chroma components are reconstructed by the prediction processing unit 2242.
[0059] The intra prediction unit 22421 may reconstruct multiple chroma components of the current block unit based on the multiple luma components of the current block unit when the multiple luma components of the current block unit are reconstructed by the prediction processing unit 2242.
[0060] The inter prediction unit 22422 may perform inter-predictive coding of the current block unit relative to one or more blocks in one or more reference image blocks based on syntax elements related to the motion vector in order to generate the predicted block. The motion vector may indicate a displacement of the current block unit within the current image block relative to a reference block unit within the reference image block. The reference block unit may be a block determined to closely match the current block unit. The inter prediction unit 22422 may receive the reference image block stored in the decoded picture buffer 2246 and reconstruct the current block unit based on the received reference image blocks.
[0061] The inverse quantization / inverse transform unit 2243 may apply inverse quantization and inverse transformation to reconstruct the residual block in the pixel domain. The inverse quantization / inverse transform unit 2243 may apply inverse quantization to the residual quantized transform coefficient to generate a residual transform coefficient and then apply inverse transformation to the residual transform coefficient to generate the residual block in the pixel domain.
[0062] The inverse transformation may be inversely applied by the transformation process, such as a discrete cosine transform (DCT), a discrete sine transform (DST), an adaptive multiple transform (AMT), a mode-dependent non-separable secondary transform (MDNSST), a Hypercube-Givens transform (HyGT), a signal-dependent transform, a Karhunen-Loeve transform (KLT), a wavelet transform, an integer transform, a sub-band transform, or a conceptually similar transform. The inverse transformation may convert the residual information from a transform domain, such as a frequency domain, back to the pixel domain, etc. The degree of inverse quantization may be modified by adjusting a quantization parameter.
[0063] The summer 2244 may add the reconstructed residual block to the predicted block provided by the prediction processing unit 2242 to produce a reconstructed block.
[0064] The filtering unit 2245 may include a deblocking filter, a sample adaptive offset (SAO) filter, a bilateral filter, and / or an adaptive loop filter (ALF) to remove the blocking artifacts from the reconstructed block. Additional filters (in loop or post loop) may also be used in addition to the deblocking filter, the SAO filter, the bilateral filter, and the ALF. Such filters (are not explicitly illustrated for brevity of the description) may filter the output of the summer 2244. The filtering unit 2245 may output the decoded video to the display module 122 or other video receiving units after the filtering unit 2245 performs the filtering process for the reconstructed blocks of the specific image frame.
[0065] The decoded picture buffer 2246 may be a reference picture memory that stores the reference block to be used by the prediction processing unit 2242 in decoding the bitstream (e.g., in inter-coding modes). The decoded picture buffer 2246 may be formed by any one of a variety of memory devices, such as a dynamic random-access memory (DRAM), including synchronous DRAM (SDRAM), magneto-resistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The decoded picture buffer 2246 may be on-chip along with other components of the decoder module 124 or may be off-chip relative to those components.
[0066] FIG. 3 is a flowchart illustrating a method / process 300 for decoding and / or encoding video data by an electronic device, in accordance with one or more example implementations of this disclosure. The method / process 300 is an example implementation, as there may be a variety of mechanisms of decoding the video data.
[0067] The method / process 300 may be performed by an electronic device using the configurations illustrated in FIGS. 1 and / or 2, where various elements of these figures may be referenced to describe the method / process 300. Each block illustrated in FIG. 3 may represent one or more processes, methods, or subroutines performed by an electronic device.
[0068] The order in which the blocks appear in FIG. 3 is for illustration only, and may not be construed to limit the scope of the present disclosure, thus the order may be different from what is illustrated. Additional blocks may be added or fewer blocks may be utilized without departing from the scope of the present disclosure.
[0069] At block 310, the method / process 300 may start by receiving (e.g., via the decoder module 124, as shown in FIG. 2) the video data. The video data received by the decoder module 124 may include a bitstream.
[0070] With reference to FIGS. 1 and 2, the second electronic device 120 may receive the bitstream from an encoder, such as the first electronic device 110 (or other video providers) via the second interface 126.
[0071] At block 320, the decoder module 124 may determine a block unit from a current frame included in the video data.
[0072] With reference to FIGS. 1 and 2, the decoder module 124 may determine the image frames included in the bitstream when the video data received by the decoder module 124 includes the bitstream. The current frame may be one of the determined image frames, according to the bitstream. The decoder module 124 may further divide the current frame to determine the block unit, according to the partition indications in the bitstream.
[0073] In some implementations, the decoder module 124 may divide the current frame to generate multiple CTUs, and may further divide a current CTU included in the CTUs to generate multiple divided blocks and to determine the block unit from the divided blocks, according to the partition indications (e.g., based on any video coding standard).
[0074] In some other implementations, the decoder module 124 may divide the current frame to generate multiple slices or multiple tiles, and further divide a current slice, included in the slices, or a current tile, included in the tiles, to generate multiple CTUs. In addition, the decoder module 124 may further divide a current CTU included in the CTUs to generate multiple divided blocks and to determine the block unit from the divided blocks, according to the partition indications. The size of the block unit may be Wb× Hb. In some implementations, each of the Wb and Hb may be a positive integer (e.g., 4, 8, etc.) that may be equal to, or different from, each other.
[0075] Multiple neighboring blocks may be predicted and / or reconstructed prior to the reconstruction of the block unit. Thus, the neighboring blocks may include multiple reconstructed neighboring samples, predicted and / or reconstructed prior to the reconstruction of the block unit.
[0076] At block 330, the decoder module 124 may determine at least one extrapolation area type and at least one extrapolation filter type.
[0077] With reference to FIGS. 1 and 2, in order to predict and / or reconstruct the block unit using an extrapolation filter-based intra prediction (EIP) mode, the decoder module 124 may first determine the at least one extrapolation area type and the at least one extrapolation filter type, used for the EIP mode. The number of the at least one extrapolation area type may be equal to N, and the number of the at least one extrapolation filter type may be equal to M. In addition, at least one of the numbers N or M may be greater than one, such that a product value N×M may be greater than one. In some implementations, each of the numbers N and M may be a positive integer, such as 1, 2, 3, 4, 5, or 6. In some implementations, the numbers N and M may be equal to, or different from, each other.
[0078] The extrapolation filter types may indicate multiple extrapolation filter regions of an extrapolation filter. Different extrapolation filter regions may have different filter shapes of the extrapolation filter. In some implementations, the number M of the at least one extrapolation filter type may be equal to three. FIGS. 4A-4C are schematic illustrations of three extrapolation filter regions 411-413, corresponding to three extrapolation filter types, in accordance with one or more example implementations of this disclosure. Additional extrapolation filter types may be added or fewer filter type candidates may be utilized without departing from the scope of the present disclosure. For example, when the number M of the at least one extrapolation filter type is equal to two, the decoder module 124 may determine a first filter region set including two of the extrapolation filter regions 411-413, or a second filter region set including one of the extrapolation filter regions 411-413 and another extrapolation filter region, different from the extrapolation filter regions 411-413.
[0079] Multiple neighboring sample positions in the extrapolation filter regions 411-413 may be located above a current sample position 401, located at a left side of the current sample position 401, and / or located at a top-left side of the current sample position 401.
[0080] In some implementations, three neighboring sample positions in the extrapolation filter region 411, as shown in FIG. 4A, may be located above the current sample position 401, three neighboring sample positions in the extrapolation filter region 411 may be located at the left side of the current sample position 401, and nine neighboring sample positions in the extrapolation filter region 411 may be located at the top-left side of the current sample position 401. In addition, the shape of a combination of the neighboring sample positions in the extrapolation filter region 411 and the current sample position 401 may be a square, and the size of the combination may be 4×4. Thus, the filter shape of the extrapolation filter, using extrapolation filter region 411, may be a 4×4 square shape. When a specific extrapolation filter type, corresponding to the extrapolation filter region 411, is selected for predicting and / or reconstructing the block unit, a sample value located at the current sample position 401 may be predicted based on the reconstructed neighboring samples, located at the neighboring sample positions in the extrapolation filter region 411.
[0081] In some other implementations, one neighboring sample position in the extrapolation filter region 412, as shown in FIG. 4B, may be located above the current sample position 401, seven neighboring sample positions in the extrapolation filter region 412 may be located at the left side of the current sample position 401, and seven neighboring sample positions in the extrapolation filter region 412 may be located at the top-left side of the current sample position 401. In addition, the shape of the combination of the neighboring sample positions in the extrapolation filter region 412 and the current sample position 401 may be a horizontal rectangle, and the size of the combination may be 8×2. Thus, the filter shape of the extrapolation filter, using extrapolation filter region 412, may be an 8×2 rectangle shape. When a specific extrapolation filter type, corresponding to the extrapolation filter region 412, is selected for predicting and / or reconstructing the block unit, the sample value located at the current sample position 401 may be predicted based on the reconstructed neighboring samples, located at the neighboring sample positions in the extrapolation filter region 412.
[0082] In yet some other implementations, seven neighboring sample positions in the extrapolation filter region 413, as shown in FIG. 4C, may be located above the current sample position 401, one neighboring sample position in the extrapolation filter region 413 may be located at the left side of the current sample position 401, and seven neighboring sample positions in the extrapolation filter region 413 may be located at the top-left side of the current sample position 401. In addition, the shape of the combination of the neighboring sample positions in the extrapolation filter region 413 and the current sample position 401 may be a vertical rectangle, and the size of the combination may be 2×8. Thus, the filter shape of the extrapolation filter, using extrapolation filter region 413, may be a 2×8 rectangle shape. When a specific extrapolation filter type, corresponding to the extrapolation filter region 413, is selected for predicting and / or reconstructing the block unit, the sample value located at the current sample position 401 may be predicted based on the reconstructed neighboring samples, located at the neighboring sample positions in the extrapolation filter region 413.
[0083] The extrapolation area types may indicate multiple block reference regions of the extrapolation filter. Different block reference regions may have different area shapes of the extrapolation filter. In some implementations, the number N of the at least one extrapolation area type may be equal to three. FIGS. 5A-5C are schematic illustrations of three block reference regions 521-523, corresponding to three extrapolation area types, in accordance with one or more example implementations of this disclosure. Additional extrapolation area types may be added or fewer area type candidates may be utilized without departing from the scope of the present disclosure. For example, when the number N of the at least one extrapolation area type may be equal to two, the decoder module 124 may determine a first area region set including two of the block reference regions 521-523, or a second area region set including one of the block reference regions 521-523 and another block reference region, different from the block reference regions 521-523.
[0084] In some implementations, the block reference region 521, as shown in FIG. 5A, may have a corner shape. In some other implementations, the block reference region 522, as shown in FIG. 5B, may be a horizontal rectangle, and the block reference region 523, as shown in FIG. 5C, may be a vertical rectangle. Multiple neighboring area positions in a block reference region may be located above the block unit 500, located at a left side of the block unit 500, or located at a top-left side of the block unit 500.
[0085] The block reference region 521, as shown in FIG. 5A, may correspond to a first one of the extrapolation area types. A portion of the neighboring area positions in the block reference region 521 may be located above the block unit 500, another portion of the neighboring area positions in the block reference region 521 may be located at the left side of the block unit 500, and the other portion of the neighboring area positions in the block reference region 521 may be located at the top-left side of the block unit 500. In some implementations, the size of the block reference region 521 may include an area height, aboveSize, of the neighboring area positions above the block unit 500 and an area width, leftSize, of the neighboring area positions at the left side of the block unit 500. When the first extrapolation area type, corresponding to the block reference region 521, is selected for the block unit 500, the reconstructed neighboring samples in the block reference region 521 may be used to derive multiple extrapolation coefficients of the extrapolation filter of the block unit 500. For example, the reconstructed neighboring samples located in multiple extrapolation filter regions 5111 and 5112 may be used to derive the extrapolation coefficients of the extrapolation filter of the block unit 500, when the extrapolation filter type, corresponding to the extrapolation filter region 411, as shown in FIG. 4A, is selected.
[0086] The block reference region 522, as shown in FIG. 5B, may correspond to a second one of the extrapolation area types. Each of the neighboring area positions in the block reference region 522 may be located above the block unit 500. In some implementations, the size of the block reference region 522 may include the area height, aboveSize, of the neighboring area positions in the block reference region 522 and the area width, leftSize, of the neighboring area positions at the top-left side of the block unit 500. When the second extrapolation area type, corresponding to the block reference region 522, is selected for the block unit 500, the reconstructed neighboring samples in the block reference region 522 may be used to derive the extrapolation coefficients of the extrapolation filter of the block unit 500. For example, the reconstructed neighboring samples located in multiple extrapolation filter regions 5113 and 5114 may be used to derive the extrapolation coefficients of the extrapolation filter of the block unit 500, when the extrapolation filter type, corresponding to the extrapolation filter region 411, as shown in FIG. 4A, is selected.
[0087] The block reference region 523, as shown in FIG. 5C, may correspond to a third one of the extrapolation area types. Each of the neighboring area positions in the block reference region 523 may be located at the left side of the block unit 500. In some implementations, the size of the block reference region 523 may include the area height, aboveSize, of the neighboring area positions at the top-left side of the block unit 500 and the area width, leftSize, of the neighboring area positions in the block reference region 523. When the third extrapolation area type, corresponding to the block reference region 523, is selected for the block unit 500, the reconstructed neighboring samples in the block reference region 523 may be used to derive the extrapolation coefficients of the extrapolation filter of the block unit 500. For example, the reconstructed neighboring samples located in multiple extrapolation filter regions 5115 and 5116 may be used to derive the extrapolation coefficients of the extrapolation filter of the block unit 500, when the extrapolation filter type, corresponding to the extrapolation filter region 411, as shown in FIG. 4A, is selected.
[0088] The size of the block reference region, such as the area width, leftSize, and the area height, aboveSize, may be determined based on at least one of the size or the extrapolation filter type of the block unit. In some implementations, the size of the block reference region may be determined only based on the size of the block unit. Thus, the size of the block reference regions may be determined only based on at least one of the width, Wb, or the height, Hb, of the block unit. For example, the size of the block reference regions may be determined only based on one of the width, Wb, and the height, Hb, of the block unit. In some implementations, the one of the width, Wb. and the height, Hb, of the block unit may be a shorter one, a longer one, or a predefined one of the width, Wb, and the height, Hb, of the block unit. For example, when the width, Wb, and the height, Hb, of the block unit are, respectively, 8 and 16, the size of the block reference regions may be determined based on the shorter one of the width, Wb, and the height, Hb, of the block unit, equal to 8.
[0089] In some other implementations, the size of the block reference region may be determined only based on the extrapolation filter type of the block unit. Thus, the size of the block reference region may be determined based on the extrapolation filter region, selected based on the extrapolation filter type. For example, when the size of the extrapolation filter region of the block unit is Wr×Hr, the area width, leftSize, of the block reference region may be equal to, or greater than, Wr, and the area height, aboveSize, may be equal to, or greater than, Hr. Thus, the block reference region may be large enough for the block unit to have enough predicted values to be applied into the extrapolation filter.
[0090] In yet some other implementations, the size of the block reference region may be determined based on both of the size and the extrapolation filter type of the block unit. For example, when the size of the block unit may be Wb × Hb and the size of the extrapolation filter region of the block unit may be Wr×Hr, the area width, leftSize, of the block reference region may be equal to, or greater than, min(Wb, Hb)+Wr-1, and the area height, aboveSize, may be equal to, or greater than, min(Wb, Hb)+Hr-1.
[0091] In some implementations, the at least one extrapolation area type and the at least one extrapolation filter type may be predefined in the decoder module 124.
[0092] Referring back to FIG. 3, at block 340, the decoder module 124 may derive multiple extrapolation filter models of the block unit, each derived based on a corresponding extrapolation area type and a corresponding extrapolation filter type.
[0093] With reference to FIGS. 1 and 2, the decoder module 124 may derive, based on the at least one extrapolation area type and the at least one extrapolation filter type, the extrapolation coefficients of the extrapolation filter of the block unit to determine the extrapolation filter models of the block unit. Each of the extrapolation filter models may have several extrapolation coefficients and correspond to one of the at least one extrapolation area type and one of the at least one extrapolation filter type.
[0094] The number of the extrapolation filter models of the block unit may be equal to a product value N×M generated by multiplying the number N of the at least one extrapolation area type by the number M of the at least one extrapolation filter type. Thus, the number of the extrapolation filter models of the block unit may be equal to N×M, and greater than one.
[0095] The decoder module 124 may determine, based on the at least one extrapolation area type, multiple block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type. The block reference regions may be predicted and / or reconstructed prior to the reconstruction of the block unit. The decoder module 124 may derive one of the extrapolation filter models of the block unit using the reconstructed neighboring samples in each of the block reference regions. Thus, the decoder module 124 may derive the extrapolation filter models of the block unit based on the block reference regions.
[0096] The number of the block reference regions for the extrapolation filter models may be equal to N×M. In some implementations, the number N of the at least one extrapolation area type may be less than the number N×M of the block reference regions when the number M of the at least one extrapolation filter type is greater than one. Thus, a portion of the block reference regions may be identical to each other. In some other implementations, the number N of the at least one extrapolation area type may be equal to the number N×M of the block reference regions when the number M of the at least one extrapolation filter type is equal to one. Thus, each of the block reference regions may be different from each other.
[0097] When the block unit may be predicted and / or reconstructed in the EIP mode, the block unit may be predicted using the reconstructed neighboring samples in the block reference region based on one of the following extrapolation functions of the extrapolation filter: where the coefficients, c0-c14, may be fifteenth filter coefficients of the extrapolation filter for the reconstructed neighboring samples determined based on the extrapolation filter types, each of the values, t ( x - OffsetXi, y - OffsetYi), may be one of reconstructed or predicted sample values of one of the reconstructed neighboring samples for predicting a current sample position, (x, y), relative to a top-left chroma sample of the block unit, an offset value, OffsetXi, may be a horizontal offset between the one of the reconstructed neighboring samples and the current sample position of the block unit, and an offset value, OffsetYi, may be a vertical offset between the one of the reconstructed neighboring samples and the current sample position of the block unit. In addition, a value, pred (x, y), may be a predicted sample value for the current sample position (x, y) of the block unit, a function, clip ( , , ), may be a clipping function used in the video coding standard, variables, min and max, may be maximum and minimum sample values, a variable, offset, may be an offset value, and a parameter, bitDepth, may be a bit-depth of the samples in the bitstream. It should be noted that the extrapolation functions may be changed without departing from the scope of the present disclosure.
[0098] The decoder module 124 may determine, based on the at least one extrapolation filter type, the extrapolation filter regions, each corresponding to one of the at least one extrapolation filter type. The decoder module 124 may derive one of the extrapolation filter models of the block unit by applying the reconstructed neighboring samples, included in a corresponding extrapolation filter region, into the extrapolation function of the extrapolation filter: Thus, the decoder module 124 may derive the extrapolation filter models of the block unit based on the extrapolation filter regions.
[0099] The number of the extrapolation filter regions for the extrapolation filter models may be equal to N×M. In some implementations, the number M of the at least one extrapolation filter type may be less than the number N×M of the extrapolation filter regions when the number N of the at least one extrapolation area type is greater than one. Thus, a portion of the extrapolation filter regions may be identical to each other. In some other implementations, the number M of the at least one extrapolation filter type may be equal to the number N×M of the extrapolation filter regions when the number N of the at least one extrapolation area type is equal to one. Thus, each of the extrapolation filter regions may be different from each other.
[0100] The decoder module 124 may derive the filter coefficients of the extrapolation filter to generate the extrapolation filter models of the block unit based on the at least one extrapolation area type and the at least one extrapolation filter type of the block unit. In some implementations, the filter coefficients of the extrapolation filter may be derived based on the LDL decomposition. In some other implementations, the filter coefficients of the extrapolation filter may be derived based on the gaussian elimination. In yet some other implementations, the filter coefficients of the extrapolation filter may be derived by the same method in convolutional cross-component model (CCCM) of the video coding standard.
[0101] Referring back to FIG. 3, at block 350, the decoder module 124 may determine multiple template matching costs, each calculated using a corresponding one of the extrapolation filter models of the block unit.
[0102] With reference to FIGS. 1 and 2, the decoder module 124 may determine a block template region for calculating the template matching cost. The block template region may neighbor the block unit in the current frame and be reconstructed prior to the reconstruction of the block unit.
[0103] The block template region may include at least one of a first block adjacent region, located at a left side of the block unit, a second block adjacent region, located above the block unit, a third block adjacent region, located at a top-left side of the block unit, a fourth block adjacent region, located at a bottom-left side of the block unit, and a fifth block adjacent region, located at an above-right side of the block unit. Since the first to the fifth block adjacent regions may be reconstructed prior to the reconstruction of the block unit, the block template region may be reconstructed prior to the reconstruction of the block unit. Thus, the decoder module 124 may be allowed to directly determine a reconstructed template result of the block template region when the block unit is being predicted and / or reconstructed. In some implementations, the size of the block template region may be determined based on the size of the block unit.
[0104] In some implementations, the block reference regions may be included in the block template region. In some implementations, one of the block reference regions may be identical to the block template region, and the other block reference regions may be different from, and smaller than, the block template region. In some other implementations, each of the block reference regions may be different from, and smaller than, the block template region.
[0105] In some other implementations, the block template region may be included in each of the block reference regions. In some implementations, one of the block reference regions may be identical to the block template region, and the other block reference regions may be different from, and greater than, the block template region. In some other implementations, each of the block reference regions may be different from, and greater than, the block template region.
[0106] In yet some other implementations, the block reference regions may be excluded from the block template region. Each of the block reference regions may be different from the block template region. Thus, each of the block reference regions may be smaller than, or greater than, the block template region. In addition, the sizes of the block reference regions may be identical to the size the block template region, even if the block reference regions are different from the block template region.
[0107] The decoder module 124 may predict the block template region using the extrapolation filter models to generate multiple predicted template results. Each of the predicted template results may be generated using a corresponding extrapolation filter model. In addition, each of the predicted template results may be associated with a corresponding extrapolation area type and a corresponding extrapolation filter type.
[0108] The decoder module 124 may determine the template cost values by comparing each of the predicted template results of the block template region with the reconstructed template result of the block template region. The difference between each of the predicted template results and the reconstructed template result of the block template region may be calculated based on a Mean Squared Error (MSE) calculation. In addition, the difference between each of the extrapolation template predictions and the reconstructed result of the block template region may be calculated based on one of a Sum of Squared Error (SSE) calculation, a Mean Absolute Difference (MAD) calculation, a Sum of Absolute Difference (SAD) calculation, a Sum of Absolute Transformed Difference (SATD) calculation, and a mean-removed sum of absolute difference (MR-SAD) calculation.
[0109] Each of the template matching costs may be generated based on a corresponding predicted template results, calculated using a corresponding extrapolation filter model. Thus, each of the template matching costs may also be associated with a corresponding extrapolation area type and a corresponding extrapolation filter type.
[0110] Referring back to FIG. 3, at block 360, the decoder module 124 may determine an arrangement of the extrapolation filter models based on the template matching costs.
[0111] With reference to FIGS. 1 and 2, the decoder module 124 may reorder the extrapolation filter models based on the determined arrangement to generate an extrapolation reordered list. In some implementations, the extrapolation filter models may be reordered in an ascending order or a descending order of the template cost values. In some implementations, the number of the extrapolation filter models in the extrapolation reordered list may be equal to, or less than, the total number of the extrapolation filter models in an extrapolation original list.
[0112] Before the arrangement is determined based on the template cost values, the extrapolation filter models may be ordered in the extrapolation original list based on one or more arbitrary rules. The extrapolation filter models may be reordered in the ascending order of the template cost values. Thus, when the template cost value of a specific one of the extrapolation filter models is less than the template cost values of the other extrapolation filter models, the specific extrapolation filter model may be moved forward to be a first extrapolation filter model based on the determined arrangement. In other words, the specific extrapolation filter model may be moved to be the first extrapolation filter model in the extrapolation reordered list when the template cost value of the specific extrapolation filter model is the minimum value of the template cost values. In addition, the specific extrapolation filter model may be moved to be the last one of the extrapolation filter models when the template cost value of the specific extrapolation filter model is the maximum of the template cost values
[0113] For example, the extrapolation filter models may include five extrapolation filter models, EFM1, EFM2, EFM3, EFM4 and EFM5, having five template cost values, TCV1, TCV2, TCV3, TCV4, and TCV5, respectively. When a value order of the five template cost values is TCV4 > TCV2 > TCV5 > TCV1 > TCV3, the arrangement of the extrapolation filter models may be changed from an original order of the five extrapolation filter models, EFM1, EFM2, EFM3, EFM4 and EFM5, to a new order of the five extrapolation filter models, EFM3, EFM1, EFM5, EFM2, and EFM4.
[0114] The arrangement may be further determined by adjusting the new order of the extrapolation filter models based on a diversity criterion. The decoder module 124 may determine a difference value between two of the template cost values selected based on two neighboring ones of the extrapolation filter models ordered in the new order. When the difference value is less than or equal to a diversity threshold, the last one of the two neighboring ones of the extrapolation filter models may be moved backward. For example, when the value order of the five cost values is TCV4 > TCV2 > TCV5 > TCV1 > TCV3, and the difference between two of the template cost values TCV5 and TCV1 is less than the diversity threshold, then the extrapolation filter models EFM5 may be moved backward. Therefore, the arrangement of the extrapolation filter models may be further changed from the new order of the five extrapolation filter models, EFM3, EFM1, EFM5, EFM2, and EFM4 to another new (or final) order of the five extrapolation filter models, EFM3, EFM1, EFM2, EFM5, and EFM4. In some implementations, the arrangement may not be determined by adjusting the new order of the extrapolation filter models based on the diversity criterion, such that the arrangement may be identical to the new order of the extrapolation filter models.
[0115] The decoder module 124 may select K extrapolation filter models having the least template cost values from the extrapolation filter models and add the selected extrapolation filter models into the extrapolation reordered list. The number K, being a positive integer, may be equal to the number of the extrapolation filter models in the extrapolation reordered list, and equal to, or less than, the total number N×M of the extrapolation filter models in the extrapolation original list. In other words, the decoder module 124 may select the first to the K-th extrapolation filter models ordered based on the arrangement when the extrapolation filter models are reordered in the ascending order of the template cost values to generate the arrangement. Thus, the number K may be equal to, or less than, the product value N×M.
[0116] In some implementations, each of the extrapolation filter models in the extrapolation reordered list may have an extrapolation index value. Thus, the extrapolation index values of the extrapolation filter models may be within a second index range of 0 to K-1 since the number of the extrapolation filter models in the extrapolation reordered list is equal to K. In some implementations, a size of the extrapolation original list may be greater than, or equal to, a size of the extrapolation reordered list. In other words, the number of extrapolation filter models in the extrapolation original list may be greater than, or equal to, the number of extrapolation filter models in the extrapolation reordered list.
[0117] Referring back to FIG. 3, at block 370, the decoder module 124 may reconstruct the block unit based on the arrangement of the extrapolation filter models.
[0118] With reference to FIGS. 1 and 2, in some implementations, the decoder module 124 may select at least one of the extrapolation filter models based on the arrangement of the extrapolation filter models. Then, the decoder module 124 may reconstruct the block unit using the selected at least one extrapolation filter model. In some implementations, the decoder module 124 may parse an extrapolation number index from the bitstream to determine the number of the selected at least one extrapolation filter model. In some other implementations, the number of the selected at least one extrapolation filter model may be predefined in the decoder module 124. In yet some other implementations, the number of the selected at least one extrapolation filter model may be derived based on other syntax elements by the decoder module 124. Thus, the decoder module 124 may determine the number of the selected at least one extrapolation filter model without parsing the extrapolation index from the bitstream.
[0119] The number of the selected at least one extrapolation filter model may be equal to one. The decoder module 124 may predict the block unit using the selected extrapolation filter model based on the reconstructed neighboring samples to generate a prediction block.
[0120] In some implementations, the decoder module 124 may parse an extrapolation reordered index from the bitstream for selecting one of the extrapolation filter models from the extrapolation reordered list. The extrapolation index value of the selected extrapolation filter model may be equal to the parsed extrapolation reordered index.
[0121] In some other implementations, the decoder module 124 may directly select a predefined one of the extrapolation filter models from the extrapolation reordered list without parsing the extrapolation reordered index from the bitstream. In some implementations, the predefined extrapolation filter model may be a first one of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the ascending order of the template cost values to generate the arrangement. In some other implementations, the predefined extrapolation filter model may be a last one of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the descending order of the template cost values to generate the arrangement.
[0122] The number of the selected at least one extrapolation filter model may be greater than one. The decoder module 124 may predict the block unit using the selected extrapolation filter models based on the reconstructed neighboring samples to generate multiple predicted blocks. Then, the decoder module 124 may fuse the predicted blocks to generate the prediction block. For example, the decoder module 124 may weightedly combine the predicted blocks to generate the prediction block.
[0123] In some implementations, when the number of the selected at least one extrapolation filter model may be equal to L, being a positive integer, greater than one, the decoder module 124 may parse L extrapolation reordered indices from the bitstream for selecting L extrapolation filter models from the extrapolation reordered list. Each of the extrapolation index values of the selected L extrapolation filter models may be equal to one of the parsed L extrapolation reordered indices.
[0124] In some other implementations, when the number of the selected at least one extrapolation filter model may be equal to L, the decoder module 124 may directly select a predefined set of L extrapolation filter models from the extrapolation reordered list without parsing any extrapolation reordered index from the bitstream. In some implementations, the predefined set of L extrapolation filter models may include a first L of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the ascending order of the template cost values to generate the arrangement. In some other implementations, the predefined set of L extrapolation filter models may include a last L of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the descending order of the template cost values to generate the arrangement.
[0125] Then, the decoder module 124 may determine multiple residual components of a residual block from the bitstream for the block unit and add the residual components into the prediction block to reconstruct the block unit. The decoder module 124 may reconstruct all of the other block units in the image frame for reconstructing the image frame and the video. The method / process 300 may then end.
[0126] FIG. 6 is a block diagram illustrating an encoder module 114 of the first electronic device 110 illustrated in FIG. 1, in accordance with one or more example implementations of this disclosure. The encoder module 114 may include a prediction processor (e.g., a prediction processing unit 6141), at least a first summer (e.g., a first summer 6142) and a second summer (e.g., a second summer 6145), a transform / quantization processor (e.g., a transform / quantization unit 6143), an inverse quantization / inverse transform processor (e.g., an inverse quantization / inverse transform unit 6144), a filter (e.g., a filtering unit 6146), a decoded picture buffer (e.g., a decoded picture buffer 6147), and an entropy encoder (e.g., an entropy encoding unit 6148). The prediction processing unit 6141 of the encoder module 114 may further include a partition processor (e.g., a partition unit 61411), an intra prediction processor (e.g., an intra prediction unit 61412), and an inter prediction processor (e.g., an inter prediction unit 61413). The encoder module 114 may receive the source video and encode the source video to output a bitstream.
[0127] The encoder module 114 may receive source video including multiple image frames and then divide the image frames according to a coding structure. Each of the image frames may be divided into at least one image block.
[0128] The at least one image block may include a luminance block having multiple luminance samples and at least one chrominance block having multiple chrominance samples. The luminance block and the at least one chrominance block may be further divided to generate macroblocks, CTUs, CBs, sub-divisions thereof, and / or other equivalent coding units.
[0129] The encoder module 114 may perform additional sub-divisions of the source video. It should be noted that the disclosed implementations are generally applicable to video coding regardless of how the source video is partitioned prior to and / or during the encoding.
[0130] During the encoding process, the prediction processing unit 6141 may receive a current image block of a specific one of the image frames. The current image block may be the luminance block or one of the chrominance blocks in the specific image frame.
[0131] The partition unit 61411 may divide the current image block into multiple block units. The intra prediction unit 61412 may perform intra-predictive coding of a current block unit relative to one or more neighboring blocks in the same frame, as the current block unit, in order to provide spatial prediction. The inter prediction unit 61413 may perform inter-predictive coding of the current block unit relative to one or more blocks in one or more reference image blocks to provide temporal prediction.
[0132] The prediction processing unit 6141 may select one of the coding results generated by the intra prediction unit 61412 and the inter prediction unit 61413 based on a mode selection method, such as a cost function. The mode selection method may be a rate-distortion optimization (RDO) process.
[0133] The prediction processing unit 6141 may determine the selected coding result and provide a predicted block corresponding to the selected coding result to the first summer 6142 for generating a residual block and to the second summer 6145 for reconstructing the encoded block unit. The prediction processing unit 6141 may further provide syntax elements, such as motion vectors, intra-mode indicators, partition information, and / or other syntax information, to the entropy encoding unit 6148.
[0134] The intra prediction unit 61412 may intra-predict the current block unit. The intra prediction unit 61412 may determine an intra prediction mode directed toward a reconstructed sample neighboring the current block unit in order to encode the current block unit.
[0135] The intra prediction unit 61412 may encode the current block unit using various intra prediction modes. The intra prediction unit 61412 of the prediction processing unit 6141 may select an appropriate intra prediction mode from the selected modes. The intra prediction unit 61412 may encode the current block unit using a cross-component prediction mode to predict one of the two chroma components of the current block unit based on the luma components of the current block unit. The intra prediction unit 61412 may predict a first one of the two chroma components of the current block unit based on the second of the two chroma components of the current block unit.
[0136] The inter prediction unit 61413 may inter-predict the current block unit as an alternative to the intra prediction performed by the intra prediction unit 61412. The inter prediction unit 61413 may perform motion estimation to estimate motion of the current block unit for generating a motion vector.
[0137] The motion vector may indicate a displacement of the current block unit within the current image block relative to a reference block unit within a reference image block. The inter prediction unit 61413 may receive at least one reference image block stored in the decoded picture buffer 6147 and estimate the motion based on the received reference image blocks to generate the motion vector.
[0138] The first summer 6142 may generate the residual block by subtracting the prediction block determined by the prediction processing unit 6141 from the original current block unit. The first summer 6142 may represent the component or components that perform this subtraction.
[0139] The transform / quantization unit 6143 may apply a transform to the residual block in order to generate a residual transform coefficient and then quantize the residual transform coefficients to further reduce the bit rate. The transform may be one of a DCT, DST, AMT, MDNSST, HyGT, signal-dependent transform, KLT, wavelet transform, integer transform, sub-band transform, and a conceptually similar transform.
[0140] The transform may convert the residual information from a pixel value domain to a transform domain, such as a frequency domain. The degree of quantization may be modified by adjusting a quantization parameter.
[0141] The transform / quantization unit 6143 may perform a scan of the matrix including the quantized transform coefficients. Alternatively, the entropy encoding unit 6148 may perform the scan.
[0142] The entropy encoding unit 6148 may receive multiple syntax elements from the prediction processing unit 6141 and the transform / quantization unit 6143, including a quantization parameter, transform data, motion vectors, intra modes, partition information, and / or other syntax information. The entropy encoding unit 6148 may encode the syntax elements into the bitstream.
[0143] The entropy encoding unit 6148 may entropy encode the quantized transform coefficients by performing CAVLC, CABAC, SBAC, PIPE coding, or another entropy coding technique to generate an encoded bitstream. The encoded bitstream may be transmitted to another device (e.g., the second electronic device 120, as shown in FIG. 1) or archived for later transmission or retrieval.
[0144] The inverse quantization / inverse transform unit 6144 may apply inverse quantization and inverse transformation to reconstruct the residual block in the pixel domain for later use as a reference block. The second summer 6145 may add the reconstructed residual block to the prediction block provided by the prediction processing unit 6141 in order to produce a reconstructed block for storage in the decoded picture buffer 6147.
[0145] The filtering unit 6146 may include a deblocking filter, an SAO filter, a bilateral filter, and / or an ALF to remove blocking artifacts from the reconstructed block. Other filters (in loop or post loop) may be used in addition to the deblocking filter, the SAO filter, the bilateral filter, and the ALF. Such filters are not illustrated for brevity and may filter the output of the second summer 6145.
[0146] The decoded picture buffer 6147 may be a reference picture memory that stores the reference block to be used by the encoder module 614 to encode video, such as in intra-coding or inter-coding modes. The decoded picture buffer 6147 may include a variety of memory devices, such as DRAM (e.g., including SDRAM), MRAM, RRAM, or other types of memory devices. The decoded picture buffer 6147 may be on-chip with other components of the encoder module 114 or off-chip relative to those components.
[0147] The method / process 300 for decoding and / or encoding video data may be performed by the first electronic device 110. With reference to FIGS. 1 and 6, at block 310, the method / process 300 may start by the encoder module 114 receiving the video data. The video data received by the encoder module 114 may be a video. At block 320, the encoder module 114 may determine a block unit from a current frame included in the video data. In some implementations, the encoder module 114 may divide the current frame to generate multiple CTUs, and further divide a current CTU included in the CTUs to generate multiple divided blocks and to determine the block unit from the divided blocks, according to the partition indications (e.g., based on any video coding standard). In some other implementations, the encoder module 114 may divide the current frame to generate multiple slices or multiple tiles, and further divide a current slice, included in the slices, or a current tile, included in the tiles, to generate multiple CTUs. In addition, the encoder module 114 may further divide a current CTU included in the CTUs to generate multiple divided blocks and to determine the block unit from the divided blocks, according to the partition indications.
[0148] At block 330, the encoder module 114 may determine at least one extrapolation area type and at least one extrapolation filter type. With reference to FIGS. 1 and 6, the at least one extrapolation area type and the at least one extrapolation filter type, determined by the encoder module 114, may be identical to those, determined by the decoder module 124.
[0149] In order to predict and / or reconstruct the block unit using an extrapolation filter-based intra prediction (EIP) mode, the encoder module 114 may first determine the at least one extrapolation area type and the at least one extrapolation filter type, used for the EIP mode. The number of the at least one extrapolation area type, determined by the encoder module 114, may be identical to that, determined by the decoder module 124. In addition, the number of the at least one extrapolation filter type, determined by the encoder module 114, may be identical to that, determined by the decoder module 124. In addition, the sizes and the shapes of the extrapolation filter regions, determined based on the at least one extrapolation filter type by the encoder module 114, may be identical to those, determined by the decoder module 124. The sizes and the shapes of the block reference regions, determined based on the at least one extrapolation area type by the encoder module 114, may be identical to those, determined by the decoder module 124.
[0150] In some implementations, the at least one extrapolation area type and the at least one extrapolation filter type may be predefined in the encoder module 114.
[0151] At block 340, the encoder module 114 may derive multiple extrapolation filter models of the block unit, each derived based on a corresponding extrapolation area type and a corresponding extrapolation filter type. With reference to FIGS. 1 and 6, the extrapolation filter models of the block unit, determined by the encoder module 114, may be identical to those, determined by the decoder module 124.
[0152] The encoder module 114 may derive, based on the at least one extrapolation area type and the at least one extrapolation filter type, the extrapolation coefficients of the extrapolation filter of the block unit to determine the extrapolation filter models of the block unit. Each of the extrapolation filter models may have several extrapolation coefficients and correspond to one of the at least one extrapolation area type and one of the at least one extrapolation filter type. The number of the extrapolation filter models, determined by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0153] When the block unit may be predicted and / or reconstructed in the EIP mode, the block unit may be predicted using the reconstructed neighboring samples in the block reference region based on a specific one of the extrapolation functions of the extrapolation filter. The specific extrapolation function of the extrapolation filter, used by the encoder module 114, may be identical to that, used by the decoder module 124. It should be noted that the extrapolation functions may be changed without departing from the scope of the present disclosure.
[0154] The encoder module 114 may derive the filter coefficients of the extrapolation filter to generate the extrapolation filter models of the block unit based on the at least one extrapolation area type and the at least one extrapolation filter type of the block unit. In some implementations, the filter coefficients of the extrapolation filter may be derived based on the LDL decomposition, the gaussian elimination, or the same method in convolutional cross-component model (CCCM) of the video coding standard. The process, for deriving the filter coefficients by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0155] Referring back to FIG. 3, at block 350, the encoder module 114 may determine multiple template matching costs, each calculated using a corresponding one of the extrapolation filter models of the block unit. With reference to FIGS. 1 and 6, the calculating method of the template matching costs, used by the encoder module 114, may be identical to that, used by the decoder module 124. Thus, the calculating result of the template matching costs, generated by the encoder module 114, may be identical to that, used by the decoder module 124.
[0156] The encoder module 114 may determine a block template region for calculating the template matching cost. The block template region may neighbor the block unit in the current frame and be reconstructed prior to the reconstruction of the block unit. The block template region, determined by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0157] The encoder module 114 may determine the template cost values by comparing each of the predicted template results of the block template region with the reconstructed template result of the block template region. The comparison method, used by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0158] Referring back to FIG. 3, at block 360, the encoder module 114 may determine an arrangement of the extrapolation filter models based on the template matching costs. With reference to FIGS. 1 and 6, the reordering method, used for determining the arrangement by the encoder module 114, may be identical to that, used by the decoder module 124. Thus, the arrangement of the extrapolation filter models, determined by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0159] The encoder module 114 may reorder the extrapolation filter models based on the determined arrangement to generate an extrapolation reordered list. In some implementations, the extrapolation filter models may be reordered in an ascending order or a descending order of the template cost values.
[0160] The encoder module 114 may select K extrapolation filter models having the least template cost values from the extrapolation filter models in an extrapolation original list and add the selected extrapolation filter models into the extrapolation reordered list. The number K, being a positive integer, may be equal to, or less than, the total number of the extrapolation filter models in the extrapolation original list. The number of the extrapolation filter models in the extrapolation reordered list, determined by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0161] In some implementations, each of the extrapolation filter models in the extrapolation reordered list may have an extrapolation index value. Thus, the extrapolation index values of the extrapolation filter models may be within a second index range of 0 to K-1 since the number of the extrapolation filter models in the extrapolation reordered list is equal to K. The relationship between the extrapolation index values and the extrapolation filter models of the extrapolation reordered list, determined by the encoder module 114, may be identical to that, determined by the decoder module 124.
[0162] Referring back to FIG. 3, at block 370, the encoder module 114 may reconstruct the block unit based on the arrangement of the extrapolation filter models.
[0163] With reference to FIGS. 1 and 6, in some implementations, the encoder module 114 may predict the block unit using each of the extrapolation filter models in the extrapolation reordered list to generate multiple first prediction blocks. In some other implementations, the encoder module 114 may predict the block unit using each of the extrapolation filter models in the extrapolation reordered list to generate multiple predicted blocks. Then, the encoder module 114 may fuse a portion of the predicted blocks to generate one of multiple second prediction blocks. For example, the encoder module 114 may weightedly combine a first two of the predicted blocks to generate a first one of the second prediction blocks. In addition, the encoder module 114 may weightedly combine a first one and a third one of the predicted blocks to generate a second one of the second prediction blocks. The encoder module 114 may further weightedly combine a first four of the predicted blocks to generate another of the second prediction blocks. In addition, the encoder module 114 may predict the block unit based on other prediction modes to generate multiple third prediction blocks.
[0164] In some implementations, the encoder module 114 may select one of the first prediction blocks, the second prediction blocks, and the third prediction blocks based on a mode selection method, such as a cost function. In some implementations, the encoder module 114 may select one of the first prediction blocks and the second prediction blocks based on the mode selection method. In some implementations, the encoder module 114 may select one of the first prediction blocks and the third prediction blocks based on the mode selection method. In some implementations, the encoder module 114 may select one of the second prediction blocks and the third prediction blocks based on the mode selection method. In some other implementations, the encoder module 114 may select one of the first prediction blocks based on the mode selection method. In yet some other implementations, the encoder module 114 may select one of the second prediction blocks based on the mode selection method.
[0165] The mode selection method may be an RDO process, a Sum of Absolute Difference (SAD) process, a Sum of Absolute Transformed Difference (SATD) process, a Mean Absolute Difference (MAD) process, a Mean Squared Difference (MSD) process, and a Structural SIMilarity (SSIM) process. The encoder module 114 may provide the selected coding result to the first summer 6142 for generating multiple residual component of a residual block in the block unit and to the second summer 6145 for reconstructing the encoded block unit. The reconstruction of the block unit by the encoder module 114 may be identical to the reconstruction of the block unit by the decoder module 124.
[0166] When the selected coding result corresponds to one of the first prediction blocks, there may be only one selected extrapolation filter model, used for predicting and / or reconstructing the block unit. In some implementations, the encoder module 114 may further provide syntax elements, such as an extrapolation reordered index, included in the bitstream and indicating the selected extrapolation filter model, for transmitting to the decoder module 124.
[0167] In some other implementations, when the selected extrapolation filter model is a predefined one of the extrapolation filter models, the encoder module 114 may not provide any extrapolation reordered index into the bitstream. In some implementations, the predefined extrapolation filter model may be a first one of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the ascending order of the template cost values to generate the arrangement. In some other implementations, the predefined extrapolation filter model may be a last one of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the descending order of the template cost values to generate the arrangement.
[0168] When the selected coding result corresponds to the second prediction blocks, there may be multiple selected extrapolation filter models, used for predicting and / or reconstructing the block unit. In some implementations, the encoder module 114 may further provide syntax elements, such as multiple extrapolation reordered indices, included in the bitstream and indicating the selected extrapolation filter models, for transmitting to the decoder module 124.
[0169] In some other implementations, when the selected extrapolation filter models are included in a predefined set of L extrapolation filter models, the encoder module 114 may not provide any extrapolation reordered index into the bitstream. In some implementations, the number L, equal to the number of the selected extrapolation filter models, may be a positive integer, greater than one. In some implementations, the predefined set of L extrapolation filter models may include a first L of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the ascending order of the template cost values to generate the arrangement. In some other implementations, the predefined set of L extrapolation filter models may include a last L of the extrapolation filter models in the extrapolation reordered list when the extrapolation filter models are reordered in the descending order of the template cost values to generate the arrangement.
[0170] Furthermore, in some implementations, the encoder module 114 may provide an extrapolation number index, indicating the number of the selected at least one extrapolation filter model, into the bitstream. In some other implementations, the number of the selected at least one extrapolation filter model, predefined in the encoder module 114, may be identical to that, predefined in the decoder module 124. In yet some other implementations, the number of the selected at least one extrapolation filter model may be derivable by the decoder module 124 based on other syntax elements, provided by the encoder module 114. Thus, the encoder module 114 may not provide any extrapolation number index into the bitstream.
[0171] The encoder module 114 may predict and reconstruct all of the other block units in the image frame for reconstructing the image frame and the video. The method / process 300 for the encoder module 114 may then end.
[0172] The disclosed implementations are to be considered in all respects as illustrative and not restrictive. It should also be understood that the present disclosure is not limited to the specific disclosed implementations, but that many rearrangements, modifications, and substitutions are possible without departing from the scope of the present disclosure.
Claims
1. A non-transitory machine-readable medium of an electronic device storing one or more computer-executable instructions for decoding video data, the one or more computer-executable instructions, when executed by at least one processor of the electronic device, causing the electronic device to: receive the video data; determine a block unit from a current frame included in the video data; determine at least one extrapolation area type and at least one extrapolation filter type, wherein: a number of the at least one extrapolation area type is equal to N, a number of the at least one extrapolation filter type is equal to M, and at least one of the numbers N or M is greater than one; derive a plurality of extrapolation filter models of the block unit, each of the plurality of extrapolation filter models derived based on a corresponding one of the at least one extrapolation area type and a corresponding one of the at least one extrapolation filter type; determine a plurality of template matching costs, each calculated using a corresponding one of the plurality of extrapolation filter models of the block unit; determine an arrangement of the plurality of extrapolation filter models based on the plurality of template matching costs; and reconstruct the block unit based on the arrangement of the plurality of extrapolation filter models.
2. The non-transitory machine-readable medium according to claim 1, wherein: a number of the plurality of extrapolation filter models is equal to N×M, and greater than one, and each of the numbers N and M is a positive integer, equal to, or different from, each other.
3. The non-transitory machine-readable medium according to claim 1, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine a block template region, neighboring the block unit and reconstructed prior to reconstructing the block unit; determine a reconstructed template result of the block template region; and predict the block template region using the plurality of extrapolation filter models to generate a plurality of predicted template results, each of the plurality of predicted template results generated using a corresponding of the plurality of extrapolation filter models, wherein: determining the plurality of template matching costs further comprises comparing each of the plurality of predicted template results with the reconstructed template result to generate the plurality of template matching costs, and each of the plurality of template matching costs is generated based on a corresponding one of the plurality of predicted template results.
4. The non-transitory machine-readable medium according to claim 3, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, a plurality of block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the plurality of extrapolation filter models of the block unit is further based on the plurality of block reference regions, and the plurality of block reference regions is included in the block template region.
5. The non-transitory machine-readable medium according to claim 3, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, a plurality of block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the plurality of extrapolation filter models of the block unit is further based on the plurality of block reference regions, and the plurality of block reference regions is excluded from the block template region.
6. The non-transitory machine-readable medium according to claim 1, wherein reconstructing the block unit based on the arrangement of the plurality of extrapolation filter models further comprises: selecting at least one of the plurality of extrapolation filter models based on the arrangement of the plurality of extrapolation filter models; and reconstructing the block unit based on the selected at least one of the plurality of extrapolation filter models.
7. The non-transitory machine-readable medium according to claim 6, wherein reconstructing the block unit based on the selected at least one of the plurality of extrapolation filter models further comprises: when a number of the selected at least one of the plurality of extrapolation filter models is greater than one, predicting the block unit based on the selected at least one of the plurality of extrapolation filter models to generate a plurality of predicted blocks; and reconstructing the block unit by fusing the plurality of predicted blocks.
8. An electronic device for decoding video data, the electronic device comprising: at least one processor; and at least one non-transitory computer-readable medium coupled to the at least one processor and storing one or more computer-executable instructions that, when executed by the at least one processor, cause the electronic device to: receive the video data; determine a block unit from a current frame included in the video data; determine at least one extrapolation area type and at least one extrapolation filter type, wherein: a number of the at least one extrapolation area type is equal to N, a number of the at least one extrapolation filter type is equal to M, and at least one of the numbers N or M is greater than one; derive a plurality of extrapolation filter models of the block unit, each of the plurality of extrapolation filter models derived based on a corresponding one of the at least one extrapolation area type and a corresponding one of the at least one extrapolation filter type; determine a plurality of template matching costs, each calculated using a corresponding one of the plurality of extrapolation filter models of the block unit; determine an arrangement of the plurality of extrapolation filter models based on the plurality of template matching costs; and reconstruct the block unit based on the arrangement of the plurality of extrapolation filter models.
9. The electronic device according to claim 8, wherein: a number of the plurality of extrapolation filter models is equal to N×M, and greater than one, and each of the numbers N and M is a positive integer, equal to, or different from, each other.
10. The electronic device according to claim 8, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine a block template region, neighboring the block unit and reconstructed prior to reconstructing the block unit; determine a reconstructed template result of the block template region; and predict the block template region using the plurality of extrapolation filter models to generate a plurality of predicted template results, each of the plurality of predicted template results generated using a corresponding of the plurality of extrapolation filter models, wherein: determining the plurality of template matching costs further comprises comparing each of the plurality of predicted template results with the reconstructed template result to generate the plurality of template matching costs, and each of the plurality of template matching costs is generated based on a corresponding one of the plurality of predicted template results.
11. The electronic device according to claim 10, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, a plurality of block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the plurality of extrapolation filter models of the block unit is further based on the plurality of block reference regions, and the plurality of block reference regions is included in the block template region.
12. The electronic device according to claim 10, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area types a plurality of block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the plurality of extrapolation filter models of the block unit is further based on the plurality of block reference regions, and the plurality of block reference regions is excluded from the block template region.
13. The electronic device according to claim 8, wherein reconstructing the block unit based on the arrangement of the plurality of extrapolation filter models further comprises: selecting at least one of the plurality of extrapolation filter models based on the arrangement of the plurality of extrapolation filter models; and reconstructing the block unit based on the selected at least one of the plurality of extrapolation filter models.
14. An electronic device for encoding video data, the electronic device comprising: at least one processor; and at least one non-transitory computer-readable medium coupled to the at least one processor and storing one or more computer-executable instructions that, when executed by the at least one processor, cause the electronic device to: receive the video data; determine a block unit from a current frame included in the video data; determine at least one extrapolation area type and at least one extrapolation filter type, wherein: a number of the at least one extrapolation area type is equal to N, a number of the at least one extrapolation filter type is equal to M, and at least one of the numbers N or M is greater than one; derive a plurality of extrapolation filter models of the block unit, each of the plurality of extrapolation filter models derived based on a corresponding one of the at least one extrapolation area type and a corresponding one of the at least one extrapolation filter type; determine a plurality of template matching costs, each calculated using a corresponding one of the plurality of extrapolation filter models of the block unit; determine an arrangement of the plurality of extrapolation filter models based on the plurality of template matching costs; and predict the block unit based on the arrangement of the plurality of extrapolation filter models.
15. The electronic device according to claim 14, wherein: a number of the plurality of extrapolation filter models is equal to N×M, and greater than one, and each of the numbers N and M is a positive integer, equal to, or different from, each other.
16. The electronic device according to claim 14, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine a block template region, neighboring the block unit and reconstructed prior to predicting the block unit; determine a reconstructed template result of the block template region; and predict the block template region using the plurality of extrapolation filter models to generate a plurality of predicted template results, each of the plurality of predicted template results generated using a corresponding of the plurality of extrapolation filter models, wherein: determining the plurality of template matching costs further comprises comparing each of the plurality of predicted template results with the reconstructed template result to generate the plurality of template matching costs, and each of the plurality of template matching costs is generated based on a corresponding one of the plurality of predicted template results.
17. The electronic device according to claim 16, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, a plurality of block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the plurality of extrapolation filter models of the block unit is further based on the plurality of block reference regions, and the plurality of block reference regions is included in the block template region.
18. The electronic device according to claim 16, wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to: determine, based on the at least one extrapolation area type, a plurality of block reference regions, each neighboring the block unit and corresponding to one of the at least one extrapolation area type, wherein: deriving the plurality of extrapolation filter models of the block unit is further based on the plurality of block reference regions, and the plurality of block reference regions is excluded from the block template region.
19. The electronic device according to claim 14, wherein predicting the block unit based on the arrangement of the plurality of extrapolation filter models further comprises: selecting at least one of the plurality of extrapolation filter models based on the arrangement of the plurality of extrapolation filter models; and predicting the block unit based on the selected at least one of the plurality of extrapolation filter models.
20. The electronic device according to claim 19, wherein reconstructing the block unit based on the selected at least one of the plurality of extrapolation filter models further comprises: when a number of the selected at least one of the plurality of extrapolation filter models is greater than one, predicting the block unit based on the selected at least one of the plurality of extrapolation filter models to generate a plurality of predicted blocks; and reconstructing the block unit by fusing the plurality of predicted blocks.
Citation Information
Cited By
Methods, products and equipment for photovoltaic power forecasting based on space-ground collaborative observation
CN122573209A