Content-adaptive transform precision for video decoding

By obtaining accuracy factors for each video data block and applying these factors during the decoding and encoding process, the problem of inefficient decoding and encoding of video data blocks in the prior art is solved, and higher video data processing efficiency and quality are achieved.

CN113796076BActive Publication Date: 2025-05-02INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202080032864.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-03-26
Filing Date
2020-03-25
Publication Date
2025-05-02
Estimated Expiration
2040-03-25

AI Technical Summary

Technical Problem

When existing video decoding systems process multi-block quantized transformation coefficients, it is difficult to effectively decode and encode, resulting in inefficient storage and transmission bandwidth.

Method used

By obtaining the accuracy factors associated with each block, the quantized transformation coefficients of each block are decoded separately, including dequantization and inverse transformation, and the encoding functions are used using these accuracy factors during the encoding process.

Benefits of technology

The decoding and encoding efficiency of video data blocks is improved, the bandwidth required for storage and transmission is reduced, and the quality of video data is enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113796076B_ABST
    Figure CN113796076B_ABST
Patent Text Reader

Abstract

Disclosed are systems, methods, and apparatus for obtaining decoded video data comprising quantized transform coefficients of a plurality of blocks, obtaining a first precision factor associated with a first block to perform at least one decoding function on the first block, obtaining a second precision factor associated with a second block to perform the at least one decoding function on the second block, and performing the at least one decoding function on the quantized transform coefficients of the first block using the first precision factor and performing at least one decoding function on the quantized transform coefficients of the second block using the second precision factor.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Serial No. 62 / 823,738, filed on March 26, 2019, the entire contents of which are incorporated herein by reference. Background Art

[0003] Video coding systems may be used to compress digital video signals, for example, to reduce the storage and / or transmission bandwidth required for such signals. Summary of the invention

[0004] Disclosed are systems, methods, and apparatus for obtaining decoded video data comprising quantized transform coefficients of a plurality of blocks, obtaining a first precision factor associated with a first block to perform at least one decoding function on the first block, obtaining a second precision factor associated with a second block to perform the at least one decoding function on the second block, and performing the at least one decoding function on the quantized transform coefficients of the first block using the first precision factor and performing the at least one decoding function on the quantized transform coefficients of the second block using the second precision factor.

[0005] The first factor of precision (e.g., associated with the first block) and the second factor of precision (e.g., associated with the second block) may be obtained from the coded video data. The first factor of precision and the second factor of precision may be obtained based on the magnitude of the transform coefficients of their respective blocks. The first factor of precision and the second factor of precision may be different (e.g., depending on the content of the respective blocks).

[0006] The at least one decoding function may include dequantization. The first factor of precision may include a first dequantization shift. The second factor of precision may include a second dequantization shift.

[0007] The at least one decoding function may include an inverse transform. The first factor of precision may include a first intermediate transform shift. The second factor of precision may include a second intermediate transform shift. Obtaining the first factor of precision associated with the first block may include determining the intermediate transform shift associated with the first block based on a bound on an absolute magnitude of an output of a first inverse transform, and the at least one decoding function may include a second inverse transform.

[0008] The first precision factor may include a dequantization shift and an intermediate transform shift. The intermediate transform shift associated with the first block may be determined based on the dequantization shift associated with the first block. A normalization shift associated with the first block may be obtained based on the dequantization shift and the intermediate transform shift associated with the first block. The normalization shift may be used to perform normalization on the first block. A sum of the dequantization shift, the intermediate transform shift, and the normalization shift may be a content-independent value.

[0009] Disclosed are systems, methods, and means for obtaining prediction residual data for a plurality of blocks of video data, analyzing the prediction residual data to determine magnitude inputs representing the blocks, determining a first precision factor associated with a first block to perform at least one encoding function on the first block, determining a second precision factor associated with a second block to perform the at least one encoding function on the second block, and performing the at least one encoding function on the inputs to the first block using the first precision factor and performing the at least one encoding function on the inputs to the second block using the second precision factor.

[0010] The at least one encoding function may include at least one of horizontal transformation or quantization.

[0011] An indication of the first precision factor for the first block may be included in a bitstream representing the video data. And / or an indication of the second precision factor for the second block may be included in a bitstream representing the video data. The indication of the first precision factor may include a number of fractional bits used to perform at least one decoding function.

[0012] Analysis of the prediction residual data may be performed prior to vertical transform to determine a maximum magnitude input that may be used to represent the block (eg, the magnitude input may be based on a maximum magnitude of residual coefficients associated with the block).

[0013] The first dilution of precision may be different from the second dilution of precision.

[0014] The systems, methods, and means described herein may relate to a decoder. In some examples, the systems, methods, and means described herein may relate to an encoder. In some examples, the systems, methods, and means described herein may relate to a signal (e.g., from an encoder and / or received by a decoder). A computer-readable medium may include instructions for causing one or more processors to perform the methods described herein. A computer program product may include instructions that, when executed by one or more processors, may cause the one or more processors to perform the methods described herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1Ais a system diagram illustrating an example communication system in which one or more disclosed embodiments may be implemented;

[0016] Figure 1B is a diagram showing that according to one embodiment, Figure 1A A system diagram of an example wireless transmit / receive unit (WTRU) for use within a communication system is shown;

[0017] Figure 1C is a diagram showing that according to one embodiment, Figure 1A A system diagram of an example radio access network (RAN) and an example core network (CN) used within the communication system shown;

[0018] Figure 1D is a diagram showing that according to one embodiment, Figure 1A A system diagram of another exemplary RAN and another exemplary CN used within the communication system shown;

[0019] Figure 2 An exemplary block-based video encoder is shown.

[0020] Figure 3 An example video decoder is shown.

[0021] Figure 4 Examples of systems are shown in which various aspects and examples may be implemented.

[0022] Figure 4A An example of a general encoder structure is shown.

[0023] Figure 5 Examples of dequantization and / or inverse transformation are shown.

[0024] Figure 6 An example of the bits to be used is shown (eg, before inverse transforming the sample sequence (eg, intra-frame only)).

[0025] Figure 7 Examples of dequantization and / or inverse transformation are shown.

[0026] Figure 8 An example of a flowchart of a decoding operation according to the present invention is shown.

[0027] Fig. 9 An example of shifting in a forward transform is shown.

[0028] Fig.10 An example of a Content Adaptive Transform Precision (CAT) forward encoder is shown.

[0029] Fig.11 An example of a flow chart of an encoding operation according to the present disclosure is shown. DETAILED DESCRIPTION

[0030] The present invention can be understood in more detail from the following description given by way of example in conjunction with the accompanying drawings.

[0031] Figure 1A 1 is a diagram showing 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 by sharing system resources including wireless bandwidth. For example, the communication system 100 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), zero tail unique word DFT spread OFDM (ZT UW DTS-s OFDM), unique word OFDM (UW-OFDM), resource block filtered OFDM, and filter bank multi-carrier (FBMC), etc.

[0032] like Figure 1A As shown, the communication system 100 may include wireless transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, RAN 104 / 113, CN 106 / 115, public switched telephone network (PSTN) 108, Internet 110, and other networks 112, although it should be appreciated that the disclosed embodiments contemplate any number of WTRUs, base stations, networks, and / or network components. Each WTRU 102a, 102b, 102c, 102d may be any type of device configured to operate and / or communicate in a wireless environment. For example, any of the WTRUs 102a, 102b, 102c, 102d may be referred to as a “station” and / or “STA”, which may be configured to transmit and / or receive wireless signals, and may include a 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 working in an industrial and / or automated process chain environment), consumer electronic devices, and devices working on a commercial and / or industrial wireless network, etc. Any of the WTRUs 102a, 102b, 102c, 102d may be interchangeably referred to as a UE.

[0033] The communication system 100 may also include a base station 114a and / or a base station 114b. Each base station 114a and / or base station 114b may be any type of device configured to facilitate access to one or more communication networks (e.g., CN 106 / 115, Internet 110, and / or other networks 112) by wirelessly interfacing with at least one of the WTRUs 102a, 102b, 102c, 102d. For example, the base stations 114a, 114b may be base transceiver stations (BTS), Node Bs, eNode Bs, Home Node Bs, Home eNode Bs, gNBs, NR Node Bs, site controllers, access points (APs), wireless routers, and the like. Although each base station 114a, 114b is depicted as a single component, it should be appreciated that the base stations 114a, 114b may include any number of interconnected base stations and / or network components.

[0034] The base station 114a may be part of the RAN 104 / 113, and the RAN may also include other base stations and / or network components (not shown), such as a base station controller (BSC), a radio network controller (RNC), a relay node, and the like. 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 called 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 wireless service coverage for a specific geographic area that is relatively fixed or may change over time. A cell may be further divided into cell sectors. For example, a cell associated with the base station 114a may be divided into three sectors. Thus, in one embodiment, the base station 114a may include three transceivers, i.e., each transceiver corresponds to a sector of the cell. In one embodiment, the base station 114a may use multiple-input multiple-output (MIMO) technology and may use multiple transceivers for each sector of the cell. For example, by using beamforming, signals may be transmitted and / or received in a desired spatial direction.

[0035] 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, millimeter wave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).

[0036] More specifically, as described above, the communication system 100 may be a multiple access system and may use one or more channel access schemes, such as CDMA, TDMA, FDMA, OFDMA, and SC-FDMA, among others. For example, the base station 114a in the RAN 104 / 113 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 115 / 116 / 117. 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).

[0037] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may utilize a radio technology such as Evolved UMTS Terrestrial Radio Access (E-UTRA), which may utilize Long Term Evolution (LTE) and / or LTE-Advanced (LTE-A) and / or LTE-Advanced Pro (LTE-A Pro) to establish the air interface 116.

[0038] 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).

[0039] 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 jointly implement LTE radio access and NR radio access (e.g., 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).

[0040] 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), Enhanced Data Rates for GSM Evolution (EDGE), and GSM EDGE (GERAN), etc.

[0041] Figure 1A The base station 114b in the example may be a wireless router, a Home NodeB, a Home eNodeB, or an access point, and may use any appropriate RAT to facilitate wireless connectivity in a local area, such as a business location, a residence, 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 establish a wireless local area network (WLAN) by implementing a radio technology such as IEEE 802.11. In one embodiment, the base station 114b and the WTRUs 102c, 102d may establish a wireless personal area network (WPAN) by implementing a radio technology such as IEEE 802.15. In yet another embodiment, the base station 114b and the WTRUs 102c, 102d may establish a picocell or a femtocell by using a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.). Figure 1A As shown, the base station 114b may be directly connected to the Internet 110. Thus, the base station 114b does not need to access the Internet 110 via the CN 106 / 115.

