Method and apparatus for decoding or encoding video signal
Through adaptive Hadamard filtering technology, the problems of low filtering efficiency and high dependence on CU boundaries in existing video encoding technologies are solved, and more efficient video encoding performance is achieved.
Patent Information
- Application Number
- CN202510117784.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-11
- Filing Date
- 2020-03-10
- Publication Date
- 2025-05-13
AI Technical Summary
When improving coding efficiency, existing video encoding technologies have problems such as low filtering efficiency, high dependence on CU boundaries, and inability to adapt to different coding modes.
Adaptive Hadamard filtering technology is adopted to generate more samples through extrapolation to expand the encoding unit, adapt to different spectral components using different filter intensities, and adjust the filter intensity according to the encoding mode.
The filtering efficiency is improved, the dependence on CU boundaries is reduced, and the adaptability of filtering to different encoding modes is enhanced, thereby improving the overall performance of video encoding.
Smart Images

Figure CN119996680A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese invention patent application with application date of March 10, 2020, application number 202080033586.5, and invention name “Method and system for post-reconstruction filtering”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application is a non-provisional filing of U.S. Provisional Patent Application Serial No. 62 / 816,695, filed on March 11, 2019, and entitled “Methods and Systems for Post-Reconstruction Filtering,” and claims the benefit of that patent application under 35 U.S.C. §119(e), which is incorporated herein by reference in its entirety. Background Art
[0004] Video coding systems are widely used to compress digital video signals to reduce the storage requirements and / or transmission bandwidth of such signals. Among various types of video coding systems, such as block-based systems, wavelet-based systems, and object-based systems, block-based hybrid video coding systems are most widely used and deployed. Examples of block-based video coding systems include international video coding standards developed by ITU-T / SG16 / Q.6 / VCEG and JCT-VC (Joint Collaborative Team on Video Coding) of ISO / IEC / MPEG, such as MPEG1 / 2 / 4 Part 2, H.264 / MPEG-4 Part 10 AVC, VC-1, and High Efficiency Video Coding (HEVC).
[0005] The first version of the HEVC standard was completed in October 2013 and provides approximately 50% bitrate savings for equivalent perceptual quality compared to the previous generation video coding standard H.264 / MPEG AVC. Although the HEVC standard provides significant coding improvements over its predecessor, there is evidence that superior coding efficiency can be achieved with additional coding tools than HEVC. Based on this, both VCEG and MPEG have begun exploring new coding techniques for future video coding standardization. In October 2015, ITU-T VCEG and ISO / IEC MPEG formed the Joint Video Exploration Team (JVET) to begin extensive research on advanced technologies that can achieve significant improvements in coding efficiency over HEVC. In the same month, a software code base, called the Joint Exploration Model (JEM), was established for future video coding exploration work. The JEM reference software is based on the HEVC Test Model (HM) developed by JCT-VC for HEVC. Additional proposed coding tools can be integrated into the JEM software and tested using the JVET Common Test Conditions (CTC).
[0006] In October 2017, ITU-T and ISO / IEC jointly issued a Request for Proposals (CfP) for video compression with capabilities beyond HEVC. In April 2018, 22 CfP responses for the standard dynamic range category were received and evaluated at the 10th JVET meeting, demonstrating coding efficiency gains of approximately 40% over HEVC. Based on these evaluation results, the Joint Video Experts
[0007] The JVET team (JVET) launched a new project to develop a new generation of video coding standards called Versatile Video Coding (VVC). In the same month, a reference software code base, called VVC Test Model (VTM), was established to demonstrate the reference implementation of the VVC standard. For the initial VTM-1.0, most coding modules, including intra prediction, inter prediction, transform / inverse transform and quantization / dequantization, and loop filters follow the existing HEVC design, except that a block partition structure based on multi-type trees is used in VTM. Summary of the invention
[0008] Embodiments described herein include methods for video encoding and decoding (collectively referred to as "coding").
[0009] In some embodiments, a method for decoding a video signal is provided, comprising: reconstructing multiple samples in a current block of samples; applying a transform to a first group of samples to generate a set of spectral components, the first group of samples including at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position-dependent; and applying an inverse transform of the transform to the filtered spectral components to generate multiple filtered samples corresponding to the first group of samples.
[0010] In some embodiments, a device for decoding a video signal is provided, the device comprising one or more processors configured to perform: reconstructing multiple samples in a current block of samples; applying a transform to a first group of samples to generate a set of spectral components, the first group of samples comprising at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position-dependent; and applying an inverse transform of the transform to the filtered spectral components to generate multiple filtered samples corresponding to the first group of samples.
[0011] In some embodiments, a method for encoding a video signal is provided, comprising: reconstructing multiple samples in a current block of samples; applying a transform to a first group of samples to generate a set of spectral components, the first group of samples including at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position-dependent; and applying an inverse transform of the transform to the filtered spectral components to generate multiple filtered samples corresponding to the first group of samples.
[0012] In some embodiments, a device for encoding a video signal is provided, the device comprising one or more processors configured to perform: reconstructing multiple samples in a current block of samples; applying a transform to a first group of samples to generate a set of spectral components, the first group of samples comprising at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position-dependent; and applying an inverse transform of the transform to the filtered spectral components to generate multiple filtered samples corresponding to the first group of samples.
[0013] In some embodiments, a plurality of samples in the current block of samples are reconstructed. A transform is applied to a first set of samples to generate a set of original spectral components, the first set of samples including at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block. A filter is applied to at least one of the original spectral components to generate a set of filtered spectral components. An inverse transform is applied to the filtered spectral components to generate a plurality of filtered samples corresponding to the first set of samples.
[0014] In some embodiments, the transform is a Hadamard transform and the spectral components are Hadamard spectral components.
[0015] In some embodiments, the first set of samples also includes at least one extrapolated sample outside the current coding unit.Such embodiments may include generating an extrapolated sample value for the extrapolated sample based on the reconstructed samples in the current coding unit.
[0016] In some embodiments, the first set of samples also includes at least one extrapolated sample outside the current coding unit. Such embodiments may include generating an extrapolated sample value for the extrapolated sample based on the reconstructed sample in the current coding unit, wherein generating the extrapolated sample value is performed using at least one extrapolation method selected from linear extrapolation, cubic extrapolation, bilinear extrapolation, and bicubic extrapolation.
[0017] In some embodiments, the current coding unit is intra-coded, and the first set of samples also includes at least one prediction sample outside the current coding unit. In such embodiments, the prediction sample value may be generated for the prediction sample using the intra-coding mode of the current coding unit.
[0018] In some embodiments, the current coding unit is inter-coded, and the first set of samples also includes at least one prediction sample outside the current coding unit. In such embodiments, a motion vector of the current coding unit may be used to generate a prediction sample value for the prediction sample.
[0019] In some embodiments, the current coding unit is inter-coded, and the first set of samples also includes at least one prediction sample outside the current coding unit. In such embodiments, a rounded version of the motion vector of the current coding unit may be used to generate a prediction sample value for the prediction sample.
[0020] In some embodiments, the first set of samples also includes at least one padding sample outside the current coding unit. In such embodiments, the value of a reconstructed sample adjacent to the padding sample may be used as the padding sample value of the padding sample.
[0021] In some embodiments, the first set of samples includes at least sixteen samples.
[0022] In some embodiments, applying the filter to at least one of the original Hadamard spectral components includes determining
[0023]
[0024] in is the original Hadamard spectrum component, and is the corresponding filtered Hadamard spectrum component.
[0025] In some implementations, the filtered samples are stored in a decoded picture buffer.
[0026] In additional embodiments, encoder and decoder systems are provided that perform the methods described herein.
[0027] Some embodiments include at least one processor configured to perform any of the methods described herein. In some such embodiments, a computer-readable medium (eg, non-transitory medium) storing instructions for performing any of the methods described herein is provided.
[0028] Some embodiments include a computer-readable medium (eg, non-transitory medium) storing video encoded using one or more of the methods disclosed herein.
[0029] The encoder or decoder system may include a processor and a non-transitory computer-readable medium storing instructions for performing the methods described herein.
[0030] One or more embodiments of the present invention also provide a computer-readable storage medium having stored thereon instructions for filtering, encoding, or decoding video data according to any of the above methods. Embodiments of the present invention also provide a computer-readable storage medium having stored thereon a bitstream generated according to the above method. Embodiments of the present invention also provide a method and apparatus for transmitting a bitstream generated according to the above method. Embodiments of the present invention also provide a computer program product including instructions for performing any of the methods described. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1A is a system diagram illustrating an exemplary communication system in which one or more disclosed embodiments may be implemented.
[0032] Figure 1B It is shown that according to the embodiment, Figure 1A A system diagram of an exemplary wireless transmit / receive unit (WTRU) for use within a communication system is shown.
[0033] Figure 1C is a functional block diagram of a system used in some embodiments described herein.
[0034] Figure 2A is a functional block diagram of a block-based video encoder, such as the encoder used for VVC.
[0035] Figure 2B is a functional block diagram of a block-based video decoder, such as the decoder used for VVC.
[0036] FIG. 3A to FIG. 3E shows block partitioning of multiple types of tree structures: quad partitioning ( Figure 3A ); vertical binary partitioning ( Figure 3B ); horizontal binary partitioning ( Figure 3C ); vertical three-way partitioning ( Figure 3D ); horizontal ternary partitioning ( Figure 3E ).
[0037] Figure 4 The Hadamard transform domain filtering is shown. Sample A is the current sample; sample B, sample C, and sample D are neighboring samples.
[0038] Figure 5 Expanding a CU using samples available in a line buffer is shown according to some embodiments.
[0039] Figure 6 16-point Hadamard transform domain filtering is shown. Sample A is the current sample; samples B to P are neighboring samples.
[0040] FIG. 7A to FIG. 7B Frequency grouping in a 16-point Hadamard transform is shown according to some embodiments. Fig. 7A Diagonal grouping is shown; Figure 7B An L-shaped grouping is shown.
[0041] Figure 8 is a diagram showing an example of an encoded bitstream structure.
[0042] Fig. 9 is a diagram illustrating an exemplary communication system.
[0043] Fig.10 is a flow chart illustrating a method performed in some embodiments.
[0044] Exemplary Networks and Systems for Implementing Embodiments
[0045] Figure 1A 1 is a schematic diagram illustrating an exemplary communication system 100 in which one or more disclosed embodiments may be implemented. The communication system 100 may be a multiple access system that provides content such as voice, data, video, messaging, broadcast, etc. to multiple wireless users. The communication system 100 may enable multiple wireless users to access such content through sharing of system resources (including wireless bandwidth). For example, the communication system 100 may employ one or more channel access methods such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), zero tail unique word DFT spread OFDM (ZT UW DTS-s OFDM), unique word OFDM (UW-OFDM), resource block filtered OFDM, filter bank multi-carrier (FBMC), etc.
[0046] like Figure 1AAs shown, the communication system 100 may include wireless transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, a RAN 104, a CN 106, a public switched telephone network (PSTN) 108, the Internet 110 and other networks 112, but it should be understood that the disclosed embodiments contemplate any number of WTRUs, base stations, networks, and / or network elements. Each of the WTRUs 102a, 102b, 102c, 102d may be any type of device configured to operate and / or communicate in a wireless environment. By way of example, the WTRUs 102a, 102b, 102c, 102d (any of which may be referred to as a “station” and / or “STA”) may be configured to transmit and / or receive wireless signals and may include user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a subscription-based unit, a pager, a cellular phone, a personal digital assistant (PDA), a smart phone, a laptop, a netbook, a personal computer, a wireless sensor, a hotspot or Mi-Fi device, an Internet of Things (IoT) device, a watch or other wearable device, a head-mounted display (HMD), a vehicle, a drone, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in an industrial and / or automated process chain environment), a consumer electronic device, a device operating on a commercial and / or industrial wireless network, etc. Any of the WTRUs 102a, 102b, 102c, and 102d may be interchangeably referred to as a UE.
[0047] The communication system 100 may also include a base station 114a and / or a base station 114b. Each of the base stations 114a, 114b may be any type of device that is configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communication networks, such as the CN 106, the Internet 110, and / or other networks 112. By way of example, the base stations 114a, 114b may be a base transceiver station (BTS), a Node B, an eNode B, a Home Node B, a Home eNode B, a gNB, an NR Node B, a site controller, an access point (AP), a wireless router, and the like. While the base stations 114a, 114b are each depicted as a single element, it will be appreciated that the base stations 114a, 114b may include any number of interconnected base stations and / or network elements.
[0048] The base station 114a may be part of the RAN 104, which may also include other base stations and / or network elements (not shown), such as a base station controller (BSC), a radio network controller (RNC), a relay node, etc. The base station 114a and / or the base station 114b may be configured to transmit and / or receive wireless signals on one or more carrier frequencies, which may be referred to as cells (not shown). These frequencies may be in a licensed spectrum, an unlicensed spectrum, or a combination of licensed and unlicensed spectrum. A cell may provide coverage of wireless services to a specific geographic area, which may be relatively fixed or may change over time. The cell may be further divided into cell sectors. For example, the cell associated with the base station 114a may be divided into three sectors. Therefore, in one embodiment, the base station 114a may include three transceivers, i.e., one transceiver for each sector of the cell. In one embodiment, the base station 114a may employ multiple-input multiple-output (MIMO) technology and may utilize multiple transceivers for each sector of the cell. For example, beamforming may be used to transmit and / or receive signals in a desired spatial direction.
[0049] The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless communication link (e.g., radio frequency (RF), microwave, centimeter wave, micrometer wave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).
[0050] More specifically, as noted above, the communication system 100 may be a multiple access system and may employ one or more channel access schemes such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA, etc. For example, the base station 114a in the RAN 104 and the WTRUs 102a, 102b, 102c may implement a radio technology such as Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), which may use Wideband CDMA (WCDMA) to establish the air interface 116. WCDMA may include communication protocols such as High Speed Packet Access (HSPA) and / or Evolved HSPA (HSPA+). HSPA may include High Speed Downlink (DL) Packet Access (HSDPA) and / or High Speed UL Packet Access (HSUPA).
[0051] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as Evolved UMTS Terrestrial Radio Access (E-UTRA), which may establish the air interface 116 using Long Term Evolution (LTE) and / or Advanced LTE (LTE-A) and / or Advanced LTE Pro (LTE-A Pro).
[0052] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as NR radio access, which may establish the air interface 116 using New Radio (NR).
[0053] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement multiple radio access technologies. For example, the base station 114a and the WTRUs 102a, 102b, 102c may implement LTE radio access and NR radio access together, for example using dual connectivity (DC) principles. Thus, the air interface used by the WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and / or transmissions sent to / from multiple types of base stations (e.g., eNBs and gNBs).
[0054] In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement radio technologies such as IEEE 802.11 (i.e., Wireless Fidelity (WiFi)), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Global System for Mobile Communications (GSM), GSM Enhanced Data Rates for Evolution (EDGE), GSM EDGE (GERAN), etc.
[0055] Figure 1AThe base station 114b in the may be, for example, a wireless router, a Home NodeB, a Home eNodeB, or an access point, and may utilize any suitable RAT to facilitate wireless connectivity in a local area, such as a business location, a home, a vehicle, a campus, an industrial facility, an air corridor (e.g., for use by drones), a road, and the like. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.11 to establish a wireless local area network (WLAN). In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.15 to establish a wireless personal area network (WPAN). In yet another embodiment, the base station 114b and the WTRUs 102c, 102d may utilize a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) to establish a picocell or a femtocell. As Figure 1A As shown, the base station 114 b may have a direct connection to the Internet 110. Thus, the base station 114 b may not need to access the Internet 110 via the CN 106.
[0056] The RAN 104 may be in communication with the CN 106, which may be any type of network configured to provide voice, data, applications, and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. Data may have different quality of service (QoS) requirements, such as different throughput requirements, delay requirements, error tolerance requirements, reliability requirements, data throughput requirements, mobility requirements, etc. The CN 106 may provide call control, billing services, mobile location-based services, pre-paid calling, Internet connectivity, video distribution, etc., and / or perform high-level security functions, such as user authentication. Although not described in detail in the specification, the CN 106 may be configured to provide voice, data, applications, and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. Figure 1A Although not shown in the figure, it will be appreciated that the RAN 104 and / or the CN 106 may be in direct or indirect communication with other RANs that employ the same RAT as the RAN 104 or a different RAT. For example, in addition to being connected to the RAN 104, which may utilize NR radio technology, the CN 106 may also be in communication with another RAN (not shown) that employs GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, or WiFi radio technology.
[0057] The CN 106 may also act as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and / or other networks 112. The PSTN 108 may include a circuit-switched telephone network that provides plain old telephone service (POTS). The Internet 110 may include a global system of interconnected computer networks and devices that use common communication protocols, such as the Transmission Control Protocol (TCP), the User Datagram Protocol (UDP), and / or the Internet Protocol (IP) in the TCP / IP Internet protocol suite. The networks 112 may include wired and / or wireless communication networks owned and / or operated by other service providers. For example, the networks 112 may include another CN connected to one or more RANs, which may employ the same RAT as the RAN 104 or a different RAT.
[0058] Some or all of the WTRUs 102a, 102b, 102c, 102d in the communication system 100 may include multi-mode capabilities (e.g., the WTRUs 102a, 102b, 102c, 102d may include multiple transceivers for communicating with different wireless networks via different wireless links). Figure 1A The illustrated WTRU 102c may be configured to communicate with the base station 114a, which may employ a cellular-based radio technology, and with the base station 114b, which may employ an IEEE 802 radio technology.
[0059] Figure 1B is a system diagram illustrating an exemplary WTRU 102. Figure 1B As shown, the WTRU 102 may include, among other things, a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keypad 126, a display / touchpad 128, non-removable memory 130, removable memory 132, a power source 134, a global positioning system (GPS) chipset 136, and / or other peripherals 138. It will be appreciated that the WTRU 102 may include any subcombination of the foregoing elements while remaining consistent with an embodiment.
[0060] The processor 118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) circuit, any other type of integrated circuit (IC), a state machine, etc. The processor 118 may perform signal coding, data processing, power control, input / output processing, and / or any other functions that enable the WTRU 102 to operate in a wireless environment. The processor 118 may be coupled to the transceiver 120, which may be coupled to the transmit / receive element 122. Although Figure 1B The processor 118 and the transceiver 120 are depicted as separate components, but it is understood that the processor 118 and the transceiver 120 may be integrated together in an electronic package or chip.
[0061] The transmit / receive element 122 may be configured to transmit signals to or receive signals from a base station (e.g., base station 114a) via an air interface 116. For example, in one embodiment, the transmit / receive element 122 may be an antenna configured to transmit and / or receive RF signals. In one embodiment, the transmit / receive element 122 may be an emitter / detector configured to transmit and / or receive, for example, IR, UV, or visible light signals. In yet another embodiment, the transmit / receive element 122 may be configured to transmit and / or receive RF and light signals. It should be appreciated that the transmit / receive element 122 may be configured to transmit and / or receive any combination of wireless signals.
[0062] Although the transmit / receive element 122 is Figure 1B 1 as a single element, the WTRU 102 may include any number of transmit / receive elements 122. More specifically, the WTRU 102 may employ MIMO technology. Thus, in one embodiment, the WTRU 102 may include two or more transmit / receive elements 122 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 116.
[0063] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive element 122 and to demodulate signals received by the transmit / receive element 122. As noted above, the WTRU 102 may have multi-mode capabilities. Thus, the transceiver 120 may include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs, such as NR and IEEE 802.11.
[0064] The processor 118 of the WTRU 102 may be coupled to a speaker / microphone 124, a keypad 126, and / or a display / touchpad 128 (e.g., a liquid crystal display (LCD) display unit or an organic light emitting diode (OLED) display unit) and may receive user input data therefrom. The processor 118 may also output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. In addition, the processor 118 may access information from and store data in any type of suitable memory, such as a non-removable memory 130 and / or a removable memory 132. The non-removable memory 130 may include a random access memory (RAM), a read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 132 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 118 may access information from and store data in a memory that is not physically located on the WTRU 102, such as on a server or a home computer (not shown).
[0065] The processor 118 may receive power from the power source 134, and may be configured to distribute and / or control power to the other components in the WTRU 102. The power source 134 may be any suitable device for powering the WTRU 102. For example, the power source 134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, etc.
[0066] The processor 118 may also be coupled to the GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to or in lieu of the information from the GPS chipset 136, the WTRU 102 may receive location information from a base station (e.g., base stations 114a, 114b) over the air interface 116 and / or determine its location based on the timing of signals received from two or more nearby base stations. It will be appreciated that the WTRU 102 may acquire location information by any suitable location-determination method while remaining consistent with an embodiment.
[0067] The processor 118 may also be coupled to other peripherals 138, which may include one or more software modules and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the peripherals 138 may include an accelerometer, an electronic compass, a satellite transceiver, a digital camera (for photos and / or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands-free headset, a Bluetooth® module, a frequency modulation (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, a virtual reality and / or augmented reality (VR / AR) device, an activity tracker, etc. The peripheral device 138 may include one or more sensors, which may be one or more of the following: a gyroscope, an accelerometer, a Hall effect sensor, a magnetometer, an orientation sensor, a proximity sensor, a temperature sensor, a time sensor; a geolocation sensor; an altimeter, a light sensor, a touch sensor, a magnetometer, a barometer, a gesture sensor, a biometric sensor, and / or a humidity sensor.
[0068] The WTRU 102 may include a full-duplex radio for which transmission and reception of some or all signals (e.g., associated with specific subframes for UL (e.g., for transmission) and downlink (e.g., for reception)) may be concurrent and / or simultaneous. The full-duplex radio may include an interference management unit for reducing and / or substantially eliminating self-interference via hardware (e.g., choke) or via signal processing performed by a processor (e.g., a separate processor (not shown) or via the processor 118). In one embodiment, the WTRU 102 may include a full-duplex radio for which transmission and reception of some or all signals (e.g., associated with specific subframes for UL (e.g., for transmission) and downlink (e.g., for reception)) may be concurrent and / or simultaneous.
[0069] Although the WTRU Figure 1A to Figure 1B Although described as wireless terminals, it is contemplated that in certain representative embodiments such terminals may (eg, temporarily or permanently) use a wired communication interface with a communication network.
[0070] In a representative embodiment, the other network 112 may be a WLAN.
[0071] Given that Figure 1A to Figure 1B As well as the corresponding description, one or more or all of the functions described herein may be performed by one or more simulation devices (not shown). A simulation device may be one or more devices configured to emulate one or more or all of the functions described herein. For example, a simulation device may be used to test other devices and / or simulate network and / or WTRU functions.
[0072] The simulation device may be designed to implement one or more tests of other devices in a laboratory environment and / or an operator network environment. For example, the one or more simulation devices may perform one or more or all functions while being fully or partially implemented and / or deployed as part of a wired and / or wireless communication network in order to test other devices within the communication network. The one or more simulation devices may perform one or more functions or all functions while being temporarily implemented / deployed as part of a wired and / or wireless communication network. The simulation device may be directly coupled to another device for testing purposes and / or may use over-the-air wireless communications to perform testing.
[0073] The one or more simulation devices may perform one or more (including all) functions without being implemented / deployed as part of a wired and / or wireless communication network. For example, the simulation device may be used in a test lab and / or a test scenario in a non-deployed (e.g., testing) wired and / or wireless communication network to enable testing of one or more components. The one or more simulation devices may be test devices. Direct RF coupling and / or wireless communication via RF circuitry (e.g., which may include one or more antennas) may be used by the simulation device to transmit and / or receive data.
[0074] Example system.
[0075] The embodiments described herein are not limited to implementation on a WTRU. Such embodiments may use other systems such as Figure 1C system to achieve this. Figure 1C 1000 is a block diagram of an example of a system that implements various aspects and embodiments. System 1000 may be embodied as a device including the various components described below, and is configured to perform one or more aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of system 1000 may be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components, either individually or in combination. For example, in at least one embodiment, the processing elements and encoder / decoder elements of system 1000 are distributed over multiple ICs and / or discrete components. In various embodiments, system 1000 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 1000 is configured to implement one or more aspects described in this document.
[0076] The system 1000 includes at least one processor 1010 configured to execute instructions loaded therein for implementing, for example, various aspects described in this document. The processor 1010 may include embedded memory, input-output interfaces, and various other circuits known in the art. The system 1000 includes at least one memory 1020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 1000 includes a storage device 1040, which may include a non-volatile memory and / or a volatile memory, including but not limited to an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), a programmable read-only memory (PROM), a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a flash memory, a magnetic disk drive, and / or an optical disk drive. As non-limiting examples, the storage device 1040 may include an internal storage device, an attached storage device (including removable and non-removable storage devices), and / or a network-accessible storage device.
[0077] The system 1000 includes an encoder / decoder module 1030, which is configured to process data, for example, to provide encoded video or decoded video, and the encoder / decoder module 1030 may include its own processor and memory. The encoder / decoder module 1030 represents a module that can be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both of an encoding module and a decoding module. In addition, the encoder / decoder module 1030 may be implemented as an independent element of the system 1000, or may be combined in the processor 1010 as a combination of hardware and software known to those skilled in the art.
[0078] Program code to be loaded onto the processor 1010 or the encoder / decoder 1030 to perform various aspects described in this document may be stored in the storage device 1040 and subsequently loaded onto the memory 1020 for execution by the processor 1010. According to various embodiments, one or more of the processor 1010, the memory 1020, the storage device 1040, and the encoder / decoder module 1030 may store one or more of the various items during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded video or partially decoded video, bitstreams, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and operation logic.
[0079] In some embodiments, memory internal to the processor 1010 and / or encoder / decoder module 1030 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 1010 or the encoder / decoder module 1030) is used for one or more of these functions. The external memory may be memory 1020 and / or storage device 1040, such as dynamic volatile memory and / or non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store, for example, the operating system of the television. In at least one embodiment, a fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations, such as for MPEG-2 (MPEG refers to Moving Picture Experts Group, MPEG-2 is also known as ISO / IEC13818, and 13818-1 is also known as H.222, 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, a new standard developed by the Joint Video Experts Group JVET).
[0080] Input to the elements of system 1000 may be provided through various input devices as shown in block 1130. Such input devices include, but are not limited to: (i) receiving, for example, a broadcaster over the air;
[0081] a radio frequency (RF) portion of a transmitted RF signal, (ii) a component (COMP) input terminal (or a group of COMP input terminals), (iii) a universal serial bus (USB) input terminal, and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Figure 1C Other examples not shown include composite video.
[0082] In various embodiments, the input device of block 1130 has associated corresponding input processing elements as known in the art. For example, the RF portion may be associated with elements suitable for: (i) selecting a desired frequency (also referred to as selecting a signal, or band limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again band-limiting to a narrower frequency band to select a signal band that may be referred to as a channel in some embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired packet stream. The RF portion of various embodiments includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF portion may include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or near baseband frequency) or to baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal transmitted by wired (for example, cable) medium, and filter to required frequency band again by filtering, down-conversion and perform frequency selection.Various embodiments rearrange the order of above-mentioned (and other) elements, remove some elements in these elements, and / or add other elements of similar or different functions.Adding element can include inserting element between existing element, for example, inserting amplifier and analog-to-digital converter.In various embodiments, the RF part comprises antenna.
[0083] In addition, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 1000 to other electronic devices across the USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented as needed, for example, in a separate input processing IC or in the processor 1010. Similarly, aspects of USB or HDMI interface processing may be implemented as needed, in a separate interface IC or in the processor 1010. The demodulated stream, error correction stream, and demultiplexed stream are provided to various processing elements, including, for example, the processor 1010 and the encoder / decoder 1030, which operate in conjunction with the memory and storage elements to process the data stream as needed for presentation on the output device.
[0084] The various elements of system 1000 may be disposed within an integrated housing. Within the integrated housing, the various elements may interconnect and transmit data therebetween using a suitable connection arrangement 1140 (eg, an internal bus as known in the art, including an inter-IC (I2C) bus, wiring, and printed circuit boards).
[0085] The system 1000 includes a communication interface 1050 capable of communicating with other devices via a communication channel 1060. The communication interface 1050 may include, but is not limited to, a transceiver configured to transmit and receive data through the communication channel 1060. The communication interface 1050 may include, but is not limited to, a modem or a network card, and the communication channel 1060 may be implemented, for example, within a wired and / or wireless medium.
[0086] In various embodiments, a wireless network such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers), is used to stream data or otherwise provide it to the system 1000. The Wi-Fi signals of these embodiments are received by a communication channel 1060 and a communication interface 1050 suitable for Wi-Fi communication. The communication channel 1060 of these embodiments is usually connected to an access point or router, which provides access to an external network including the Internet to allow streaming applications and other cloud communications. Other embodiments use a set-top box to provide streaming data to the system 1000, which delivers data through the HDMI connection of the input block 1130. There are also other embodiments that use the RF connection of the input block 1130 to provide streaming data to the system 1000. As described above, various embodiments provide data in a non-streaming manner. In addition, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.
[0087] The system 1000 can provide output signals to various output devices, including a display 1100, a speaker 1110, and other peripheral devices 1120. The display 1100 of various embodiments includes, for example, one or more of a touch screen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. The display 1100 can be used for a television, a tablet, a notebook, a cellular phone (mobile phone), or other devices. The display 1100 can also be integrated with other components (for example, as in a smart phone), or it can be separate (for example, an external monitor of a notebook). In various examples of the embodiments, the other peripheral devices 1120 include one or more of a stand-alone digital video disc (or digital versatile disc, both terms are DVR), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 1120 that provide functions based on the output of the system 1000. For example, a disc player performs the function of playing the output of the system 1000.
[0088] In various embodiments, control signals are transmitted between the system 1000 and the display 1100, speaker 1110, or other peripheral device 1120 using signaling such as AV.Link, consumer electronics control (CEC), or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicatively coupled to the system 1000 via dedicated connections through respective interfaces 1070, 1080, and 1090. Alternatively, the output devices may be connected to the system 1000 via communication interface 1050 using communication channel 1060. The display 1100 and speaker 1110 may be integrated into a single unit with other components of the system 1000 in an electronic device such as, for example, a television. In various embodiments, the display interface 1070 includes a display driver such as, for example, a timing controller (T Con) chip.
[0089] Alternatively, if the RF portion of input 1130 is part of a separate set-top box, the display 1100 and speaker 1110 are optionally separate from one or more of the other components. In various embodiments where the display 1100 and speaker 1110 are external components, the output signal may be provided via a dedicated output connection (including, for example, an HDMI port, a USB port, or a COMP output).
[0090] These embodiments may be executed by the processor 1010 or by computer software implemented by hardware or by a combination of hardware and software. As a non-limiting example, these embodiments may be implemented by one or more integrated circuits. As a non-limiting example, the memory 1020 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology.
[0091] Such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory and removable memory. As non-limiting examples, the processor 1010 can be of any type suitable for the technical environment, and can include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture. DETAILED DESCRIPTION
[0092] Block-based video coding.
[0093] Similar to HEVC, VVC is built on a block-based hybrid video coding framework. Figure 2A A block diagram of a block-based hybrid video coding system 200 is presented. Variations of this encoder 200 are contemplated, but for clarity the encoder 200 is described below without describing all contemplated variations.
[0094] Before being encoded, the video sequence may undergo pre-encoding processing (204), for example, applying a color transform to the input color picture (e.g., a transform from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input image components to make the signal distribution more resilient to compression (e.g., using histogram equalization of one color component). Metadata may be associated with the pre-processing and attached to the bitstream.
[0095] An input video signal 202 including a picture to be encoded is partitioned (206) and processed block by block in units of, for example, CUs. Different CUs may have different sizes. In VTM-1.0, a CU may be up to 128×128 pixels. However, unlike HEVC, which partitions blocks based only on a quadtree, in VTM-1.0, a coding tree unit (CTU) is partitioned into CUs to accommodate varying local characteristics based on quad / binary / ternary trees. In addition, the concept of multiple partition unit types in HEVC is removed, so that the separation of CU, prediction unit (PU), and transform unit (TU) no longer exists in VVC-1.0; instead, each CU is always used as a basic unit for both prediction and transform without further partitioning. In the multi-type tree structure, the CTU is first partitioned by a quadtree structure. Then, each quadtree leaf node may be further partitioned by a binary tree structure and a ternary tree structure. As FIG. 3A to FIG. 3E As shown, there are five types of partitioning: Quadruple partitioning ( Figure 3A )、Vertical binary partition( Figure 3B ), horizontal binary partitioning ( Figure 3C )、Vertical trident partition( Figure 3D ) and horizontal three-pronged partitioning ( Figure 3E ).
[0096] exist Figure 2A In an encoder, spatial prediction (208) and / or temporal prediction (210) may be performed. Spatial prediction (or "intra-frame prediction") uses pixels from samples of neighboring blocks that have been encoded in the same video picture / segment (which are called reference samples) to predict the current video block. Spatial prediction reduces the spatial redundancy inherent in the video signal. Temporal prediction (also known as "inter-frame prediction" or "motion compensated prediction") uses reconstructed pixels from an already encoded video picture to predict the current video block. Temporal prediction reduces the temporal redundancy inherent in the video signal. The temporal prediction signal for a given CU may be signaled by one or more motion vectors (MVs) that indicate the amount and direction of motion between the current CU and its temporal reference. Furthermore, if multiple reference pictures are supported, a reference picture index may also be sent that is used to identify which reference picture in the reference picture repository (212) the temporal prediction signal comes from.
[0097] A mode decision block (214) in the encoder selects the best prediction mode, for example based on a rate-distortion optimization method. This selection may be made after performing spatial and / or temporal prediction. The intra / inter decision may be indicated by, for example, a prediction mode flag. The prediction block is subtracted from the current video block (216) to generate a prediction residual. The prediction residual is decorrelated using a transform (218) and quantization (220). (For some blocks, the encoder may bypass both transform and quantization, in which case the residual may be encoded directly without applying a transform or quantization process.) The residual coefficients of the quantity are inverse quantized (222) and inverse transformed (224) to form a reconstructed residual, which may then be added back to the prediction block (226) to form a reconstructed signal for the CU. Further loop filtering, such as deblocking / SAO (sample adaptive offset) filtering, may be applied (228) to the reconstructed CU to reduce coding artifacts before they are placed in a reference picture store (212) and used to encode future video blocks. To form the output video bitstream 230, the coding mode (inter or intra), prediction mode information, motion information, and quantized residual coefficients are all sent to the entropy coding unit (108) for further compression and packing to form a bitstream.
[0098] Figure 2B A block diagram of a block-based video decoder 250 is shown. In the decoder 250, the bitstream is decoded by decoder elements as described below. The video decoder 250 generally performs a decoding pass inverse to the encoding pass, such as Figure 2A Encoder 200 also typically performs video decoding as part of encoding the video data.
[0099] Specifically, the input to the decoder includes a video bitstream 252, which may be generated by the video encoder 200. The video bitstream 252 is first unpacked and entropy decoded at an entropy decoding unit 254 to obtain transform coefficients, motion vectors, and other encoding information. The picture partition information indicates how the picture is partitioned. Therefore, the decoder may partition (256) the picture according to the decoded picture partition information. The coding mode and prediction information are sent to a spatial prediction unit 258 (if intra-frame coding) or a temporal prediction unit 260 (if inter-frame coding) to form a prediction block. The residual transform coefficients are sent to an inverse quantization unit 262 and an inverse transform unit 264 to reconstruct the residual block. The prediction block and the residual block are then added together at 266 to generate a reconstructed block. The reconstructed block may further undergo loop filtering 268 before being stored in a reference picture store 270 for use in predicting future video blocks.
[0100] The decoded pictures 272 may also undergo post-decoding processing (274), such as an inverse color transform (e.g., a transform from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that performs the inverse of the remapping process performed in the pre-encoding process (204). The post-decoding processing may use metadata derived in the pre-encoding process and signaled in the bitstream. The decoded processed video may be sent to a display device 276. The display device 276 may be a separate device from the decoder 250, or the decoder 250 and the display device 276 may be components of the same device.
[0101] The various methods and other aspects described in this disclosure may be used to modify modules of the video encoder 200 or decoder 250. In addition, the systems and methods disclosed herein are not limited to VVC or HEVC, and may be applied, for example, to other standards and recommendations (whether pre-existing or developed in the future) and extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise specified or technically excluded, the aspects described in this disclosure may be used alone or in combination.
[0102] Hadamard filtering.
[0103] Hadamard transform domain filtering has been proposed to improve "CE2 related: Hadamard transform domain filter" (V. Stepin, S. Ikonin, R. Chernyak, J. Chen, "CE2 related: Hadamard TransformDomain Filter", JVET-K0068, July 2018); and "CE14: Hadamard transform domain filter (Test 3)" (S. Ikonin, V. Stepin, D. Kuryshev, J. Chen, "CE14: Hadamard transform domainfilter (Test 3)", JVET-L326, October 2018). The filter is applied to a set of 2×2 reconstructed samples, such as Figure 4 An example of the Hadamard filtering process is as follows:
[0104] 1) Apply a 4-point (2×2) Hadamard transform to the four samples;
[0105] 2) Apply spectrum-based filtering as follows:
[0106]
[0107] Where R(i) is the Hadamard spectral component (i=0.3), m is a normalization constant, σ is a filter parameter derived from the quantization parameter (QP), and TH is a threshold for the magnitude of the Hadamard coefficient to determine whether to apply filtering. In JVET-K0068 and JVET-L326, m is set to 4, and σ is derived as follows:
[0108]
[0109] Note that the average of the four samples remains constant because the DC component (ie, R(0)) is not filtered.
[0110] 3) Apply the inverse 4-point Hadamard transform
[0111] A Hadamard transform domain filter is applied on overlapping groups of 2×2 samples to avoid discontinuities at 2×2 block boundaries, resulting in an equivalent 3×3 filtering.
[0112] Problems solved in some embodiments.
[0113] Hadamard transform domain filtering aims to improve coding efficiency by reducing quantization noise in the reconstructed signal. However, it has a few disadvantages. First, in order to avoid dependence on neighboring CUs when filtering a CU, especially for inter-predicted CUs, repeated padding is used on the left and / or above the CU boundary, which can reduce filtering efficiency. Second, although overlapping groups of 2×2 samples are used in filtering, the resulting kernel size is relatively small and very few samples are filtered jointly, which can reduce filtering efficiency. Third, filtering is applied to all samples within a CU using the same filtering strength, regardless of the position of the samples. Fourth, filtering is applied to all CUs using the same filtering strength, regardless of the coding mode and / or prediction mode.
[0114] Overview of exemplary embodiments.
[0115] The exemplary embodiments described herein may address one or more of the above-described problems. The present disclosure describes systems and methods for video encoding using adaptive Hadamard filtering of reconstructed coding units. Although examples are given with respect to filtering of coding units (CUs), the embodiments are not limited to filtering of CUs; rather, other blocks of samples may be filtered using techniques as described herein. Furthermore, although specific examples are given with respect to filtering of components in the transform domain of a Hadamard transform, it should be noted that embodiments are also contemplated in which filtering is performed on components in the transform domain of other transforms, such as a discrete cosine transform or a discrete Fourier transform. The transform may be an orthogonal transform.
[0116] In some embodiments where Hadamard filtering may otherwise encompass samples outside the current coding unit, extrapolated samples are generated for filtering. In some embodiments, different filtering strengths are applied to different spectral components in the transform domain. In some embodiments, the filtering strength is based on the position of the filtered samples within the coding unit. In some embodiments, the filtering strength is based on the prediction mode used to encode the current coding unit.
[0117] Some embodiments may improve filtering efficiency. In some embodiments, instead of using repeated padding on the left and / or above the block boundary (e.g., CU boundary), extrapolation may be performed to extend the sample outside the block (e.g., outside the CU). In some embodiments, the prediction sample can be used to fill the extended block boundary. In addition, if the reconstructed samples of the neighboring blocks are available, those reconstructed samples can be used for filtering. For example, if the block is a CU located at the top CTU row, the reconstructed samples located above the CU are available in the row buffer and can be used for filtering. In some embodiments, in order to increase the filter kernel size and jointly filter more samples, a larger size Hadamard transform may be used, for example, a 16-point (ie, 4×4) Hadamard transform. In some embodiments, for intra-frame prediction mode, the filtering strength may be adjusted based on the distance between the sample to be filtered and the sample used in the intra-frame prediction process. In some embodiments, the filtering strength may be adjusted based on the CU coding mode and / or prediction mode.
[0118] Inter-frame dependencies removed.
[0119] Before applying Hadamard transform domain filtering to a CU of size W×H, the CU may first be extended by one sample around the CU boundary to obtain (W+2) × (H+2) samples. Repeat padding may be used, that is, the CU is extended by copying the nearest available sample. The Hadamard filter may then be applied to the 2×2 samples of the overlapping block.
[0120] In some embodiments, instead of or in addition to using repeat padding at CU boundaries, extrapolation is performed to expand the CU before applying Hadamard transform domain filtering. Different extrapolation methods can be used, such as linear extrapolation, cubic extrapolation, bilinear extrapolation, bicubic extrapolation, etc. In this way, the filtering efficiency can be improved compared to using repeat padding.
[0121] In another embodiment, inter prediction or intra prediction can be used to fill those extended boundary samples. For example, if the CU is intra-coded, the CU reference samples can be used directly for the top and / or left side of the CU boundary. For the bottom and / or right side of the CU boundary, the filling samples can be derived from the CU reference samples or CU reconstructed samples using the CU intra prediction mode. If the CU is inter-coded, the filling samples can be derived using the current CU motion vector and its reference picture.
[0122] Motion compensated prediction can be used to fill in those extended boundary samples, but it may involve interpolation, which typically requires access to more neighboring integer samples in the reference picture to perform the interpolation. The computational and memory access bandwidth may be high. In some embodiments, to simplify motion compensation, fractional positions are rounded to their nearest integer position and integer samples are taken directly. In some embodiments, padding samples at the top, bottom, left, and right of the boundary are used.
[0123] Pad(x, y) can be derived as follows:
[0124] Pad(x, y0-1) = RefPic(round(x + MVx), round(y0-1 + MVy)), where ;
[0125] Pad(x, y0+H) = RefPic(round(x + MVx), round(y0+H + MVy)), where ;
[0126] Pad(x0-1, y) = RefPic(round(x0 -1 + MVx), round(y + MVy)), where ;
[0127] Pad(x0+W, y) = RefPic(round(x +W + MVx), round(y0-1 + MVy)), where ;
[0128] where (x0, y0) is the top-left CU position, (MVx, MVy) is the CU motion vector, RefPic(x, y) refers to the reference sample at position (x, y) within the reference picture RefPic, and Round(x) is a function that rounds the variable x to its nearest integer value.
[0129] If the CU is bi-predictively coded, padding samples may be first derived from each reference, and a weighted average may be applied to the two padding samples to obtain a final padding sample.
[0130] If the CU is located in the top CTU row, the reconstructed samples located above the CU are available in the row buffer. In this case, instead of using repeated padding or extrapolation on the top of the CU boundary, the above reconstructed samples available in the row buffer can be used directly to expand the CU, such as Figure 5 In this way, the filtering efficiency can be improved compared to using repeated filling and / or extrapolation.
[0131] Larger size Hadamard transform based filtering.
[0132] In some embodiments, instead of a 4-point Hadamard transform, a larger size Hadamard transform is used, for example, a 16-point or 64-point Hadamard transform. The filtering process of the 16-point Hadamard transform is Figure 6 . The 16 samples may be scanned in different orders, for example, using row-based or column-based scanning. Row-based scanning may be preferred for memory access because the entire row may be acquired in one memory access. A Hadamard transform with a larger size may be implemented using a recursive Hadamard transform of a smaller size. For example, a 16-point Hadamard transform may be implemented using a recursive 4-point Hadamard transform.
[0133] In some embodiments, for larger size Hadamard transforms, spectral based filtering may be tuned for different frequency bands. For example, stronger filtering may be applied to higher frequency bands than to lower frequency bands. This may be achieved by changing the normalization constant m in equation (1) and / or modifying the filter parameter σ in equation (2). For example, the normalization constant m for higher frequency bands may be set to a larger value than for lower frequency bands. The frequency bands may be determined by grouping the coefficients in the Hadamard transform domain, for example, using diagonal grouping ( Fig. 7A ) or L-shaped grouping ( Figure 7B ).
[0134] Position-dependent Hadamard filtering.
[0135] For intra prediction mode, the prediction may be more accurate near the left and / or top of the CU boundary because those areas may be closer to the reference samples used for prediction, since intra reference samples are always from the top and left of the boundary. However, the prediction may be less accurate near the lower right portion of the CU because this area is farther from the reference samples. Since the Hadamard filter may be applied on a sample basis, in some embodiments, it is recommended to apply stronger filtering (e.g., higher σ values) to these areas where the prediction accuracy may be lower, and to apply weaker filtering (e.g., lower σ values) to these areas where the prediction accuracy may be higher. For example, stronger filtering may be applied to the lower right portion of the CU, and weaker filtering may be applied to the left and / or top portions of the CU.
[0136] For a CU predicted using intra-angular mode, the filtering strength may be determined based on the angular direction. The filtering strength may be adjusted based on the distance measured between the sample to be filtered and the sample used in the angular prediction process along the prediction direction. For example, if the angular mode is close to vertical, stronger filtering may be applied in the area near the bottom of the CU boundary than in the area near the top of the CU boundary. If the angular mode is close to horizontal, stronger filtering may be applied in the area near the right side of the CU boundary than in the area near the left side of the CU boundary. The filtering strength may be modified by adjusting the normalization constant m in equation (1) and / or modifying the filtering parameter σ based on the sample position within the CU in equation (2).
[0137] Mode-dependent Hadamard filtering.
[0138] In some embodiments, the filtering strength of the Cu may be modified based on the CU coding mode. For example, an inter-predicted CU may be filtered using a different strength than an intra-predicted CU. For an inter-predicted CU, the filtering strength may be based on the CU coding mode, such as a merge mode and / or a prediction mode, such as a single prediction, a double prediction, an affine mode, and the like. For example, the filtering strength of a double-predicted CU may be weaker than the filtering strength of a single-predicted CU because the double prediction mode may be more accurate than the single prediction mode. If the CU is encoded using a sub-block mode (e.g., a sub-block temporal motion vector prediction mode or an affine mode), the prediction may be more accurate than a CU-based prediction mode. In this case, the filtering strength may be weaker than a CU-based prediction mode. The filtering strength may be modified by adjusting the normalization constant m in equation (1) and / or modifying the filtering parameter σ based on the CU coding mode and / or prediction mode in equation (2).
[0139] Exemplary methods and systems.
[0140] like Fig.10 As shown, the method performed in some embodiments includes reconstructing a plurality of samples in a current sample block (1102). Applying a transform (such as a Hadamard transform) to a first group of samples (1104). The first group of samples includes at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block. Applying the transform generates a set of original spectral components. Applying a filter to at least one of the original spectral components (1106) to generate a set of filtered spectral components, which may be Hadamard spectral components. Applying an inverse transform to the filtered spectral components to generate a plurality of filtered samples corresponding to the first group of samples. In some embodiments, a method is provided having a method configured to perform Fig.10 The method comprises one or more processors of the device.
[0141] In some embodiments, a device having a module for reconstructing a plurality of samples in a current sample block is provided. For example, the summation module 226 ( Figure 2A ) or 266 ( Figure 2B ) implements such a module. A transform module that can use a Hadamard transform operates on a first set of samples. The first set of samples includes at least a subset of the reconstructed samples in the current block and at least one reconstructed sample outside the current block. Applying the transform generates a set of original spectral components. The filter module operates on at least one of the original spectral components to generate a set of filtered spectral components, which can be Hadamard spectral components. The inverse transform module operates on the filtered spectral components to generate a plurality of filtered samples corresponding to the first sample set. The loop filter module 228 ( Figure 2A ) or 268 ( Figure 2B ) implements the transformation module, filter module and inverse transformation module.
[0142] In some embodiments, a device includes an apparatus according to any of the embodiments described herein, and at least one of: (i) an antenna configured to receive a signal, the signal including data representing an image, (ii) a band limiter configured to limit the received signal to a frequency band including data representing an image, or (iii) a display configured to display an image. In some such embodiments, the device may be a TV, a cellular phone, a tablet, or a STB.
[0143] In some embodiments, a computer readable medium comprising instructions for causing one or more processors to execute Fig.10 The computer readable medium may be a non-transitory medium.
[0144] A computer program product comprising instructions which, when executed by one or more processors, cause the one or more processors to perform Fig.10 The computer program product may be stored on a medium such as a non-transitory medium.
[0145] The structure of the encoded bitstream.
[0146] Figure 813 is a diagram showing an example of a coded bitstream structure. The coded bitstream 1300 consists of a plurality of NAL (Network Abstraction Layer) units 1301. The NAL unit may contain coded sample data such as coded segments 1306, or high-level syntax metadata such as parameter set data, segment header data 1305, or supplemental enhancement information data 1307 (which may be referred to as SEI messages). A parameter set is a high-level syntax structure containing basic syntax elements, which may be applicable to multiple bitstream layers (e.g., video parameter set 1302 (VPS)), or may be applicable to a coded video sequence within a layer (e.g., sequence parameter set 1303 (SPS)), or may be applicable to multiple coded pictures within a coded video sequence (e.g., picture parameter set 1304 (PPS)). Parameter sets may be sent together with the coded pictures of the video bitstream, or may be sent by other means (including out-of-band transmission using a reliable channel, hard coding, etc.). The segment header 1305 is also a high-level syntax structure, which may contain some picture-related information that is relatively small or only relevant to certain segments or picture types. The SEI message 1307 carries information that may not be required for the decoding process, but which may be used for various other purposes, such as picture output timing or display and loss detection and concealment.
[0147] Communications equipment and systems.
[0148] Fig. 9 1400 is a diagram illustrating an example of a communication system. Communication system 1400 may include encoder 1402, communication network 1404, and decoder 1406. Encoder 1402 may communicate with network 1404 via connection 1408, which may be a wired connection or a wireless connection. Encoder 1402 may be similar to Figure 2A The encoder 1402 may include a single-layer codec (e.g., Figure 2A ) or a multi-layer codec. Decoder 1406 may communicate with network 1404 via connection 1410, which may be a wired connection or a wireless connection. Decoder 1406 may be similar to Figure 2B The decoder 1406 may include a single-layer codec (e.g., Figure 2B ) or multi-layer codec.
[0149] The encoder 1402 and / or the decoder 1406 may be incorporated into a variety of wired communication devices and / or wireless transmit / receive units (CMPUs), such as, but not limited to, digital televisions, wireless broadcast systems, network elements / terminals, servers such as content or web servers (e.g., such as hypertext transfer protocol (HTTP) servers), personal digital assistants (PDAs), laptop or desktop computers, tablet computers, digital cameras, digital recording devices, video gaming devices, video game consoles, cellular or satellite radio telephones, digital media players, etc.
[0150] The communication network 1404 may be a communication network of a suitable type. For example, the communication system 1404 may be a multiple access system that provides content such as voice, data, video, messaging, broadcasting, etc. to multiple wireless users. The communication system 1404 may enable multiple wireless users to access such content by sharing system resources (including wireless bandwidth). For example, the communication network 1404 may use one or more channel access methods, such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), etc. The communication network 1404 may include multiple connected communication networks. The communication network 1404 may include the Internet and / or one or more private commercial networks, such as cellular networks, WiFi hotspots, Internet service provider (ISP) networks, etc.
[0151] Further implementation plans.
[0152] In some embodiments, a video encoding method includes: reconstructing multiple samples or other sample blocks in a coding unit; generating an extrapolated value of at least one extrapolated sample outside the coding unit; applying a Hadamard transform to a group of samples to generate multiple Hadamard spectral components, the group of samples including at least a subset of the reconstructed samples and at least one extrapolated sample; applying spectrum-based filtering to the Hadamard spectral components; applying an inverse Hadamard transform to the filtered Hadamard spectral components to generate filtered samples; and replacing a subset of the reconstructed samples in the coding unit with corresponding filtered samples to generate a filtered coding unit.
[0153] In some embodiments, generating the extrapolated values is performed using at least one of the following extrapolation methods: linear, cubic, bilinear, and bicubic.
[0154] In some embodiments, the coding unit is intra-coded, and generating the extrapolated value is performed with intra prediction using an intra-coding mode of the coding unit.
[0155] In some embodiments, the coding unit is inter-coded, and generating the extrapolated value is performed with inter-prediction using a motion vector of the coding unit.
[0156] In some embodiments, the coding unit is inter-coded, and performing inter-prediction includes copying integer-position samples from a reference picture.
[0157] In some embodiments, the coding unit is inter-coded, and performing inter-prediction includes rounding the motion vector to an integer value.
[0158] In some embodiments, the coding unit is encoded with bi-prediction, and generating the extrapolated value is performed with bi-prediction using motion information of the coding unit.
[0159] In some embodiments, a video encoding method includes: reconstructing multiple samples in a coding unit; applying a Hadamard transform to a group of samples to generate multiple Hadamard spectral components, the group of samples including at least a subset of the reconstructed samples and at least one sample in a line buffer adjacent to the coding unit; applying spectrum-based filtering to the Hadamard spectral components; applying an inverse Hadamard transform to the filtered Hadamard spectral components to generate filtered samples; and replacing a subset of the reconstructed samples in the coding unit with corresponding filtered samples to generate a filtered coding unit.
[0160] In some embodiments, a video encoding method includes: reconstructing multiple samples in a coding unit; applying a Hadamard transform with at least sixteen points to a group of samples to generate multiple Hadamard spectral components, the group of samples including at least a subset of the reconstructed samples; applying spectrum-based filtering to the Hadamard spectral components; applying an inverse Hadamard transform to the filtered Hadamard spectral components to generate filtered samples; and replacing a subset of the reconstructed samples in the coding unit with corresponding filtered samples to generate a filtered coding unit.
[0161] In some embodiments, at least two different filtering strengths are used to filter spectral components other than the DC (R(0)) component.
[0162] In some embodiments, the spectral components are grouped into at least three frequency groups, and different filtering strengths are applied to the spectral components in different frequency groups.
[0163] In some embodiments, the filter strength applied to each spectral component is a function of the frequency associated with the respective spectral component.The filter strength may be a non-decreasing function of frequency.
[0164] In some embodiments, filtering is performed according to the following formula:
[0165]
[0166] At least two different values For different spectral components .
[0167] In some embodiments, the video encoding method includes reconstructing multiple samples in a coding unit; for each corresponding reconstructed sample, performing a filtering method including: applying a Hadamard transform to a group of samples to generate multiple Hadamard spectral components, the group of samples including the corresponding reconstructed sample; applying spectrum-based filtering to the Hadamard spectral components; applying an inverse Hadamard transform to the filtered Hadamard spectral components to generate filtered samples; and replacing a subset of the reconstructed samples in the coding unit with corresponding filtered samples to generate a filtered coding unit; wherein the filtering strength is determined at least in part based on the position of the corresponding reconstructed samples within the coding unit.
[0168] In some embodiments, the filtering strength is higher for corresponding reconstructed samples toward the lower right of the coding unit, and lower for corresponding reconstructed samples toward the upper left of the coding unit.
[0169] In some embodiments, the coding unit is encoded with an intra-angular mode, and the filtering strength is also determined based at least in part on the angular mode.
[0170] In some embodiments, a video encoding method includes: reconstructing multiple samples in a coding unit, wherein the coding unit is encoded using a coding mode; applying a Hadamard transform to a group of samples to generate multiple Hadamard spectral components, the group of samples including at least a subset of the reconstructed samples; applying spectrum-based filtering to the Hadamard spectral components, wherein the strength of the filtering is determined at least in part based on the coding mode; applying an inverse Hadamard transform to the filtered Hadamard spectral components to generate filtered samples; and replacing a subset of the reconstructed samples in the coding unit with corresponding filtered samples to generate a filtered coding unit.
[0171] In some embodiments, the filtering strength of the bi-predictive coding mode is lower than that of the uni-predictive coding mode.
[0172] In some implementations, the filtered coding units are stored in a decoded picture buffer.
[0173] In some embodiments, one or more of the foregoing methods are performed by an encoder.
[0174] In some embodiments, one or more of the foregoing methods are performed by a decoder.
[0175] Some embodiments include a processor configured to perform any of the methods described herein. In some such embodiments, a computer-readable medium (eg, non-transitory medium) storing instructions for performing any of the methods described herein is provided.
[0176] Some embodiments include a computer-readable medium (eg, non-transitory medium) storing video encoded using one or more of the methods disclosed herein.
[0177] This disclosure describes various aspects, including tools, features, implementations, models, methods, etc. Many of these aspects are described in detail.
[0178] And at least individual characteristics are shown, often described in a way that may sound limited. However, this is for clarity in the description and does not limit the disclosure or scope of those aspects. In fact, all different aspects can be combined and interchanged to provide further aspects. In addition, these aspects can also be combined and interchanged with aspects described in previous submissions.
[0179] The aspects described and contemplated in this disclosure can be implemented in many different forms. Although some embodiments are specifically shown, other embodiments are contemplated, and the discussion of specific embodiments does not limit the breadth of specific implementations. At least one of these aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to the bitstream generated or encoded by transmitting. These and other aspects can be implemented as methods, devices, computer-readable storage media having instructions for encoding or decoding video data according to any of the methods, and / or computer-readable storage media having bitstreams generated according to any of the methods stored thereon.
[0180] In this disclosure, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “pixel” and “sample” may be used interchangeably, and the terms “image”, “picture” and “frame” may be used interchangeably.
[0181] Various methods are described herein, and each method includes one or more steps or actions for implementing the method. Unless the correct operation method requires a specific order of steps or actions, the order and / or purpose of specific steps and / or actions can be modified or combined. In addition, terms such as "first", "second", etc. can be used in various embodiments to modify elements, parts, steps, operations, etc., such as "first decoding" and "second decoding". Unless specifically required, the use of such terms does not imply the ordering of the modification operation. Therefore, in this example, the first decoding does not need to be performed before the second decoding, and can, for example, occur before, during, or in overlapping time periods of the second decoding.
[0182] For example, various numerical values may be used in the present disclosure. Specific values are for exemplary purposes, and the aspects are not limited to these specific values.
[0183] The embodiments described herein may be performed by a processor or other hardware or computer software implemented by a combination of hardware and software. As a non-limiting example, these embodiments may be implemented by one or more integrated circuits. As a non-limiting example, the processor may be any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.
[0184] Various implementations participate in decoding. As used in the present disclosure, "decoding" may encompass, for example, all or part of the processes performed on a received coded sequence to produce a final output suitable for display. In various embodiments, such processes include one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such processes also include or alternatively include processes performed by the decoder of the various implementations described in the present disclosure, such as extracting a picture from a tiled (packed) picture, determining an upsampling filter to use, then upsampling the picture, and flipping the picture back to its intended orientation.
[0185] As a further example, in one embodiment, "decoding" refers only to entropy decoding, in another embodiment, "decoding" refers only to differential decoding, and in yet another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or generally to a broader decoding process will be discerned based on the context of the specific description.
[0186] Various implementations involve encoding. In a manner similar to the discussion above about "decoding", "encoding" as used in the present disclosure may encompass, for example, all or part of a process performed on an input video sequence to produce an encoded bitstream. In various embodiments, such processes include one or more processes typically performed by an encoder, such as partitioning, differential encoding, transforms, quantization, and entropy encoding. In various embodiments, such processes also include or alternatively include processes performed by encoders of various implementations described in the present disclosure.
[0187] As a further example, in one embodiment, "encoding" refers only to entropy encoding, in another embodiment, "encoding" refers only to differential encoding, and in yet another embodiment, "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or generally to a broader encoding process will be discernible based on the context of the specific description.
[0188] When the figures are presented as flow charts, it should be understood that they also provide block diagrams of corresponding devices. Similarly, when the figures are presented as block diagrams, it should be understood that they also provide flow charts of corresponding methods / processes.
[0189] Various embodiments refer to rate-distortion optimization. Specifically, during the encoding process, the balance or trade-off between rate and distortion is usually considered, which often takes into account the constraints of computational complexity. Rate-distortion optimization is usually expressed as minimizing the rate-distortion function, which is the weighted sum of rate and distortion. There are different methods to solve the rate-distortion optimization problem. For example, these methods can be based on extensive testing of all coding options (including all considered modes or coding parameter values), and fully evaluate their coding costs and the associated distortion of the reconstructed signal after encoding and decoding. Faster methods can also be used to reduce coding complexity, especially the calculation of approximate distortion based on prediction or prediction residual signals rather than reconstructed residual signals. A mixture of these two methods can also be used, such as by using approximate distortion only for some possible coding options, and using complete distortion for other coding options. Other methods only evaluate a subset of possible coding options. More generally, many methods use any of various techniques to perform optimization, but optimization is not necessarily a complete evaluation of both coding cost and associated distortion.
[0190] The implementations and aspects described herein may be implemented, for example, in a method or process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (e.g., discussed only as a method), the implementation of the features discussed may also be implemented in other forms (e.g., an apparatus or program). An apparatus may be implemented, for example, in appropriate hardware, software, and firmware. A method may be implemented, for example, in a processor, which generally refers to a processing device,
[0191] The processing device includes, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device, such as, for example, a computer, a cellular phone, a portable / personal digital assistant ("PDA"), and other devices that facilitate the communication of information between end users.
[0192] Reference to "one embodiment" or "an embodiment" or "one implementation" or "an implementation" and other variations thereof means that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" or "in one implementation" or "in an implementation" and any other variations thereof in various places throughout this disclosure are not necessarily all referring to the same embodiment.
[0193] Additionally, the present disclosure may refer to “determining” various pieces of information. Determining information may include, for example, one or more of estimating the information, calculating the information, predicting the information, or retrieving the information from a memory.
[0194] Additionally, the present disclosure may refer to "accessing" various pieces of information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0195] Furthermore, the present disclosure may refer to "receiving" various pieces of information. Like "accessing," receiving is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, "receiving" generally involves in one way or another during operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0196] It should be understood that, for example, in the case of "A / B," "A and / or B," and "at least one of A and B," use of any of the following " / ," "and / or," and "at least one of" is intended to encompass selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C," such phrases are intended to encompass selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first listed option and the second listed option (A and B), or only the first listed option and the third listed option (A and C), or only the second listed option and the third listed option (B and C), or all three options (A and B and C). This can be extended to as many items as are listed.
[0197] Also, as used herein, the term "signaling" means, among other things, indicating something to a corresponding decoder. For example, in some embodiments, an encoder signals
[0198] A specific parameter among the multiple parameters for de-artifacting filtering is selected based on the filter parameters of the region. Thus, in one embodiment, the same parameters are used on both the encoder side and the decoder side. Therefore, for example, the encoder can transmit (explicit signaling) specific parameters to the decoder so that the decoder can use the same specific parameters. On the contrary, if the decoder already has specific parameters and others, signaling can be used without transmitting (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit saving is achieved in various embodiments by avoiding transmitting any actual function. It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to signal information to the corresponding decoder. Although the verb form of the word "signal" is mentioned above, the word "signal" can also be used as a noun in this article.
[0199] Specific implementations may generate various signals, formatted to carry information that can be, for example, stored or transmitted. The information may include, for example, instructions for executing a method or data generated by one of the specific implementations. For example, a signal may be formatted to carry a bit stream of the embodiment. Such signals may be formatted, for example, as electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. It is known that the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor readable medium.
[0200] We have described multiple embodiments. Features of these embodiments may be provided individually or in any combination across the various claim categories and types. In addition, embodiments may include one or more of the following features, devices, or aspects, individually or in any combination across the various claim categories and types:
[0201] ● A bitstream or signal comprising syntax conveying information generated according to any of the described embodiments.
[0202] ●Creation and / or transmission and / or reception and / or decoding according to any one of the described embodiments.
[0203] ●A method, process, device, medium storing instructions, medium storing data or signal according to any one of the embodiments.
[0204] ●A television, set-top box, cellular phone, tablet or other electronic device that performs the filtering method according to any one of the embodiments described.
[0205] ●A television, set-top box, cellular phone, tablet or other electronic device that performs the filtering method according to any of the embodiments and displays (e.g., using a monitor, screen or other type of display) the resulting image.
[0206] - A television, set-top box, cellular phone, tablet or other electronic device that selects (eg, using a tuner) a channel to receive a signal comprising an encoded image and performs filtering according to any of the described embodiments.
[0207] - A television, set-top box, cellular phone, tablet or other electronic device that receives over the air (eg, using an antenna) a signal comprising an encoded image and performs filtering according to any of the described embodiments.
[0208] It is noted that various hardware elements of one or more of the described embodiments are referred to as "modules" that perform (i.e., execute, implement, etc.) various functions described herein in conjunction with the corresponding modules. As used herein, a module includes hardware that is considered suitable for a given specific implementation (e.g., one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more memory devices). Each of the described modules may also include executable instructions for performing one or more functions described as being performed by the corresponding module, and it is noted that these instructions may take the form of or include the following instructions: hardware (i.e., hard-wired) instructions, firmware instructions, software instructions, etc., and may be stored in any suitable one or more non-transitory computer-readable media (such as commonly referred to as RAM, ROM, etc.).
[0209] Although features and elements are described above in particular combinations, each feature or element may be used alone or in any combination with other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media (such as built-in hard disks and removable disks), magneto-optical media, and optical media (such as CD-ROM disks and digital versatile disks (DVDs)). A processor associated with software may be used to implement a radio frequency transceiver for a WTRU, UE, terminal, base station, RNC, or any host computer.
Claims
1. A method for decoding a video signal, comprising: reconstructing a plurality of samples in a current block of samples; applying a transform to a first set of samples to generate a set of spectral components, the first set of samples comprising at least a subset of reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position dependent; as well as An inverse transform of the transform is applied to the filtered spectral components to generate a plurality of filtered samples corresponding to the first set of samples.
2. The method according to claim 1, wherein: According to the position-dependent filtering strength, a stronger filter is applied to the lower right portion of the current block, and a weaker filter is applied to the left or top portion of the current block.
3. The method according to claim 1 or 2, wherein: The transform is a Hadamard transform and the spectral components are Hadamard spectral components.
4. The method according to claim 3, wherein: Applying filtering to at least one Hadamard spectral component includes determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and the normalization constant is different at different sample positions in the current block.
5. The method according to claim 3, wherein: Applying filtering to at least one Hadamard spectral component includes determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and where the filter parameter is different at different sample positions in the current block.
6. An apparatus for decoding a video signal, the apparatus comprising one or more processors configured to perform: reconstructing a plurality of samples in a current block of samples; applying a transform to a first set of samples to generate a set of spectral components, the first set of samples comprising at least a subset of reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position dependent; as well as An inverse transform of the transform is applied to the filtered spectral components to generate a plurality of filtered samples corresponding to the first set of samples.
7. The device according to claim 6, wherein: According to the position-dependent filtering strength, a stronger filter is applied to the lower right portion of the current block, and a weaker filter is applied to the left or top portion of the current block.
8. The device according to claim 6 or 7, wherein: The transform is a Hadamard transform and the spectral components are Hadamard spectral components.
9. The device according to claim 8, wherein: Applying filtering to at least one Hadamard spectral component includes determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and the normalization constant is different at different sample positions in the current block.
10. The apparatus of claim 8, wherein applying filtering to at least one Hadamard spectral component comprises determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and where the filter parameter is different at different sample positions in the current block.
11. A method for encoding a video signal, comprising: reconstructing a plurality of samples in a current block of samples; applying a transform to a first set of samples to generate a set of spectral components, the first set of samples comprising at least a subset of reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position dependent; as well as An inverse transform of the transform is applied to the filtered spectral components to generate a plurality of filtered samples corresponding to the first set of samples.
12. The method according to claim 11, wherein: According to the position-dependent filtering strength, a stronger filter is applied to the lower right portion of the current block, and a weaker filter is applied to the left or top portion of the current block.
13. The method according to claim 11 or 12, wherein: The transform is a Hadamard transform and the spectral components are Hadamard spectral components.
14. The method according to claim 13, wherein: Applying filtering to at least one Hadamard spectral component includes determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and the normalization constant is different at different sample positions in the current block.
15. The method according to claim 13, wherein: Applying filtering to at least one Hadamard spectral component includes determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and where the filter parameter is different at different sample positions in the current block.
16. An apparatus for encoding a video signal, the apparatus comprising one or more processors configured to perform: reconstructing a plurality of samples in a current block of samples; applying a transform to a first set of samples to generate a set of spectral components, the first set of samples comprising at least a subset of reconstructed samples in the current block and at least one reconstructed sample outside the current block; applying filtering to at least one spectral component to generate a set of filtered spectral components, wherein the strength of the filtering is position dependent; as well as An inverse transform of the transform is applied to the filtered spectral components to generate a plurality of filtered samples corresponding to the first set of samples.
17. The device according to claim 16, wherein: According to the position-dependent filtering strength, a stronger filter is applied to the lower right portion of the current block, and a weaker filter is applied to the left or top portion of the current block.
18. The apparatus according to claim 16 or 17, wherein the transform is a Hadamard transform and the spectral components are Hadamard spectral components.
19. The apparatus of claim 18, wherein applying filtering to at least one Hadamard spectral component comprises determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and the normalization constant is different at different sample positions in the current block.
20. The apparatus of claim 18, wherein applying filtering to at least one Hadamard spectral component comprises determining , in, is the Hadamard spectral component, is the corresponding filtered Hadamard spectral component, is the normalization constant, is the filter parameter, and where the filter parameter is different at different sample positions in the current block.