[0042] The RAN 104 / 113 may be in communication with the CN 106 / 115, 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 WTRUs 102a, 102b, 102c, 102d. The data may have different quality of service (QoS) requirements, such as different throughput requirements, latency requirements, fault tolerance requirements, reliability requirements, data throughput requirements, mobility requirements, etc. The CN 106 / 115 may provide call control, billing services, mobile location-based services, prepaid calls, Internet connectivity, video distribution, etc., and / or may perform advanced security functions such as user authentication. Although in Figure 1AAlthough not shown, it will be appreciated that the RAN 104 / 113 and / or the CN 106 / 115 may be in direct or indirect communication with other RANs that employ the same RAT or a different RAT as the RAN 104 / 113. For example, in addition to being connected to the RAN 104 / 113 employing NR radio technology, the CN 106 / 115 may also be in communication with other RANs (not shown) employing GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, or WiFi radio technology.

[0043] The CN 106 / 115 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 network devices that use common communication protocols (e.g., 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, wherein the one or more RANs may use the same RAT or a different RAT as the RAN 104 / 113.

[0044] 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 over 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.

[0045] Figure 1B is a system diagram showing an example WTRU 102. Figure 1B As shown, the WTRU 102 may include a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a numeric keypad 126, a display / touchpad 128, a non-removable memory 130, a removable memory 132, a power source 134, a global positioning system (GPS) chipset 136, and other peripherals 138. It should be appreciated that the WTRU 102 may include any sub-combination of the foregoing components while remaining consistent with an embodiment.

[0046] 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, and the like. The processor 118 may perform signal coding, data processing, power control, input / output processing, and / or any other functionality that enables 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, however it should be appreciated that the processor 118 and the transceiver 120 may also be integrated into one electronic component or chip.

[0047] The transmit / receive component 122 may be configured to transmit or receive signals to or from a base station (e.g., base station 114a) via the air interface 116. For example, in one embodiment, the transmit / receive component 122 may be an antenna configured to transmit and / or receive RF signals. As an example, in another embodiment, the transmit / receive component 122 may be an emitter / detector configured to transmit and / or receive IR, UV, or visible light signals. In yet another embodiment, the transmit / receive component 122 may be configured to transmit and / or receive RF and light signals. It should be appreciated that the transmit / receive component 122 may be configured to transmit and / or receive any combination of wireless signals.

[0048] Although in Figure 1B 102 as a single component, but the WTRU 102 may include any number of transmit / receive components 122. More specifically, the WTRU 102 may employ MIMO technology. Thus, in one embodiment, the WTRU 102 may include two or more transmit / receive components 122 (e.g., multiple antennas) for transmitting and receiving radio signals over the air interface 116.

[0049] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive component 122 and to demodulate signals received by the transmit / receive component 122. As described above, the WTRU 102 may have multi-mode capabilities. Thus, the transceiver 120 may include multiple transceivers that allow the WTRU 102 to communicate via multiple RATs (e.g., NR and IEEE 802.11).

[0050] 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 from these components. 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 information in any 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, memory that is not physically located on the WTRU 102, such as, for example, on a server or a home computer (not shown).

[0051] The processor 118 may receive power from the power source 134, and may be configured to distribute and / or control power for use by 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 (Ni-Cd), nickel-zinc (Ni-Zn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, and the like.

[0052] 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) related to 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) via the air interface 116 and / or determine its location based on the timing of signals received from two or more nearby base stations. It should be appreciated that the WTRU 102 may acquire location information via any suitable positioning method while remaining consistent with an embodiment.

[0053] The processor 118 may also be coupled to other peripheral devices 138, which may include one or more software and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the peripheral devices 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, Modules, frequency modulation (FM) radio units, digital music players, media players, video game console modules, Internet browsers, virtual reality and / or augmented reality (VR / AR) devices, and activity trackers, etc. The peripherals 138 may include one or more sensors, which may be one or more of the following: gyroscopes, accelerometers, Hall effect sensors, magnetometers, orientation sensors, proximity sensors, temperature sensors, time sensors, geolocation sensors, altimeters, light sensors, touch sensors, magnetometers, barometers, gesture sensors, biometric sensors, and / or humidity sensors.

[0054] The WTRU 102 may include a full-duplex radio in which reception or transmission 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 for the radio. A full-duplex radio may include an interference management unit that reduces and / or substantially eliminates self-interference by means of hardware (e.g., chokes) or by signal processing by a processor (e.g., a separate processor (not shown) or by the processor 118). In one embodiment, the WTRU 102 may include a half-duplex radio that transmits or receives some or all signals (e.g., associated with specific subframes for UL (e.g., for transmission) or downlink (e.g., for reception)).

[0055] Figure 1C 1 is a system diagram showing the RAN 104 and the CN 106 according to one embodiment. As described above, the RAN 104 may communicate with the WTRUs 102a, 102b, 102c using an E-UTRA radio technology over the air interface 116. The RAN 104 may also be in communication with the CN 106.

[0056] The RAN 104 may include eNode-Bs 160a, 160b, 160c, however it will be appreciated that the RAN 104 may include any number of eNode-Bs while remaining consistent with an embodiment. Each of the eNode-Bs 160a, 160b, 160c may include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the eNode-Bs 160a, 160b, 160c may implement MIMO technology. Thus, for example, the eNode-B 140a may use multiple antennas to transmit wireless signals to, and / or receive wireless signals from, the WTRU 102a.

[0057] Each eNodeB 160a, 160b, 160c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, user scheduling in UL and / or DL, etc. Figure 1C As shown, the eNode-Bs 160a, 160b, 160c may communicate with each other via an X2 interface.

[0058] Figure 1C The illustrated CN 106 may include a mobility management entity (MME) 162, a serving gateway (SGW) 164, and a packet data network (PDN) gateway (or PGW) 166. Although each of the foregoing components is described as being part of the CN 106, it should be appreciated that any of these components may be owned and / or operated by an entity other than the CN operator.

[0059] The MME 162 may be connected to each of the eNode-Bs 160a, 160b, 160c in the RAN 104 via an S1 interface and may act as a control node. For example, the MME 142 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, performing bearer activation / deactivation processing, and selecting a particular serving gateway during an initial attach of the WTRUs 102a, 102b, 102c. The MME 162 may also provide a control plane function for switching between the RAN 104 and other RANs (not shown) that employ other radio technologies, such as GSM and / or WCDMA.

[0060] The SGW 164 may be connected to each of the eNode-Bs 160a, 160b, 160c in the RAN 104 via an S1 interface. The SGW 164 may generally route and forward user data packets to / from the WTRUs 102a, 102b, 102c. The SGW 164 may also perform other functions, such as anchoring the user plane during inter-eNode-B handovers, triggering paging processing when DL data is available for the WTRUs 102a, 102b, 102c, and managing and storing the contexts of the WTRUs 102a, 102b, 102c, and the like.

[0061] The SGW 164 may be connected to the PGW 166, which may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices.

[0062] The CN 106 may facilitate communications with other networks. For example, the CN 106 may provide the WTRUs 102a, 102b, 102c with access to circuit-switched networks, such as the PSTN 108, to facilitate communications between the WTRUs 102a, 102b, 102c and traditional land-line communications devices. For example, the CN 106 may include or communicate with an IP gateway, such as an IP Multimedia Subsystem (IMS) server, and the IP gateway may serve as an interface between the CN 106 and the PSTN 108. In addition, the CN 106 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks that are owned and / or operated by other service providers.

[0063] Although in Figures 1A-1D While the WTRU is described as a wireless terminal, it should be appreciated that in certain representative embodiments, such a terminal may use a (eg, temporary or permanent) wired communication interface with a communication network.

[0064] In some representative embodiments, other network 112 may be a WLAN.

[0065] A WLAN using an infrastructure basic service set (BSS) mode may have an access point (AP) for the BSS and one or more stations (STAs) associated with the AP. The AP may access or be connected to a distributed system (DS) or other types of wired / wireless networks that send traffic into and / or out of the BSS. Traffic originating from outside the BSS and destined for the STA may arrive through the AP and be delivered to the STA. Traffic originating from the STA and destined for a destination outside the BSS may be sent to the AP for delivery to the corresponding destination. Traffic between STAs within the BSS may be sent through the AP, for example, where the source STA may send traffic to the AP and the AP may deliver the traffic to the destination STA. Traffic between STAs within the BSS may be considered and / or referred to as point-to-point traffic. The point-to-point traffic may be sent between the source and destination STAs (e.g., directly therebetween) using a direct link setup (DLS). In certain representative embodiments, the DLS may use 802.11e DLS or 802.11z tunneled DLS (TDLS)). For example, a WLAN using an independent BSS (IBSS) mode may not have an AP, and STAs (eg, all STAs) within or using the IBSS may communicate directly with each other. Here, the IBSS communication mode may sometimes be referred to as an "ad hoc" communication mode.

[0066] When using the 802.11ac infrastructure mode of operation or a similar mode of operation, the AP may transmit a beacon on a fixed channel (e.g., a primary channel). The primary channel may have a fixed width (e.g., a bandwidth of 20 MHz) or a width that is dynamically set by means of signaling. The primary channel may be a working channel of the BSS and may be used by the STA to establish a connection with the AP. In certain representative embodiments, carrier sense multiple access (CSMA / CA) with collision avoidance (e.g., in an 802.11 system) may be implemented. For CSMA / CA, STAs (e.g., each STA) including the AP may sense the primary channel. If a particular STA senses / detects and / or determines that the primary channel is busy, the particular STA may back off. In a specified BSS, one STA (e.g., only one station) transmits at any given time.

[0067] A high throughput (HT) STA may communicate using a 40 MHz wide channel (eg, by combining a 20 MHz wide primary channel with a 20 MHz wide adjacent or non-adjacent channel to form a 40 MHz wide channel).

[0068] Very high throughput (VHT) STA can support channels with widths of 20MHz, 40MHz, 80MHz and / or 160MHz. 40MHz and / or 80MHz channels can be formed by combining continuous 20MHz channels. A 160MHz channel can be formed by combining 8 continuous 20MHz channels or by combining two discontinuous 80MHz channels (this combination can be referred to as an 80+80 configuration). For the 80+80 configuration, after channel coding, the data can be transmitted and passed through a segment parser, which can separate the data into two streams. Inverse fast Fourier transform (IFFT) processing and time domain processing can be performed separately on each stream. The stream can be mapped on two 80MHz channels, and the data can be transmitted by the STA performing the transmission. At the receiver of the STA performing the reception, the above operations for the 80+80 configuration can be reversed, and the combined data can be sent to the medium access control (MAC).

[0069] 802.11af and 802.11ah support sub-1 GHz operating modes. Compared to 802.11n and 802.11ac, the channel operating bandwidth and carrier used in 802.11af and 802.11ah are reduced. 802.11af supports 5MHz, 10MHz and 20MHz bandwidths in the TV White Space (TVWS) spectrum, and 802.11ah supports 1MHz, 2MHz, 4MHz, 8MHz and 16MHz bandwidths using non-TVWS spectrum. According to a representative embodiment, 802.11ah can support instrument type control / machine type communication (e.g., MTC devices in macro coverage areas). MTC can have certain capabilities, such as limited capabilities including support (e.g., only support) certain and / or limited bandwidths. MTC devices can include a battery, and the battery life of the battery is higher than a threshold (e.g., for maintaining a very long battery life).

[0070] For WLAN systems that can support multiple channels and channel bandwidths (e.g., 802.11n, 802.11ac, 802.11af, and 802.11ah), these systems include a channel that can be designated as a primary channel. The bandwidth of the primary channel can be equal to the maximum common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel can be set and / or limited by a STA, where the STA is derived from all STAs operating in the BSS that supports the minimum bandwidth operating mode. In the example of 802.11ah, even if the AP and other STAs in the BSS support 2MHz, 4MHz, 8MHz, 16MHz and / or other channel bandwidth operating modes, for STAs (e.g., MTC-type devices) that support (e.g., only support) 1MHz mode, the width of the primary channel can be 1MHz. Carrier sensing and / or network allocation vector (NAV) settings can depend on the state of the primary channel. If the primary channel is busy (eg, because a STA (which only supports 1 MHz operating mode) is transmitting to the AP), then the entire available band may be considered busy even though most of the band remains empty and available for use.

[0071] In the United States, the available frequency band for 802.11ah is 902MHz to 928MHz. In South Korea, the available frequency band is 917.5MHz to 923.5MHz. In Japan, the available frequency band is 916.5MHz to 927.5MHz. Depending on the country code, the total bandwidth available for 802.11ah is 6MHz to 26MHz.

[0072] Figure 1D 1 is a system diagram showing the RAN 113 and the CN 115 according to one embodiment. As described above, the RAN 113 may communicate with the WTRUs 102a, 102b, 102c using NR radio technology over the air interface 116. The RAN 113 may also be in communication with the CN 115.

[0073] The RAN 113 may include gNBs 180a, 180b, 180c, though it will be appreciated that the RAN 113 may include any number of gNBs while remaining consistent with the embodiments. Each of the gNBs 180a, 180b, 180c may include one or more transceivers to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the gNBs 180a, 180b, 180c may implement MIMO technology. For example, the gNBs 180a, 180b may use beamforming processing to transmit and / or receive signals to and / or from the gNBs 180a, 180b, 180c. Thus, for example, the gNB 180a may use multiple antennas to transmit wireless signals to and / or receive wireless signals from the WTRU 102a. In one embodiment, the gNBs 180a, 180b, 180c may implement carrier aggregation technology. For example, the gNB 180a may transmit a plurality of component carriers (not shown) to the WTRU 102a. A subset of these component carriers may be on an unlicensed spectrum, while the remaining component carriers may be on a licensed spectrum. In one embodiment, the gNBs 180a, 180b, 180c may implement coordinated multi-point (CoMP) technology. For example, the WTRU 102a may receive coordinated transmissions from gNB 180a and gNB 180b (and / or gNB 180c).

[0074] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using transmissions associated with the scalable parameter configurations. For example, the OFDM symbol spacing and / or OFDM subcarrier spacing may be different for different transmissions, different cells, and / or different portions of the radio transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using subframes or transmission time intervals (TTIs) of different or scalable lengths (e.g., containing different numbers of OFDM symbols and / or lasting different absolute time lengths).

[0075] The gNBs 180a, 180b, 180c may be configured to communicate with the WTRUs 102a, 102b, 102c in a standalone configuration and / or a non-standalone configuration. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c without accessing other RANs (e.g., the eNodeBs 160a, 160b, 160c). In a standalone configuration, the WTRUs 102a, 102b, 102c may use one or more of the gNBs 180a, 180b, 180c as mobility anchors. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using signals in an unlicensed band. In a non-standalone configuration, the WTRU 102a, 102b, 102c may communicate / connect to the gNB 180a, 180b, 180c while communicating / connecting to another RAN (e.g., the eNode-B 160a, 160b, 160c). For example, the WTRU 102a, 102b, 102c may communicate with one or more gNBs 180a, 180b, 180c and one or more eNode-Bs 160a, 160b, 160c in a substantially simultaneous manner by implementing the DC principle. In a non-standalone configuration, the eNode-B 160a, 160b, 160c may act as a mobility anchor for the WTRU 102a, 102b, 102c, and the gNB 180a, 180b, 180c may provide additional coverage and / or throughput to serve the WTRU 102a, 102b, 102c.

[0076] Each gNB 180a, 180b, 180c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, user scheduling in UL and / or DL, support network slicing, implement dual connectivity, implement interworking between NR and E-UTRA, route user plane data to user plane functions (UPFs) 184a, 184b, and route control plane information to access and mobility management functions (AMFs) 182a, 182b, and the like. Figure 1D As shown, gNBs 180a, 180b, and 180c can communicate with each other through the Xn interface.

[0077] Figure 1DThe CN 115 shown may include at least one AMF 182a, 182b, at least one UPF 184a, 184b, at least one session management function (SMF) 183a, 183b, and may include a data network (DN) 185a, 185b. Although each of the aforementioned components is described as part of the CN 115, it should be understood that any of these components may be owned and / or operated by entities other than the CN operator.

[0078] The AMF 182a, 182b may be connected to one or more gNBs 180a, 180b, 180c in the RAN 113 via the N2 interface and may act as a control node. For example, the AMF 182a, 182b may be responsible for authenticating users of the WTRU 102a, 102b, 102c, supporting network slicing (e.g., handling different PDU sessions with different requirements), selecting a specific SMF 183a, 183b, managing registration areas, terminating NAS signaling, and mobility management, etc. The AMF 182a, 1823b may use network slicing processing to customize the CN support provided to the WTRU 102a, 102b, 102c based on the type of service used by the WTRU 102a, 102b, 102c. As an example, different network slices may be established for different use cases, such as services relying on ultra-reliable low latency (URLLC) access, services relying on enhanced massive mobile broadband (eMBB) access, and / or services for machine type communication (MTC) access, etc. The AMF 162 may provide a control plane function for switching between the RAN 113 and other RANs (not shown) using other radio technologies (e.g., LTE, LTE-A, LTE-APro, and / or non-3GPP access technologies such as WiFi).

[0079] The SMF 183a, 183b may be connected to the AMF 182a, 182b in the CN 115 via the N11 interface. The SMF 183a, 183b may also be connected to the UPF 184a, 184b in the CN 115 via the N4 interface. The SMF 183a, 183b may select and control the UPF 184a, 184b, and may configure traffic routing through the UPF 184a, 184b. The SMF 183a, 183b may perform other functions, such as managing and allocating UE IP addresses, managing PDU sessions, controlling policy enforcement and QoS, and providing downlink data notification, etc. The PDU session type may be IP-based, non-IP-based, Ethernet-based, etc.

[0080] The UPF 184a, 184b can be connected to one or more gNBs 180a, 180b, 180c in the RAN 113 via the N3 interface, which can provide the WTRU 102a, 102b, 102c with a packet-switched network (e.g., the Internet 110) connection to facilitate communication between the WTRU 102a, 102b, 102c and IP-enabled devices. The UPF 184, 184b can perform other functions such as routing and forwarding packets, implementing user plane policies, supporting multi-host PDU sessions, processing user plane QoS, buffering downlink packets, and providing mobility anchor processing, etc.

[0081] The CN 115 may facilitate communications with other networks. For example, the CN 115 may include or may communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between the CN 115 and the CN 108. In addition, the CN 115 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers. In one embodiment, the WTRUs 102a, 102b, 102c may be connected to a local data network (DN) 185a, 185b via an N3 interface connected to the UPF 184a, 184b and an N6 interface between the UPF 184a, 184b and the DN 185a, 185b and through the UPF 184a, 184b.

[0082] In view of Figures 1A-1D and about Figures 1A-1D In accordance with the corresponding description of the present invention, one or more or all of the functions described herein in comparison with one or more of the following may be performed by one or more simulation devices (not shown): WTRU 102a-d, base station 114a-b, eNodeB 160a-c, MME 162, SGW 164, PGW 166, gNB 180a-c, AMF 182a-ab, UPF 184a-b, SMF 183a-b, DN 185a-b and / or any other device described herein. These simulation devices may be one or more devices configured to simulate one or more or all of the functions herein. For example, these simulation devices may be used to test other devices and / or simulate network and / or WTRU functions.

[0083] The simulation device can be designed to implement one or more tests about other devices in a laboratory environment and / or an operator network environment. For example, the one or more simulation devices can perform one or more or all functions while being implemented and / or deployed as part of a wired and / or wireless communication network in whole or in part to test other devices inside the communication network. The one or more simulation devices can perform one or more or all functions while being temporarily implemented / deployed as part of a wired and / or wireless communication network. The simulation device can be directly coupled to other devices to perform the test, and / or can use over-the-air wireless communication to perform the test.

[0084] One or more simulation devices can perform one or more functions, including all functions, while not being implemented / deployed as part of a wired and / or wireless communication network. For example, the simulation device can be used in a test lab and / or a test scenario of a wired and / or wireless communication network that is not deployed (e.g., tested) to implement tests on one or more components. The one or more simulation devices can be test devices. The simulation device can transmit and / or receive data using direct RF coupling and / or wireless communication with the aid of RF circuits (as an example, the circuits can include one or more antennas).

[0085] The application describes a number of aspects, including tools, features, examples, models, methods, etc. Many aspects in these aspects are described as having specificity, and at least in order to illustrate individual characteristics, are usually described in a manner that may sound limited. However, this is for the purpose of describing clearly, and does not limit the application or scope of those aspects. In fact, all different aspects can be combined and interchanged to provide other aspects. In addition, these aspects can also be combined and interchanged with the aspects described in earlier applications.

[0086] The aspects described and contemplated in this application can be implemented in many different forms. Figure 5-11 Some examples may be provided, but others are also contemplated. Figure 5-11 The discussion does not limit the breadth of implementation. At least one aspect generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting the generated or encoded bitstream. These and other aspects can be implemented as methods, apparatus, computer-readable storage media having stored thereon instructions for encoding or decoding video data according to any of the described methods, and / or computer-readable storage media having stored thereon bitstreams generated according to any of the described methods.

[0087] In this application, the terms "reconstruction" and "decoding" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image", "picture" and "frame" may be used interchangeably.

[0088] Various methods are described herein, and each method includes one or more steps or actions for implementing the described method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions may be modified or combined. In addition, terms such as "first", "second" and the like may be used to modify elements, components, steps, operations, etc., such as "first decoding" and "second decoding" in various examples. Unless specifically required, the use of these terms does not mean the ordering of the modified operation. Therefore, in this example, the first decoding does not need to be performed before the second decoding, and may occur, for example, before, during, or in a time period overlapping with the second decoding.

[0089] The various methods and other aspects described in this application can be used to modify Figure 2 and Figure 3 The modules of the video encoder 200 and decoder 300 shown, such as decoding modules, in addition, the subject matter disclosed herein can be applied to, for example, any type, format or version of video decoding, whether described in a standard or recommendation, whether pre-existing or developed in the future, and any such standard and recommendation extension. Unless otherwise specified or technically excluded, the aspects described in this application can be used alone or in combination.

[0090] Various values ​​are used in the examples described herein, such as number of bits, bit depth, etc. These and other specific values ​​are for the purpose of describing the examples, and the described aspects are not limited to these specific values.

[0091] Figure 2 is a diagram illustrating an example video encoder. Variations of the example encoder 200 are all foreseeable, but for the sake of clarity, the encoder 200 is described below without describing all contemplated variations.

[0092] Before being encoded, the video sequence may undergo a pre-encoding process (201), for example, applying a color transform to the input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input picture components in order to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and appended to the bitstream.

[0093] In encoder 200, a picture is encoded by encoder elements as described below. The picture to be encoded is partitioned (202) and processed in units such as coding units (CUs). Each unit is encoded using, for example, intra or inter mode. When the unit is encoded in intra mode, it performs intra prediction (260). In inter mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) whether to encode the unit using intra mode or inter mode, and indicates the intra / inter decision by, for example, a prediction mode flag. A prediction residual can be calculated, for example, by subtracting (210) the prediction block from the original image block.

[0094] The prediction residual is then transformed (225) and quantized (230). The quantized transform coefficients as well as motion vectors and other syntax elements are entropy coded (245) to output a bitstream. The encoder may skip the transform and apply quantization directly to the untransformed residual signal. The encoder may bypass the transform and quantization, i.e., directly decode the residual without applying the transform or quantization process.

[0095] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual. The decoded prediction residual is combined with the prediction block (255) to reconstruct the image block. An in-loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (280).

[0096] Figure 3 300 is a diagram illustrating an example of a video decoder. In the example decoder 300, a bitstream is decoded by decoder elements as described below. The video decoder 300 generally performs the same Figure 2 The encoder 200 also typically performs video decoding as part of encoding the video data.

[0097] Specifically, the input to the decoder comprises a video bitstream, which may be generated by the video encoder 200. The bitstream is first entropy decoded (330) to obtain transform coefficients, motion vectors, and other decoding information. Picture partition information indicates how the picture is partitioned. The decoder can therefore divide (335) the picture according to the decoded picture partition information. The transform coefficients are dequantized (340) and inverse transformed (350) to decode the prediction residual. The decoded prediction residual is combined (355) with a prediction block to reconstruct the image block. The prediction block may be obtained (370) from intra-frame prediction (360) or motion compensated prediction (i.e., inter-frame prediction) (375). An in-loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (380).

[0098] The decoded image may be further subjected to post-decoding processing (385), such as an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or performing an inverse remapping of the remapping process performed in the pre-encoding process (201). The post-decoding processing may use metadata derived in the pre-encoding process and signaled in the bitstream. In one example, the decoded image (e.g., after applying the in-loop filter (365), and / or if post-decoding processing is used, after the post-decoding processing (385)) may be sent to a display device for presentation to a user.

[0099] Figure 4 It is a diagram showing an example of a system in which various aspects and examples described herein can be implemented. System 400 can be implemented as a device including various components described below, and is configured to perform one or more aspects described herein. 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 household appliances and servers. The elements of system 400 can be implemented in a single integrated circuit (IC), multiple ICs and / or discrete components individually or in combination. For example, in at least one example, the processing and encoder / decoder elements of system 400 are distributed across multiple ICs and / or discrete components. In various examples, system 400 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or by dedicated input and / or output ports. In various examples, system 400 is configured to implement one or more aspects described herein.

[0100] The system 400 includes at least one processor 410, which is configured to execute instructions loaded therein, for implementing various aspects described herein, for example. The processor 410 may include embedded memory, input and output interfaces, and various other circuits known in the art. The system 400 includes at least one memory 420 (e.g., a volatile memory device and / or a non-volatile memory device). The system 400 includes a storage device 440, 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 disk drive, and / or an optical disk drive. As a non-limiting example, the storage device 440 may include an internal storage device, an attached storage device (including a removable and non-removable storage device), and / or a network-accessible storage device.

[0101] The system 400 includes an encoder / decoder module 430, which is configured to, for example, process data to provide encoded video or decoded video, and the encoder / decoder module 430 may include its own processor and memory. The encoder / decoder module 430 represents a module (one or more) that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. In addition, the encoder / decoder module 430 may be implemented as a separate element of the system 400, or may be incorporated into the processor 410 as a combination of hardware and software known to those skilled in the art.

[0102] Program code to be loaded onto the processor 410 or the encoder / decoder 430 to perform various aspects described in this document may be stored in the storage device 440 and subsequently loaded onto the memory 420 for execution by the processor 410. According to various examples, one or more of the processor 410, the memory 420, the storage device 440, and the encoder / decoder module 430 may store one or more of the various items during execution of the processes described herein. These stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.

[0103] In some examples, memory inside the processor 410 and / or the encoder / decoder module 430 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other examples, memory external to the processing device (e.g., the processing device may be the processor 410 or the encoder / decoder module 430) is used for one or more of these functions. The external memory may be a memory 420 and / or a storage device 440, such as a dynamic volatile memory and / or a non-volatile flash memory. In several examples, an external non-volatile flash memory is used to store, for example, an operating system for a television. In at least one example, a fast external dynamic volatile memory such as a RAM is used as working memory for video encoding and decoding operations.

[0104] As shown in block 445, input to the elements of system 400 may be provided through various input devices. Such input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted over the air, for example, by a broadcaster, (ii) a component (COMP) input terminal (or a set of COMP input terminals), (iii) a universal serial bus (USB) input terminal, and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Figure 4 Other examples not shown include composite video.

[0105] In various examples, the input device of block 445 has associated corresponding input processing elements known in the art. For example, the RF section 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 (for example) a signal frequency band, which in some examples may be referred to as a channel, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. Various examples of the RF section include one or more elements that perform 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 section 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 a near-baseband frequency) or a baseband. In the example of a set-top box, the RF part and its relevant input processing element receive the RF signal sent by wired (for example, cable) medium, and filter to the frequency band of expectation again by filtering, down-conversion and perform frequency selection.Various examples rearrange the order of above-mentioned (and other) elements, remove some in these elements and / or add other elements that perform similar or different functions.Adding element can include inserting element between existing element, for example inserting amplifier and analog-to-digital converter.In various examples, the RF part comprises antenna.

[0106] In addition, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 400 to other electronic devices via 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, within a separate input processing IC or within the processor 410. Similarly, various aspects of USB or HDMI interface processing may be implemented as needed within a separate interface IC or within the processor 410. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 410 and the encoder / decoder 430, which operate in conjunction with memory and storage elements to process the data stream as needed for presentation on an output device.

[0107] The various components of system 400 may be disposed within an integrated housing in which the various components may be interconnected and transmit data using a suitable connection arrangement 425, such as an internal bus known in the art, including an inter-IC (I2C) bus, wiring, and a printed circuit board.

[0108] The system 400 includes a communication interface 450 that enables communication with other devices via a communication channel 460. The communication interface 450 may include, but is not limited to, a transceiver configured to send and receive data through the communication channel 460. The communication interface 450 may include, but is not limited to, a modem or a network card, and the communication channel 460 may be implemented, for example, within a wired and / or wireless medium.

[0109] In various examples, data is streamed or otherwise provided to the system 400 using a wireless network such as a Wi-Fi network (e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers)). The Wi-Fi signals of these examples are received through a communication channel 460 and a communication interface 450 suitable for Wi-Fi communication. The communication channel 460 of these examples is typically connected to an access point or router that provides access to an external network including the Internet to allow streaming applications and other over-the-top communications. Other examples use a set-top box that delivers data through an HDMI connection of an input box 445 to provide streaming data to the system 400. Still other examples use an RF connection of an input box 445 to provide streaming data to the system 400. As described above, various examples provide data in a non-streaming manner. In addition, various examples use wireless networks other than Wi-Fi, such as a cellular network or a network.

[0110] The system 400 can provide output signals to various output devices, including a display 475, a speaker 485, and other peripherals 495. The display 475 of various examples includes one or more of, for example, a touch screen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. The display 475 can be used for a television, a tablet computer, a laptop computer, a cellular phone (mobile phone), or other devices. The display 475 can also be integrated with other components (e.g., as in a smart phone) or separated (e.g., an external monitor for a laptop computer). In various examples, the other peripherals 495 include one or more of an independent digital video disk (or digital versatile disk) (DVD, for both), a disk player, a stereo system, and / or a lighting system. Various examples use one or more peripherals 495 that provide functions based on the output of the system 400. For example, a disk player performs the function of playing the output of the system 400.

[0111] In various examples, control signals are transmitted between the system 400 and the display 475, speaker 485, or other peripheral device 495 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. The output devices may be communicatively coupled to the system 400 via dedicated connections through the respective interfaces 470, 480, and 490. Alternatively, the output devices may be connected to the system 400 via the communication interface 450 using the communication channel 460. The display 475 and speaker 485 may be integrated into a single unit with other components of the system 400 in an electronic device (e.g., a television). In various examples, the display interface 470 includes a display driver, such as, for example, a timing controller (T Con) chip.

[0112] For example, if the RF portion of input 445 is part of a separate set-top box, the display 475 and speaker 485 may alternatively be separate from one or more of the other components. In various examples where the display 475 and speaker 485 are external components, the output signals may be provided via dedicated output connections including, for example, an HDMI port, a USB port, or a COMP output.

[0113] These examples may be performed by computer software implemented by the processor 410 or by hardware or by a combination of hardware and software. As a non-limiting example, these examples may be implemented by one or more integrated circuits. The memory 420 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology, such as, as a non-limiting example, optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory. The processor 410 may be of any type suitable for the technical environment and may include, as a non-limiting example, one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0114] Various implementations involve decoding. As used in this application, "decoding" may include, for example, all or part of the processing performed on a received coded sequence to produce a final output suitable for display. In various examples, such a process includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various examples, such a process also or alternatively includes a process performed by a decoder of the various embodiments described in the present application, such as dequantization, inverse transform, and obtaining a precision factor (e.g., a precision factor may have one or more precision values ​​to be used in an encoder or decoder operation, or one or more shift values ​​to be used in a quantization or dequantization process), etc.

[0115] As a further example, in one example, "decoding" refers only to entropy decoding, in another example, "decoding" refers only to differential decoding, and in another example, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to specifically refer to a subset of operations or generally refer to a broader decoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0116] Various implementations involve encoding. In a manner similar to the above discussion of "decoding", "encoding" as used in this application may include, for example, all or part of a process performed on an input video sequence to produce an encoded bitstream. In various examples, such processes include one or more processes typically performed by an encoder, such as partitioning, differential encoding, transforms, quantization, and entropy encoding. In various examples, such processes also or alternatively include processes performed by an encoder of the various embodiments described in the present application, such as performing quantization, transforms, and obtaining a precision factor (e.g., a precision factor may have one or more precision values ​​to be used in an encoder or decoder operation, or one or more shift values ​​to be used in a quantization or dequantization process), etc.

[0117] As a further example, in one example, "encoding" refers only to entropy encoding, in another example, "encoding" refers only to differential encoding, and in another example, "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 become clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0118] Note that the syntax elements as used herein (e.g., coding syntax regarding precision factor, shift, number of fractional bits, etc.) are descriptive terms. Therefore, they do not exclude the use of other syntax element names.

[0119] When a figure is presented as a flow chart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.

[0120] Various examples relate to decoding. Content adaptive transforms may be applied. In particular, an apparatus may receive a video bitstream representing content. The video bitstream may include quantized transform coefficients for one or more blocks. A precision factor (e.g., shift) may be obtained (e.g., determined or signaled). The precision factor may have one or more precision values ​​to be used in encoder or decoder operations, or one or more shift values ​​to be used in quantization or dequantization processes. The precision factor may be associated with a block for performing at least one decoding function on the block. In an example, the precision factor may be based on the magnitude of the transform coefficients of the block. The precision factor may reduce the maximum magnitude transform coefficient to fit into 16 bits (16-bits).

[0121] The implementations and aspects described herein can be implemented in, for example, methods or processes, devices, software programs, data streams, or signals. 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 can also be implemented in other forms (e.g., devices or programs). For example, the device can be implemented with appropriate hardware, software, and firmware. The method can be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes communication devices, such as computers, cellular phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate information communication between end users.

[0122] Reference to "one example," "an example," or "an implementation," or "implementation," and other variations thereof, means that a particular feature, structure, characteristic, etc. described in connection with the example is included in at least one example. Thus, the appearances of the phrases "one example," "an example," or "an implementation," or "implementation," and any other variations thereof, appearing in various places throughout this application are not necessarily all referring to the same example.

[0123] Additionally, the present application may involve "determining" various information. Determining the 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. Obtaining may include: receiving, retrieving, constructing, generating, and / or determining.

[0124] In addition, the present application may involve "accessing" various information. Accessing the information may include, for example, one or more of: receiving the information, retrieving the information (e.g., from a memory), storing the information, moving the information, copying the information, calculating the information, determining the information, predicting the information, or estimating the information.

[0125] Additionally, the present application may involve "receiving" various information. Like "accessing," receiving is intended to be a broad term. Receiving the information may include, for example, one or more of: accessing the information or retrieving the information (e.g., from a memory). Additionally, during operations such as storing information, processing information, sending information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, "receiving" is often involved in one way or another.

[0126] 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 selection of 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 wording is intended to include selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A and B and C). This can be extended to multiple items listed, as will be apparent to one of ordinary skill in this and related arts.

[0127] In addition, as used herein, the word "signal" especially refers to a corresponding decoder indicating something. The encoder signal may include, for example, a coding function for the input of a block using a precision factor, etc. In this way, in the example, the same parameters are used at both the encoder side and the decoder side. Therefore, for example, the encoder can send (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 the specific parameters and other parameters, signaling can be used without sending (implicit signaling) to simply allow the decoder to know and select specific parameters. By avoiding the transmission of any actual function, bit saving is achieved in various examples. It should be understood that signaling can be implemented in various ways. For example, in various examples, one or more syntax elements, flags, etc. are used to signal the information to the corresponding decoder. Although the foregoing relates to the verb form of the word "signal", the word "signal" can also be used as a noun in this article.

[0128] As will be apparent to one of ordinary skill in the art, implementations may generate various signals formatted to carry information that may be stored or transmitted, for example. The information may include, for example, instructions for performing a method, or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the described examples. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. The 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. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor-readable medium.

[0129] Many examples are described herein. The features of the examples may be provided individually or in any combination across various claim categories and types. In addition, the examples may include one or more of the features, devices, or aspects described herein, individually or in any combination, across various claim categories and types. For example, the features described herein may be implemented in a bitstream or signal including information generated as described herein. This information may allow a decoder to decode a bitstream according to any of the described embodiments, and / or an encoder to encode a bitstream according to any of the described embodiments. For example, the features described herein may be implemented by creating and / or sending and / or receiving and / or decoding a bitstream or signal. For example, the features described herein may be implemented as a method, process, device, medium storing instructions, medium storing data, or signal. For example, the features described herein may be implemented by a TV, a set-top box, a cell phone, a tablet computer, or other electronic device performing decoding. The TV, set-top box, cell phone, tablet computer, or other electronic device may display (e.g., using a monitor, screen, or other type of display) a result image (e.g., an image reconstructed from a residual of a video bitstream). The TV, set-top box, cell phone, tablet computer, or other electronic device may receive a signal including an encoded image and perform decoding.

[0130] Video and / or images may be represented using 8-bit samples. Video (e.g., video using motion compensation decoding) may produce a 9-bit residual. Processing by discrete cosine transform (DCT) with a block size of, for example, 8×8 or 4×4 may be implemented at the decoder using a 16-bit integer pipeline.

[0131] Figure 4A An example of a general encoder structure is shown.

[0132] Video represented with 8-bit samples may exhibit contour artifacts, for example, in dark areas. A video codec that supports extended bit depth in processing may be used. Applications may generate content that requires higher bit depth samples, such as high dynamic range content, synthetic content, and light detection and ranging (LiDAR) range data. Larger block size transforms may be considered in the video codec. Larger block size transforms may increase residual dynamic range. The video codec may support extended bit depth in processing. Pipelining, multiplication, and / or memory access may be maintained at 16-bit precision.

[0133] Dynamic range control can be performed in video decoding. Video compression can operate on 8-bit sample data and / or use 8×8 DCT transform. Some codec designs may not define a bit-exact inverse transform and / or reconstruction process. Different architectures can be developed for inverse transform and / or reconstruction. For example, statistical tolerances can be used compared to a reference floating-point inverse discrete cosine transform (IDCT). For example, inverse transform accuracy specifications and / or inverse discrete cosine transforms can be used. Developing different architectures may introduce drift into the temporal prediction process of the video codec. The drift can be controlled. The frequency at which a block is decoded without prediction (e.g., intra-frame) can be specified.

[0134] For example, a macroblock may be updated at least once (e.g., forcibly) every 132 times it is sent. Accumulation of inverse transform mismatch errors may be controlled. A method may be used to handle small input signals and / or potential IDCT drift. IDCT mismatch control may include, for example, adding or subtracting one to a coefficient if the sum of the coefficients is even after inverse quantization.

[0135] For some IDCT approximations, a small non-zero input to the IDCT can result in an all-zero output. If this occurs in an encoder, a mismatch may occur in a decoder that uses a different IDCT approximation than the one used in the encoder to model the decoding process. The encoder can check the output of the encoder's own IDCT approximation. For example, the encoder can avoid inserting non-zero coefficients into the bitstream when the block in question is reconstructed to zero by the encoder's own IDCT function approximation.

[0136] Various IDCT drift problems can be analyzed. Some video decoding can incorporate decoding formats with bit depths higher than 8 bits. Higher bit depths can be supported. Additional precision in the video reconstruction pipeline can be used. Some general purpose decoders may not support high bit depth applications.

[0137] A bit-accurate reconstruction may be used. A bit-accurate inverse transform may be specified. A transform may be used so that the IDCT computation uses 16-bit multiplication operations (e.g., only) and / or 16-bit memory accesses on the data resulting from the forward transform. In an example, the bitstream may not contain any residual values ​​or intermediate coefficient values ​​that result in any re-generated values ​​exceeding the range from -2 (7+bitDepth ) to 2 (7 +bitDepth) Data with integer values ​​ranging from -1 (inclusive).

[0138] For example, before the first IDCT and / or between separable IDCT stages, a clipping operation on the coefficients may be provided (eg, explicitly) using, for example, Equation 1 and / or Equation 2.

[0139] d[x][y]=Clip3(-32768, 32767, ((TransCoeffLevel[xTbY][yTbY][cIdx][x][y]*m[x][y]*levelScale[qP%6]<<(qP / 6))+(1<<(bdShift-1)))>>bdShift) Equation 1

[0140] g[x][y]=Clip3(-32768, 32767, (e[x][y]+64)>>7) Equation 2

[0141] A transform including a clipping operation that supports a 16-bit dynamic range is sufficient for the IDCT calculation. A canonical bit-accurate reconstruction equation may be used (eg, to avoid drift in the absence of transmission errors).

[0142] A transform of the dynamic range may be used. The transform may be an ideal transform. As an example, an N-point transform T having one or more properties shown in Equations 3 and 4 may be used.

[0143] T may be an orthogonal transform. For example, T may preserve L2 energy.

[0144]

[0145] T may be a compression transform. For example, T may transform a DC signal into a (eg, a single) coefficient.

[0146]

[0147] A set of inputs with limited dynamic range can be used, e.g.

[0148] For example, the maximum magnitude coefficient may be calculated by applying the transform T to the maximum DC signal, eg, as shown in Equation 5 and / or Equation 6.

[0149]

[0150]

[0151] For example, as shown in Equation 7 and / or Equation 8, the orthogonality of T may be used to determine the value α.

[0152]

[0153]

[0154] The maximum magnitude coefficient can be obtained by factoring and was increased.

[0155] The low magnitude coefficients may be calculated, for example, using one or more of Equations 9-11.

[0156]

[0157]

[0158]

[0159] The DC coefficients of may add up to α. The DC coefficients may be (eg, may all be) positive. The absolute value of at least one coefficient c may be less than or equal to For example, as shown in Equation 12.

[0160]

[0161] The smallest coefficient can be a fraction of size Fractional bits can be used to represent values ​​lower than 1.

[0162] Bounds on maximum and minimum coefficients may be used, for example, as shown in Equation 13 and / or Equation 14. For example, bounds on the dynamic range of coefficients may be calculated using equations.

[0163]

[0164]

[0165]

[0166] A source limited to 1+log2(R) bits may be extended by a maximum of log2(sqrt(N)) bits, and / or may require a fractional portion of additional log2(sqrt(N)) bits. A total of 1+log2(R)+log2(sqrt(N))+log2(sqrt(N))=1+log2(R)+log2(N) bits may be used.

[0167] Equation 16 can be used to determine the integer source The integer bits of the N-point transformation on .

[0168] log2(sqrt(N))+log2(R)+1 Equation 16

[0169] Equation 17 can be used to determine the fractional bits for an N-point transform.

[0170] log2(sqrt(N)) Equation 17

[0171] For an N-point ID transform, the magnitude of the worst case coefficient (eg, the maximum magnitude coefficient) may be increased by a factor of sqrt(N).

[0172] As the transform size increases, the precision of the coefficients may be increased (eg, more fractional bits may be used).

[0173] The number of integer bits used (eg, required) may grow with the number of bits used to represent the integer source (eg, log2(R)). The number of fractional bits may be independent of the magnitude of the integer source. The results may be summarized for some representative transform sizes.

[0174] For example, for a separable 2D transform of size NxM, the analysis may be performed (eg, repeated) using Equation 18 and / or Equation 19.

[0175] Equation 18 can be used to determine the integer bits for an NxM transform on an integer source.

[0176] log2(sqrt(N)+sqrt(M))+log2(R)+1 Equation 18

[0177] Equation 19 can be used to determine the fractional bits for an NxM transform.

[0178] log2(sqrt(N)+sqrt(M)) Equation 19

[0179] Tables 1 and 2 show that the number of integer bits required may grow with the number of bits used to represent the integer source.

[0180] Table 1: Transform coefficient bit depth for 8-bit sources

[0181] Line M Column N Integer bits Fractional Bits Total Bits 4 4 11 2 13 8 8 12 3 15 16 16 13 4 17 32 32 14 5 19 4 8 12 3 15 8 16 13 4 17

[0182] Table 2: Transform coefficient bit depth for 10-bit sources

[0183] Line M Column N Integer bits Fractional Bits Total Bits 4 4 13 2 15 8 8 14 3 17 16 16 15 4 19 32 32 16 5 21 4 8 14 3 17 8 16 15 4 19

[0184] The dynamic range usage of the inverse transform can be analyzed. A signal based on the forward transform can be used. The dynamic range can be reduced in the inverse transform of the signal with the forward transform. If quantization changes the coefficients, the signal can be expressed as the sum of multiple components (e.g., the original coefficients plus a signal based on quantization noise). These components (e.g., the original coefficients and / or the signal based on quantization noise) may have different dynamic range behaviors under the inverse transform. The dynamic range of the original signal components may be reduced. The inverse transform may increase the dynamic range of the quantization noise. The magnitude of the quantization noise can be controlled by the magnitude of the coefficient data. The dynamic range analysis can focus on the results of the forward transform. For example, if quantization noise is dominant, the introduction of low precision and / or limiting can change the noise.

[0185] A fixed point transform may be used. The fixed point transform may not be exactly orthogonal, or may not completely compress the DC into a single coefficient. From a dynamic range perspective, the fixed point transform may use additional processing for normalization. The additional processing for normalization may move samples and / or may not affect the number of bits used to represent the samples. The 1-D transform may be analyzed by possible extensions to a separable 2D transform that is generated as a 1-D transform on rows and (e.g., then) on columns. The transform may be based on an integer approximation of the DCT.

[0186] The video codec may support, for example, 16-bit computation of an inverse discrete cosine transform (IDCT) with a range of block sizes (4, 8, 16, 32) and / or a range of sample bit depths (8, 10, 12, 14, 16). Clipping of high-magnitude residual signals may be avoided. Precision of low-magnitude residual signals may be maintained. For a given coding unit (CU), clipping of high-magnitude coefficients may be avoided (e.g., in preference to maintaining precision). For example, when high-magnitude coefficients are not present, low-magnitude residual signals may be retained.

[0187] Dynamic range limitations may affect the maximum coefficients processed. Dynamic range limitations may affect the accuracy of low amplitude coefficients. Figure 5 An example of dequantization and / or inverse transformation is shown. Figure 5. For example, a coded video bitstream representing content may be received. Dequantization may be performed. A shift (e.g., a shift of 1) may be used to inverse transform dynamic range (see Table 3). The shift may be based on (e.g., set based on) bit depth and / or block size. The shift may be independent of the source bit depth and dynamic range.

[0188] The code for the inverse transform (e.g., in voidTrQuant::xIT()) may use a shift after the horizontal stage (e.g., shift 2) and / or a shift after the vertical transform stage (e.g., shift 3). The size of the second shift may depend on the bit depth. In an example, the size of the second shift may not depend on the transform size or signal statistics.

[0189] For example, scaling may be used in dequantization prior to inverse transform. Scaling used in dequantization prior to inverse transform may take into account transform normalization scaling and / or block size effects. Scaling used in dequantization may not take into account specific characteristics of the signal, for example, scaling used in dequantization may be set for the worst case possible signal. The operations of dequantization and inverse transform(s) may include one or more shifts (e.g., Figure 5 This can be shown in Table 3.

[0190] Table 3

[0191]

[0192] For example, if or when a worst-case input is assumed, a shift value (e.g., a first to third shift) may be determined. The determined shift value may avoid clipping, for example, at the upper end. In some examples, the shift value may not depend on the content of the signal. In one example, Figure 5 The three shifts in may be considered base shifts (e.g., shift 1 may be base_dequant_shift; shift 2 may be base_mid_transform_shift; shift 3 may be base_normalization_shift). In some examples, the base shift values ​​depend on the source bit depth and / or transform block size, however, the base shift values ​​do not depend on the actual source content.

[0193] Some sample data may be collected based on the number of bits required in a transform unit (TU) (eg, for encoding of some samples). Figure 6 An example of the bits to be used is shown (eg, before inverse transforming the sample sequence (eg, intra-frame only)). Figure 6The example in may show sample data collected based on the number of bits required to encode some samples in each TU. The data may be determined by recording the values ​​of the coefficients in TU{v}. Figure 6 The example in may show the maximum absolute value of the coefficients in TU{v}. For example, the number of bits required for the value v may be determined (eg, defined) in Equation 20. Figure 6 The probability of the number of bits required can be shown. Figure 6 In , the probability of each color component is shown for a TU block (e.g., a TU block of an intra-coded test sequence). Figure 6 As shown, for typical content, 16 bits are not required. 16 bits can be used for the worst case result. Fewer than 16 bits (e.g., 12 bits or less) can be used for data other than the worst case result.

[0194] BitsNeeded = 1 + ceil (log2 (|v|)) Equation 20

[0195] For example, the precision of the inverse transform during the residual operation can be determined based on a 16-bit constraint. The 16-bit constraint can reduce precision when it is not necessary. The bit depth of the content that can be processed on a low amplitude signal without losing precision can be determined, for example, based on a 16-bit constraint (for example, 10-bit depth data and / or 4×4 transforms can use 15 bits of precision as seen in Table 2). Some codecs operating in a default configuration may support, for example, representing data internally with up to 10 bits. For example, before encoding, a high bit depth input can be scaled to 10 bits. The QP value can be adjusted, for example, based on the input bit depth. The decoder can be informed of the input bit depth and / or can adjust the QP. Some codecs can operate at, for example, InternalBitDepth=10, regardless of the source bit depth level setting for that value.

[0196] For example, as described herein, data that satisfies a 16-bit constraint on inverse transform calculations (e.g., 8-bit or 10-bit video) can be compressed. Precision can be increased and / or compression improvements can be provided. Data that uses more than 16 bits in the inverse transform (e.g., 12-bit or 14-bit video) can be compressed with a 16-bit constraint on inverse transform calculations. Processing can be adapted to the content of a block, TU, CU, or CTU, etc. High precision can be achieved while avoiding overflow.

[0197] Multipliers and / or storage resources can be used flexibly (e.g., by taking into account the content of the signal). For example, 16-bit multipliers and / or storage resources can be used flexibly, for example, at a decoder. Limiting of high-magnitude residual coefficient signals can be avoided. For example, the accuracy of low-amplitude residual coefficient signals can be maintained when not present simultaneously with high-magnitude residual coefficients. Shift (one or more) can be used to adjust data, for example, data processed by IDCT. The adjustment can be based on factors other than source bit depth and / or transform block size, for example. Overflow in 16-bit IDCT calculations can be avoided.

[0198] In an example, a video bitstream representing content may be received. The video bitstream may include quantized transform coefficients for a plurality of blocks. A precision factor (e.g., a shift) may be associated with a block for performing at least one decoding function on the block. Examples of decoding functions include dequantization and / or inverse transformation. The precision factor may be adapted based on the content of the video bitstream. The precision factor may be based on a magnitude (e.g., based on a maximum magnitude) of the transform coefficients for the block (e.g., a magnitude input may be based on a maximum magnitude of a residual coefficient associated with the block). The decoding function may be performed on the quantized transform coefficients for the block using the precision factor.

[0199] The shift (e.g., a precision factor; e.g., a value of the shift) may be determined, for example, based on a magnitude (e.g., a maximum (e.g., highest) absolute value) of residual coefficients of a current block (e.g., a transform block being decoded). For example, the magnitude of the residual coefficients of the current block may be a small fraction of a maximum possible residual signal (e.g., based on a worst-case analysis). The shift value (e.g., of the coefficient data) may be selected prior to the IDCT. For example, the shift used in the construction of the residual data may be modified in conjunction with selecting the shift of the coefficient data. The modification may be for consistency. The precision factor (e.g., a shift) may be determined based on a determined magnitude input (e.g., a maximum magnitude input) of the content.

[0200] You can get, for example, Figure 5 The shift used in combination with the dequantization stage and the inverse transform stage shown in . The shift can be obtained to take into account the content of the signal. The shift can be obtained to produce signal adaptive behavior. For example, at the decoder, the utilization of finite width registers can be improved. Figure 7 Example results (eg, modified) are shown in . Figure 7 An example of dequantization and / or inverse transformation is shown. The example module (700) can be used to calculate the statistics of the signal (e.g., the maximum absolute value of TU or other). Figure 7As shown, the module "calculate shift" can be used to calculate the shift, for example, based on an analysis of the signal (e.g., a content-based analysis of the source signal). A dequantization shift can be provided. An intermediate transform shift can be provided. A normalization shift can be provided. For example, subject to the constraints of equation 21, the (one or more) shifts before the first inverse transform and / or after the last inverse transform can be obtained based on the calculated maximum value. Equation 21 can be used to determine the relationship of the shifts.

[0201] Shift Dequant +Shift Mid +Shift Normalization =Shift1+Shift2+Shift3 Equation 21

[0202] The sum on the left side and the sum on the right side may be the same (e.g., have the same normalization). In one example, the shift on the right side of Equation 21 may depend on the source bit depth and / or transform block size (e.g., the value does not depend on the actual source content). In addition, the value of the shift on the right side of Equation 21 may be based on a theoretical maximum value if not required (see Figure 6 ), the theoretical maximum value may result in a loss of efficiency and / or precision. In contrast, the shift on the left side of Equation 21 can be based on the actual source content (e.g., by determining a maximum magnitude of a set of dequantized data and / or determining bounds on the coefficients to limit the maximum value of the transform result). Therefore, while using the same hardware (e.g., decoder and / or encoder) as the shift on the right side of Equation 21, the shift on the left side of Equation 21 can provide increased precision and / or increased dynamic range.

[0203] An inverse transform (e.g., one or more 16-bit inverse transforms) may be used. The signal may or may not reach the theoretical maximum allowed. When the theoretical maximum is not reached, the precision may be increased. Higher bit depth sources may be supported, where precision may be achieved by adaptation. Higher precision processing may not be required.

[0204] The size of the shift may be reduced. For example, the size of the left shift(s) may be reduced during a dequantization and / or inverse transform operation (e.g., an early stage of a dequantization and / or inverse transform operation). Accuracy may be improved. The shifts (e.g., the example shifts herein) may be constrained to have the same sum as the sum of the shifts in a particular video coding code, for example. Normalization may be maintained through the processing pipeline. The examples herein may be used to determine the first and second shifts (e.g., Shift Dequant and Shift Mid For example, a second shift (eg, Shift Mid ). For example, the final shift value Shift can be obtained according to equation 22Normalization . You can get the final shift value Shift Normalization to maintain consistent normalization. Equation 22 can be used to determine the constraints on the shift sum.

[0205] (Shift Dequant +Shift Mid +Shift Normalization )=(Shift1+Shift2+Shift3) Equation 22

[0206] A dequantization shift may be selected. The selection of the shift may be based on the coefficient value (e.g., the maximum coefficient value of the TU). The coefficient data may be analyzed to determine the shift, for example, the minimum shift for reducing the maximum magnitude coefficient to the input dynamic range (e.g., 16 bits) of the inverse transform process. A residual reconstruction process of the CU may be performed, for example, to calculate the maximum absolute magnitude M of the transform coefficients in the transform block. Thus, for example, the shift Shift may be determined based on Equation 23 Dequant . You can determine the shift Dequant So that (for example in equation 23) C i,j >>Shift Dequant For example, for each coefficient C i,j is contained in 16 bits. A right shift may be performed. If the value of M is less than 16 bits, a left shift may be performed. For example, a right shift may be combined with the addition of a rounding offset before the shift.

[0207] Equation 23 can be used to determine the dequantization shift.

[0208] Shift Dequant =ceil(l0g2(M))-16 Equation 23

[0209] The analysis of the set of coefficients may be selected for coefficient scaling. For example, the maximum coefficient for coefficient scaling may be selected in several ways (e.g., before IDCT). In an example, dequantization to 32 bits may be performed, and / or a renormalization shift may be performed after recording the maximum coefficient (e.g., applied to all coefficients). In an example, (e.g., each) coefficient may be dequantized to 16-bit precision, and / or the appropriate scaling may be recorded. The coefficient(s) may be appropriately rescaled (e.g., subsequently). In these examples, the memory used may be minimal. In an example, two passes may be used. In a first pass, non-zero coefficient levels and / or QP values ​​may be read to (e.g.,) determine the number of fractional bits (e.g., shift values) for the coefficient. The non-zero coefficient levels and / or QP values ​​may vary based on spatial position. In a second pass, the coefficients may be dequantized with an appropriate number of fractional bits, for example, based on the selection. The maximum coefficient and / or dequantization or rescaling process may be determined using, for example, the parallelism of each subtask. For example, once the shift is determined, the coefficients may be scaled independently of each other (eg, in parallel).In an example, the coefficients are independent during the scaling process, except when the coefficients are used to determine the shift.

[0210] For example, the shift may be determined based on transform coefficients in a video bitstream. This determination may be made, for example, by a video decoder. The number of fractional bits to be used may be signaled or may be inferred from the signal content. A fixed scaling may be used. The fixed scaling may be determined based on signaled parameters such as bit depth and transform size.

[0211] In an example, a signal analysis process may be performed to select the dequantization shift. In an example, the maximum coefficient value of the TU may be selected (e.g., the maximum absolute value of the coefficient). The content-adaptive maximum value may be conservative in determining overflow. More detailed statistics (e.g., L1 norm of rows / columns) may be used.

[0212] The decoder may select between a set of shift and / or precision values.The decoder may use, for example, the dynamic range of the dequantized coefficient values ​​to select between a set of shift and / or precision values.

[0213] The shift (e.g., catp_dequant_shift) may be calculated based on (e.g., based only on) the maximum coefficient value before dequantization. The shift immediately following dequantization of the coefficient block may be obtained based on content (e.g., relative to a worst-case possible signal). Subsequent shift(s) (e.g., inverse transform or normalization) may not reflect additional content adaptivity (e.g., other than that resulting from the dequantization shift). In an example, the coefficient data block may be dequantized to 32 bits to give Cij. The maximum magnitude dequantized data may be determined (e.g., M=max(|Cij|)). The number of bits required to represent M may be determined (e.g., nBits=ceil(〖log〗_2(M))). The shift required to reduce the maximum value to fit within 16 bits may be determined (e.g., catp_dequant_shift=nBits-16 (zero may be used if negative)).

[0214] A mid-transform shift may be selected. In an example, a mid-transform shift (eg, catp_mid_transform_shift) may be selected to compensate for the dequantization shift (eg, Equation 24).

[0215] Equation 24 can be used to determine the intermediate transform shift.

[0216] Shift Mid =Shift2+(Shift1-Shift Dequant ) Equation 24

[0217] For example, if Equation 24 is used, the accuracy of applying the transform (eg, the first transform) may be increased.

[0218] In examples, an intermediate transform shift may be selected based on the content. The intermediate transform shift (e.g., selected) may allow additional precision to be maintained through the second transform. In these examples, analysis may be performed on the dequantized data, and / or a magnitude after the first transform may be determined based on a transform bound (e.g., as described herein).

[0219] Limits may be used. For example, a limit may be given on the absolute magnitude of the output of the transform (e.g., defined by left multiplication by the matrix T). Various types of limits may be used in different applications (e.g., two types as shown in Equation 25 and Equation 26). The type of limit used may limit the magnitude of the result of the transform calculation (e.g., based on analysis of the transform matrix and / or the input).

[0220] The coefficients of Equation 25 may be used to determine the dynamic range limit I. catp_mid_transform_shift may be determined based on the sum of the matrix transform coefficients and the maximum coefficient data.

[0221]

[0222] In an example, for each row, the sum of the absolute values ​​of the transform coefficients M may be determined. r =∑ k |T r,k |. The maximum value of the row can be determined by M=max r M r (For example, this can be done offline since the transform T is known.) The maximum coefficient C in the current block can be determined max =max r,c |C r,c |. Product M·C max The number of bits required can be the sum of the number of bits for each component and / or can be directly calculated as: nBits = ceil(log2(M·C max )), and catp_mid_transform_shift=nBits-16 can be determined.

[0223] The first limit (e.g., dynamic range limit I determined based on equation 25) can use the maximum absolute coefficient value, for example, only the maximum absolute coefficient value is used. If the data is limited to 16 bits, the first limit can be used without analysis, and / or the transform analysis can be performed offline. If the data is the result of a forward transform (e.g., as calculated using an inverse transform), the first limit may not be used.

[0224] Equation 26 may be used to determine the dynamic range limit II. catp_mid_transform_shift may be determined based on the maximum transform coefficient and the column sum of coefficient data.

[0225] |T·C| r,c =|∑ k T r,k *C k,c |≤(max r,c |T r,c |)*(∑ k |C k,c |) Equation 26

[0226] In the example, the maximum absolute coefficient M=max can be determined r,c |T r,c |, and the number of bits required to represent M can be determined, i.e., MatrixBitsUsed = ceil(log2(M)). The number of bits can be determined offline (e.g., the number of bits can be independent of the content (e.g., although the number of bits will be different based on the signaled transform)). For each column c of coefficients, the sum of the absolute values ​​M can be determined c =∑k |C k,c |. The maximum sum of the columns can be determined by M=max c M c . The number of bits required to represent the maximum sum of absolute column coefficients may be determined as CoefficientBitsUsed=ceil(log2(M)). TotalBitsUsed may be MatrixBitsUsed+CoefficientBitsUsed-1 (where 1 is subtracted to avoid double counting of signs). catp_mid_transform_shift=TotalBitsUsed-16 may be determined. If the result is negative, it may be replaced by zero. For example, content-based limits may be developed based on Equation 26. Analysis of coefficient data input to the first inverse transform may be used to determine limits on the output of the first inverse transform output based on a second limit (e.g., as described herein).

[0227] For example, the bounds in equation 26 may be used to determine bounds on the dynamic range of data, for example, after the first transform, based on analysis of coefficient data input to the first transform.The shifts applied after the first inverse transform may be calculated based on analysis of the data before the transform.

[0228] In another example using the bounds of Equation 26, the number of bits used for the product is calculated directly. This can result in a smaller shift, for example, if the bits required to represent the signed values ​​of -5 and -9 are 4 bits (e.g., 3 bits for magnitude and 1 bit for sign) and 5 bits (e.g., 4 bits for magnitude and 1 bit for sign), respectively (e.g., 4+5-1=8 signed bits), while the value of +45 requires only 7 signed bits (e.g., 6 bits for magnitude and 1 bit for sign), the result is a shift one bit lower for catp_mid_transform_shift.

[0229] Equation 25 and Equation 26 may be combined (eg, to calculate the shift on each transform unit). In an example, catp_dequant_shift and catp_mid_transform shifts may be determined separately for each column.

[0230] Equation 27 can be used to determine the coefficient bound statistics.

[0231] B=max c |∑ k |C k,c || Equation 27

[0232] In an embodiment, the bounds in Equation 27 may depend on an analysis of the coefficient data, and / or the result may be used to limit the maximum value of the transform result (eg, as shown in Equation 28).

[0233] Equation 28 can be used to determine the coefficient bounds.

[0234]

[0235] The values ​​of the coefficient matrix can be bounded (e.g., |T r,c |≤2 7 ). A fixed shift may be used for shift 2 based on the bounds (eg, shift 2=7). The intermediate transform shift may be determined using equation 29. The intermediate values ​​may be reduced to 16 bits.

[0236] In an example, Equation 29 may be used to determine the intermediate transform shift.

[0237] Shift Mid =ceil(log2(B)-16)+Shift2 Equation 29

[0238] In an example, the intermediate transform shift may be determined by analyzing the (one or more) magnitudes of the result after the first transform. In an embodiment, equation 30 and / or equation 31 may be used to determine the intermediate transform shift. K may be the maximum absolute value of the output of the first transform. In the example, the precision may be increased for the second transform. The analysis of the data may be performed after the first transform. For example, the output of the first transform may be saved at a high bit depth before determining the intermediate transform shift. Additional computational aspects may be used. The high bit depth result may be stored, for example, after the first transform. A temporary buffer may be used. Additional memory may be used to store the output of the first transform at a high bit depth.

[0239] Equation 30 and / or Equation 31 may be used to determine the intermediate transform shift.

[0240] K=max(|T(C i,j >>Shift Dequant )|) Equation 30

[0241] Shift Mid =ceil(log2(K))-16 Equation 31

[0242] A normalized shift may be determined.

[0243] In some examples, if (eg, once) two shifts (eg, Shift Dequant and Shift Mid ), the third shift Shift can be determined, for example, using equation 22Normalization Equation 22 can be solved to obtain the value of Dequant and / or Shift Mid ) to determine the normalized shift. The result of solving equation 22 can be shown in equation 32.

[0244] Equation 32 can be used to determine the normalized shift.

[0245] Shift Normalization =Shift3-(Shift Dequant -Shift1)-(Shift Mid -Shift22) Equation 32

[0246] In an example, the shift may be calculated from a more detailed analysis of the statistics of the TU and / or reference data.

[0247] A video bitstream representing content may be received, the video bitstream including quantized transform coefficients for one or more blocks. A precision factor (e.g., shift) based on the magnitude of the transform coefficients of the blocks may be determined. The precision factor may reduce the maximum magnitude transform coefficient to fit into 16 bits. The precision factor may reduce the maximum magnitude transform coefficient to an input dynamic range of an inverse transform process. The precision factor may be used to perform at least one decoding function. The decoding function may be a dequantization and / or inverse transform process. The decoding function may be used for residual reconstruction of the video bitstream. A number of bits may be determined to represent the maximum magnitude of the transform coefficient. Signaling indicating the number of fractional bits used in determining the precision factor may be received. A second precision factor may be determined. The first precision factor and / or the second precision factor may be a content-dependent value. The second precision factor may be applied during an inverse transform process. The second precision factor may limit the magnitude of a result of a transform based on a maximum absolute value of an output of a dequantized transform. The second precision factor may include a column sum of transform coefficients. A bound on the absolute magnitude of an output of a transform may be determined. A third precision factor may be determined. The third precision factor may be applied during a normalization process. The sum of the three precision factors may be a value that is independent of the content.

[0248] Figure 8An example of a flow diagram of a decoding operation (800) that may be employed in systems, methods, and means according to the present disclosure is shown. Decoded video data including quantized transform coefficients of a plurality of blocks may be obtained (810). A first factor of precision associated with a first block may be obtained for use in performing at least one decoding function on the first block (820). A second factor of precision associated with a second block may be obtained for use in performing the at least one decoding function on the second block (830). The at least one decoding function may be performed on the quantized transform coefficients of the first block using the first factor of precision and the at least one decoding function may be performed on the quantized transform coefficients of the second block using the second factor of precision (840). The first factor of precision may be signaled. The first factor of precision may be determined based on magnitudes of the transform coefficients of the first block.

[0249] An encoder may be used in conjunction with one or more examples herein.

[0250] The decoder (e.g., as described herein) may be implemented to be isolated from or embedded in the encoder. Additional precision may be achieved in the inverse transform calculations. For example, if the encoder knows the high precision capabilities of the inverse transform, measures may be taken to reduce the effect of the encoding process on quantization noise. Quantization noise may be generated by the encoding process (e.g., during encoder operation). For example, if the inverse transform has limited precision, the quantization noise effect may be hidden by the limited precision.

[0251] For example, if the residual data (eg, prediction residual data) is not worst case, context adaptation techniques may be used. The precision used by one or more forward transforms may be increased. Fig. 9 An example of shifting in a forward transform (900) is shown. The structure of the forward transform of the residual signal (e.g., Fig. 9 ). Residual data (e.g., worst case residual data) may be calculated. A vertical transformation of the data may be performed. A shift (e.g., a precision factor; a shift of 4) may be applied to the transformed data. A horizontal transformation of the data may be performed. A shift (e.g., a precision factor; a shift of 5) may be applied to the transformed data. Quantization of the data may be performed. A shift (e.g., a precision factor; a shift of 6) may be applied to the quantized data. Overflow may be avoided (e.g., in the case of worst case residual data).

[0252] Fig.10An example of a CATP forward encoder (1000) is shown. Analysis of residual components may be performed to determine magnitude (one or more) of values, e.g., a maximum magnitude after a vertical transform (e.g., a maximum input). A shift (e.g., a precision factor) may be determined (e.g., calculated). A vertical transform of data may be performed. A first shift (e.g., a precision factor; MidShift) may be applied after a first transform stage (e.g., during forward encoding). MidShift may be determined based on the content of the data (e.g., a maximum magnitude input relative to a worst-case assumption). A horizontal transform of the data may be performed. A second shift (e.g., a precision factor; PreQuantShift) may be applied to the transformed data. Quantization of the data may be performed. A third shift (e.g., a precision factor; QuantShift) may be applied to the quantized data. Analysis and / or calculation of the shifts may be performed. For example, a column SAD value may be calculated and / or used with characteristics of the vertical transform to limit the dynamic range input to an intermediate transform shift (e.g., to further improve precision).

[0253] Equation 33 can be used to determine the constraint on the shift sum.

[0254] (Shift Mid +Shift preQuant +Shift Quant )=(Shift4+Shift5+Shift6) Equation 33

[0255] For example, before (eg, prior to) (eg, any) transformation phase, a (eg, single) analysis phase (eg, such as Fig.10 25 and / or the bounds of Equation 26. The residual data may or may not have the same structure as that used for the inverse transform. The bounds in Equation 25 may be used. When a maximum input is supported, the maximum input may be used to determine bounds on the input data and / or derive the Shifts. Mid and / or Shift PreQuant , for example, by using Equation 34.

[0256] B=2 15 >max k,c |C k,c | Equation 34

[0257] Fig.11An example of a flow chart of a method (1100) of encoding operation according to the present disclosure is shown. An encoder may obtain prediction residual data for a plurality of blocks of video data. The prediction residual data may be analyzed (e.g., to determine a magnitude input (e.g., a maximum magnitude input) to represent the blocks) (1110). A first precision factor associated with a first block may be obtained for use in performing at least one encoding function on the first block (1120). A second precision factor associated with a second block may be obtained for use in performing the at least one encoding function on the second block (1130). The at least one encoding function may be performed on the first block using the first precision factor and the at least one encoding function may be performed on the second block using the second precision factor (1140). The analysis of the prediction residual data to determine the maximum magnitude input to represent the blocks may be performed prior to any transform step (e.g., prior to a vertical transform).

[0258] In some examples, this disclosure describes a signal that includes decoded video data, the decoded video data including quantized transform coefficients for a plurality of blocks, wherein the quantized transform coefficients are determined based on content of the data (e.g., a magnitude input (e.g., a maximum magnitude input)).

[0259] Although the features and elements are described above in specific combinations, it will be understood by those skilled in the art that 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 that is incorporated into a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (transmitted via a wired or wireless connection) and computer-readable storage media. 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 internal 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 used in a WTRU, UE, terminal, base station, RNC, or any host computer.

Claims

1. An apparatus comprising a processor, the processor being configured to execute: Obtaining decoded video data comprising quantized transform coefficients of a plurality of blocks; obtaining a first factor of precision associated with a first block for use in performing at least one decoding function on the first block, wherein the first factor of precision is obtained based on a first magnitude of the transform coefficient associated with the first block, regardless of a first bit depth associated with the first block; obtaining a second factor of precision associated with a second block for use in performing the at least one decoding function on the second block, wherein the second factor of precision is obtained based on a second magnitude of the transform coefficient associated with the second block, regardless of a second bit depth associated with the second block; as well as The at least one decoding function is performed on the quantized transform coefficients of the first block using the first factor of precision, and the at least one decoding function is performed on the quantized transform coefficients of the second block using the second factor of precision.

2. The device of claim 1, wherein the first factor of precision associated with the first block and the second factor of precision associated with the second block are further obtained from the coded video data.

3. The apparatus of claim 1, wherein the first dilution of precision is different from the second dilution of precision.

4. The device of claim 1 , wherein the at least one decoding function comprises dequantization or inverse transform, the first factor of precision comprises a first dequantization shift, the second factor of precision comprises a second dequantization shift, and the first factor of precision and the second factor of precision comprise intermediate transform shifts.

5. The apparatus of claim 4, wherein obtaining the first dilution of precision associated with the first block comprises: The intermediate transform shift associated with the first block is determined based on a limit on the absolute magnitude of an output of a first inverse transform, and the at least one decoding function comprises a second inverse transform.

6. The apparatus of claim 1, wherein the first precision factor comprises a dequantization shift and an intermediate transform shift, and the processor is further configured to: obtaining a normalized shift associated with the first block based on the dequantized shift and the intermediate transformed shift associated with the first block; and Using the normalization shift, a normalization process is performed on the first block, wherein a sum of the dequantization shift, the intermediate transform shift, and the normalization shift is a content independent value.

7. The device of claim 1, wherein the first dilution of precision comprises a dequantization shift and an intermediate transform shift, and wherein the intermediate transform shift associated with the first block is determined based on the dequantization shift associated with the first block.

8. A method for decoding, comprising: Obtaining decoded video data comprising quantized transform coefficients of a plurality of blocks; obtaining a first factor of precision associated with a first block for use in performing at least one decoding function on the first block, wherein the first factor of precision is obtained based on a first magnitude of the transform coefficient associated with the first block, regardless of a first bit depth associated with the first block; obtaining a second factor of precision associated with a second block for use in performing the at least one decoding function on the second block, wherein the second factor of precision is obtained based on a second magnitude of the transform coefficient associated with the second block, regardless of a second bit depth associated with the second block; as well as The at least one decoding function is performed on the quantized transform coefficients of the first block using the first factor of precision, and the at least one decoding function is performed on the quantized transform coefficients of the second block using the second factor of precision.

9. The method of claim 8, wherein the first factor of precision associated with the first block and the second factor of precision associated with the second block are further obtained from the coded video data.

10. The method of claim 8, wherein the first dilution of precision is different from the second dilution of precision.

11. The method of claim 8, wherein the at least one decoding function comprises dequantization or inverse transform, the first factor of precision comprises a first dequantization shift, the second factor of precision comprises a second dequantization shift, and the first factor of precision and the second factor of precision comprise intermediate transform shifts.

12. The method of claim 11 , wherein obtaining the first dilution of precision associated with the first block comprises: The intermediate transform shift associated with the first block is determined based on a limit on an absolute magnitude of an output of a first inverse transform, and the at least one decoding function comprises a second inverse transform.

13. The method according to claim 8, wherein the first precision factor comprises a dequantization shift and an intermediate transform shift, the method further comprising: obtaining a normalized shift associated with the first block based on the dequantized shift and the intermediate transformed shift associated with the first block; as well as Using the normalization shift, a normalization process is performed on the first block, wherein a sum of the dequantization shift, the intermediate transform shift, and the normalization shift is a content independent value.

14. The method of claim 8, wherein the first dilution of precision comprises a dequantization shift and an intermediate transform shift, and wherein the intermediate transform shift associated with the first block is determined based on the dequantization shift associated with the first block.

15. An apparatus comprising a processor, the processor being configured to perform: Obtaining prediction residual data of multiple video data blocks; analyzing the prediction residual data to determine a magnitude input for representing a block; determining a first factor of precision associated with a first block for use in performing at least one encoding function on the first block, wherein the first factor of precision is determined based on a first magnitude input associated with the first block and is independent of a first bit depth associated with the first block; determining a second factor of precision associated with a second block for use in performing the at least one encoding function on the second block, wherein the second factor of precision is determined based on a second magnitude input associated with the second block and is independent of a second bit depth associated with the second block; as well as The at least one encoding function is performed on the input to the first block using the first dilution of precision, and the at least one encoding function is performed on the input to the second block using the second dilution of precision.

16. The device of claim 15, wherein the at least one encoding function comprises at least one of horizontal transform or quantization.

17. The apparatus of claim 15, wherein the processor is further configured to further perform: An indication of the first factor of precision for the first block and an indication of the second factor of precision for the second block are included in a bitstream representing the video data.

18. The apparatus of claim 17, wherein the indication of the first dilution of precision comprises a number of fractional bits used to perform at least one decoding function.

19. The apparatus of claim 15, wherein analyzing the prediction residual data to determine a maximum magnitude input to represent a block is performed prior to vertical transform.

20. The apparatus of claim 15, wherein the first dilution of precision is different from the second dilution of precision.