Context adaptive binary arithmetic coding update refinement

By updating the probability measurement of the entropy decoding context based on binarized symbols and probability values ​​in the video decoding system, the problems of low entropy decoding efficiency and inconsistency in error in the prior art are solved, and more efficient and accurate video data decoding is achieved .

CN119111075APending Publication Date: 2024-12-10INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380037311.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-04-08
Filing Date
2023-04-06
Publication Date
2024-12-10

AI Technical Summary

Technical Problem

During the entropy decoding process of existing video decoding systems, it is difficult to effectively update the context probability value, resulting in low encoding efficiency and inconsistent errors affecting the decoding quality.

Method used

By obtaining the values ​​of the binarized symbols associated with the video data, and updating the probability measure in the entropy decoding context based on these values ​​and the associated probability values, the probability value of the video data is determined and updated, using a weighted average value and window Size to optimize the update process of probability values.

Benefits of technology

It improves the accuracy and efficiency of entropy decoding, reduces error inconsistency, and improves the decoding quality of video data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119111075A_ABST
    Figure CN119111075A_ABST
Patent Text Reader

Abstract

A device may obtain a first value of a first binarization symbol associated with video data, and obtain a second value of a second binarization symbol associated with the video data. The device may obtain a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and a probability value associated with the first binarized symbol. The device may then decode the video data based on the probability value associated with the third binarization symbol. The first binarized symbol, the second binarized symbol, and the third binarized symbol may be used to transform coefficients. In an example, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be associated with a context for entropy decoding. For example, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be associated with an entropy decoding context for decoding the video data using context-based adaptive binary arithmetic coding (CABAC).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to European Provisional Patent Application No. 22305491.7 filed on April 8, 2022 and entitled “CABAC Update Refinement”, which is incorporated by reference in its entirety as if fully set forth herein. 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. Video coding systems may include, for example, block-based, wavelet-based, and / or object-based systems. Summary of the invention

[0004] Systems, methods, and means are disclosed for a device configured to obtain a binary value based on a probability value that has been updated based on a plurality of binary values.

[0005] A device (e.g., a decoder) may obtain a first value of a first binarized symbol associated with video data, and obtain a second value of a second binarized symbol associated with the video data. The device may obtain a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol. Then, the device may decode the video data based on the probability value associated with the third binarized symbol. In an example, the value of the binarized symbol (e.g., the first value of the first binarized symbol) may be used for a syntax element. In some examples, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be used for one or more transform coefficients.

[0006] In an example, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be associated with a context for entropy decoding. For example, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be associated with an entropy decoding context for decoding the video data using context-based adaptive binary arithmetic coding (CABAC). The probability value associated with the first binarized symbol may be a context probability value associated with the entropy decoding context, and the probability value associated with the third binarized symbol may be an updated context probability value associated with the entropy decoding context. The probability value associated with the first binarized symbol may be used to obtain the first value of the first binarized symbol and the value of the second binarized symbol. The probability value associated with the third binarized symbol may be obtained by updating the probability value associated with the first binarized symbol based on the value of the first binarized symbol and the second binarized symbol. The probability value associated with the third binarized symbol may be used to obtain the third value of the third binarized symbol.

[0007] In some examples, the device may obtain a predetermined number of values ​​of a first continuous number of binarized symbols associated with a context for entropy decoding (e.g., the first binarized symbol and the second binarized symbol may be part of the first continuous number of binarized symbols), entropy decode the first continuous number of binarized symbols based on a context probability value associated with the context, and entropy decode the second continuous number of binarized symbols based on an updated context probability value associated with the context. The context probability value may be updated based on the first continuous number of binarized symbols. The first continuous number of binarized symbols and the second continuous number of binarized symbols may not overlap.

[0008] The device may obtain a window size associated with the context, and further obtain the probability value associated with the third binarized symbol based on the window size. The device may obtain the probability value associated with the third binarized symbol based on a weighting factor. The weighting factor may be determined using the window size. In some examples, the device may further obtain the probability value associated with the third binarized symbol based on an error, the error indicating an inconsistency between the obtained second value and the probability value associated with the second binarized symbol.

[0009] The second value of the second binary symbol may be obtained before the probability value associated with the first binary symbol is updated. For example, the device may refrain from updating the probability value associated with the first binary symbol until the second value is obtained. The second value of the second binary symbol may be obtained based on the same probability value associated with the first binary symbol. The device may continue to obtain a predetermined number of values ​​of a continuous number of binary symbols before updating the probability value associated with the first binary symbol. For example, the device may have obtained the corresponding value of each binary symbol in the continuous number of binary symbols before updating the probability value associated with the first binary symbol, and the second binary symbol is a binary symbol in the continuous number of binary symbols. The value of the continuous number of binary symbols may be obtained using the same probability value.

[0010] The device may determine a probability measure based on the first value and the second value, and determine the probability value associated with the third binary symbol based on the probability measure. The probability measure may be determined based on an average value of the first value and the second value or a weighted average value of the first value and the second value. In some examples, the first value may be obtained at a first time, the second value may be obtained at a second time, and the third value of the third binary symbol may be obtained at a third time that is closer to the second time in time than the first time. The device may determine a weighted average value of the first value and the second value by assigning a greater weight to the second value than to the first value, and obtain the probability value associated with the third binary symbol based on the weighted average value of the first value and the second value. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1A is a system diagram illustrating an example communication system in which one or more disclosed embodiments may be implemented.

[0012] Figure 1B is an example of a method that can be used according to an embodiment of the present invention. Figure 1A A system diagram of an example wireless transmit / receive unit (WTRU) for use within an illustrated communication system.

[0013] Figure 1C is an example of a method that can be used according to an embodiment of the present invention. Figure 1A System diagram of an example Radio Access Network (RAN) and an example Core Network (CN) for use within the illustrated communication system.

[0014] Figure 1D is an example of a method that can be used according to an embodiment of the present invention. Figure 1A System diagram of another example RAN and another example CN for use within the illustrated communication system.

[0015] Figure 2 An example video encoder is illustrated.

[0016] Figure 3 An example video decoder is illustrated.

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

[0018] Figure 5 An example of entropy coding is illustrated.

[0019] Figure 6 An example of parameter initialization is illustrated.

[0020] Figure 7 An example of decoding a binary number is illustrated.

[0021] Figure 8 An example probability update 8(a) and an example probability update 8(b) are illustrated. DETAILED DESCRIPTION

[0022] A more detailed understanding may be obtained from the following description given by way of example in conjunction with the accompanying drawings.

[0023] Figure 1A 1 is a diagram illustrating an example communication system 100 in which one or more disclosed embodiments may be implemented. The communication system 100 may be a multiple access system that provides content such as voice, data, video, messaging, broadcast, etc. to multiple wireless users. The communication system 100 may enable multiple wireless users to access such content through sharing of system resources (including wireless bandwidth). For example, the communication system 100 may employ one or more channel access methods such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), zero tail unique word DFT spread OFDM (ZT UW DTS-s OFDM), unique word OFDM (UW-OFDM), resource block filtered OFDM, filter bank multi-carrier (FBMC), etc.

[0024] like Figure 1AAs 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, but it should be understood that the disclosed embodiments contemplate any number of WTRUs, base stations, networks, and / or network elements. Each of the WTRUs 102a, 102b, 102c, 102d may be any type of device configured to operate and / or communicate in a wireless environment. By way of example, the WTRUs 102a, 102b, 102c, 102d (any of which may be referred to as a “station” and / or “STA”) may be configured to send and / or receive wireless signals and may include user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a subscription-based unit, a pager, a cellular phone, a personal digital assistant (PDA), a smart phone, a laptop, a netbook, a personal computer, a wireless sensor, a hotspot or Mi-Fi device, an Internet of Things (IoT) device, a watch or other wearable device, a head-mounted display (HMD), a vehicle, a drone, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in the context of an industrial and / or automated process chain), a consumer electronic device, a device operating on a commercial and / or industrial wireless network, etc. Any of the WTRUs 102a, 102b, 102c, and 102d may be interchangeably referred to as a UE.

[0025] The communication system 100 may also include a base station 114a and / or a base station 114b. Each of the base stations 114a, 114b may be any type of device configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communication networks, such as the CN 106 / 115, the Internet 110, and / or other networks 112. By way of 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. While the base stations 114a, 114b are each depicted as a single element, it should be appreciated that the base stations 114a, 114b may include any number of interconnected base stations and / or network elements.

[0026] Base station 114a may be part of RAN 104 / 113, which may also include other base stations and / or network elements (not shown), such as base station controllers (BSC), radio network controllers (RNC), relay nodes, etc. Base station 114a and / or base station 114b may be configured to send and / or receive wireless signals on one or more carrier frequencies (which may be referred to as cells (not shown)). These frequencies may be in a licensed spectrum, an unlicensed spectrum, or a combination of licensed and unlicensed spectrum. A cell may provide coverage of wireless services to a specific geographic area, which may be relatively fixed or may change over time. A cell may be further divided into cell sectors. For example, a cell associated with base station 114a may be divided into three sectors. Therefore, in one embodiment, base station 114a may include three transceivers, i.e., one transceiver for each sector of the cell. In an embodiment, base station 114a may employ multiple-input multiple-output (MIMO) technology and may utilize multiple transceivers for each sector of the cell. For example, beamforming may be used to send and / or receive signals in a desired spatial direction.

[0027] The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless communication link (e.g., radio frequency (RF), microwave, centimeter wave, micrometer wave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).

[0028] More specifically, as noted above, the communication system 100 may be a multiple access system and may employ one or more channel access schemes such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA, etc. For example, the base station 114a in the RAN 104 / 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).

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

[0030] In an 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).

[0031] In an 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 together implement LTE radio access and NR radio access, for example using the dual connectivity (DC) principle. Thus, the air interface utilized by the WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and / or transmissions transmitted to / from multiple types of base stations (e.g., eNBs and gNBs).

[0032] 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), GSM EDGE (GERAN), etc.

[0033] Figure 1AThe base station 114b in the may be, for example, a wireless router, a Home NodeB, a Home eNodeB, or an access point, and may utilize any suitable RAT to facilitate wireless connectivity in a local area, such as a business location, a home, a vehicle, a campus, an industrial facility, an air corridor (e.g., for use by drones), a road, and the like. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology (such as IEEE 802.11) to establish a wireless local area network (WLAN). In an embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology (such as IEEE 802.15) to establish a wireless personal area network (WPAN). In yet another embodiment, the base station 114b and the WTRUs 102c, 102d may utilize a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) to establish a picocell or a femtocell. As Figure 1A As shown, base station 114b may have a direct connection to Internet 110. Therefore, base station 114b may not need to access Internet 110 via CN 106 / 115.

[0034] 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 of the WTRUs 102a, 102b, 102c, 102d. The data may have different quality of service (QoS) requirements, such as different throughput requirements, latency requirements, error 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 calling, Internet connectivity, video distribution, etc., and / or perform advanced security functions, such as user authentication. Although not described in detail in the text, the CN 106 / 115 may be configured to provide voice, data, applications, and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have different quality of service (QoS) requirements, such as different throughput requirements, latency requirements, error 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 calling, Internet connectivity, video distribution, etc., and / or perform advanced security functions, such as user authentication. Figure 1A Although not shown in the figure, 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 as the RAN 104 / 113 or a different RAT. For example, in addition to being connected to the RAN 104 / 113, which may utilize NR radio technology, the CN 106 / 115 may also be in communication with another RAN (not shown) that employs GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, or WiFi radio technology.

[0035] 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 networks and devices that use common communication protocols, such as the Transmission Control Protocol (TCP), the User Datagram Protocol (UDP), and / or the Internet Protocol (IP) in the TCP / IP Internet protocol suite. The networks 112 may include wired communication networks and / or wireless communication networks owned and / or operated by other service providers. For example, the networks 112 may include another CN connected to one or more RANs, which may employ the same RAT as the RAN 104 / 113 or a different RAT.

[0036] Some or all of the WTRUs 102a, 102b, 102c, 102d in the communication system 100 may include multi-mode capabilities (e.g., the WTRUs 102a, 102b, 102c, 102d may include multiple transceivers for communicating with different wireless networks via different wireless links). Figure 1A The illustrated WTRU 102c may be configured to communicate with the base station 114a, which may employ a cellular-based radio technology, and with the base station 114b, which may employ an IEEE 802 radio technology.

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

[0038] The processor 118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) circuit, any other type of integrated circuit (IC), a state machine, etc. The processor 118 may perform signal decoding, 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, but it is understood that the processor 118 and the transceiver 120 may be integrated together in an electronic package or chip.

[0039] The send / receive element 122 may be configured to send a signal to a base station (e.g., base station 114a) or receive a signal from the base station by an air interface 116. For example, in one embodiment, the send / receive element 122 may be an antenna configured to send and / or receive an RF signal. In an embodiment, the send / receive element 122 may be a transmitter / detector configured to send and / or receive, for example, IR, UV or visible light signals. In another embodiment, the send / receive element 122 may be configured to send and / or receive both RF signals and optical signals. It should be understood that the send / receive element 122 may be configured to send and / or receive any combination of wireless signals.

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

[0041] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive element 122 and to demodulate signals received by the transmit / receive element 122. As noted above, the WTRU 102 may have multi-mode capabilities. For example, the transceiver 120 may include multiple transceivers for enabling the WTRU 102 to communicate via multiple RATs, such as NR and IEEE 802.11.

[0042] The processor 118 of the WTRU 102 may be coupled to and may receive user input data from 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). The processor 118 may also output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. In addition, the processor 118 may access information from and store data in any type of suitable memory, such as a non-removable memory 130 and / or a removable memory 132. The non-removable memory 130 may include a random access memory (RAM), a read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 132 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 118 may access information from and store data in a memory that is not physically located on the WTRU 102, such as on a server or a home computer (not shown).

[0043] The processor 118 may receive power from the power source 134, and may be configured to distribute and / or control power to other components in the WTRU 102. The power source 134 may be any suitable device for powering the WTRU 102. For example, the power source 134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, etc.

[0044] The processor 118 may also be coupled to the GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to or in lieu of the information from the GPS chipset 136, the WTRU 102 may receive location information from a base station (e.g., base stations 114a, 114b) over the air interface 116 and / or determine its location based on the timing of signals received from two or more nearby base stations. It will be appreciated that the WTRU 102 may acquire location information by any suitable location-determination method while remaining consistent with an embodiment.

[0045] The processor 118 may also be coupled to other peripherals 138, which may include one or more software modules and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the peripherals 138 may include an accelerometer, an electronic compass, a satellite transceiver, a digital camera (for photos and / or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands-free headset, module, FM radio unit, digital music player, media player, video game player module, Internet browser, virtual reality and / or augmented reality (VR / AR) device, activity tracker, etc. Peripheral device 138 may include one or more sensors, which may be one or more of the following: a gyroscope, an accelerometer, a Hall effect sensor, a magnetometer, an orientation sensor, a proximity sensor, a temperature sensor, a time sensor; a geolocation sensor; an altimeter, a light sensor, a touch sensor, a magnetometer, a barometer, a gesture sensor, a biometric sensor, and / or a humidity sensor.

[0046] The WTRU 102 may include a full-duplex radio for which transmission and reception of some or all signals (e.g., associated with specific subframes for UL (e.g., for transmission) and downlink (e.g., for reception)) may be concurrent and / or simultaneous. The full-duplex radio may include an interference management unit for reducing and / or substantially eliminating self-interference via signal processing performed via hardware (e.g., a choke) or via a processor (e.g., a separate processor (not shown) or via the processor 118). In an embodiment, the WRTU 102 may include a half-duplex radio for which transmission and reception of some or all signals (e.g., associated with specific subframes for UL (e.g., for transmission) or downlink (e.g., for reception)) may be concurrent and / or simultaneous.

[0047] Figure 1C 1 is a system diagram illustrating the RAN 104 and the CN 106 in accordance with an embodiment. As noted above, the RAN 104 may employ an E-UTRA radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 104 may also be in communication with the CN 106.

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

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

[0050] 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. While each of the foregoing elements is depicted as being part of the CN 106, it should be understood that any of these elements may be owned and / or operated by an entity other than the CN operator.

[0051] The MME 162 may be connected to each of the evolved Node-Bs 160a, 160b, 160c in the RAN 104 via an S1 interface and may serve as a control node. For example, the MME 162 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, bearer activation / deactivation, selecting a particular serving gateway during an initial attach of the WTRUs 102a, 102b, 102c, etc. The MME 162 may 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.

[0052] The SGW 164 may be connected to each of the evolved Node-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 perform other functions, such as anchoring the user plane during inter-evolved Node-B handovers, triggering paging when DL data is available for the WTRUs 102a, 102b, 102c, managing and storing the context of the WTRUs 102a, 102b, 102c, and the like.

[0053] 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.

[0054] 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 may be in communication with, an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts 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 networks and / or wireless networks owned and / or operated by other service providers.

[0055] Although the WTRU Figures 1A to 1D Although described as wireless terminals, it is contemplated that in certain representative embodiments, such terminals may (eg, temporarily or permanently) use a wired communications interface with a communications network.

[0056] In a representative embodiment, the other network 112 may be a WLAN.

[0057] A WLAN in infrastructure basic service set (BSS) mode may have an access point (AP) for the BSS and one or more stations (STA) associated with the AP. The AP may have access or an interface to a distribution system (DS) or another type of wired / wireless network that carries traffic to and / or carries traffic away from the BSS. Traffic originating from outside the BSS and leading to the STA may be reached by the AP and may be delivered to the STA. Traffic originating from the STA and leading to a destination outside the BSS may be transmitted to the AP to be delivered to the corresponding destination. Traffic between STAs within the BSS may be transmitted by the AP, for example, wherein the source STA may transmit traffic to the AP, and the AP may deliver traffic to the destination STA. Traffic between STAs within the BSS may be considered and / or referred to as point-to-point traffic. Point-to-point traffic may be transmitted between the source STA and the destination STA (e.g., directly between them) using a direct link establishment (DLS). In certain representative embodiments, the DLS may use 802.11e DLS or 802.11z tunnel DLS (TDLS). A WLAN using an independent BSS (IBSS) mode may not have an AP, and STAs within or using the IBSS (eg, all STAs in the STA) may communicate directly with each other. The IBSS communication mode may sometimes be referred to herein as an "ad hoc" communication mode.

[0058] When using the 802.11ac infrastructure operating mode or a similar operating mode, the AP may send beacons on a fixed channel (such as a primary channel). The primary channel may be a fixed width (e.g., a 20 MHz wide bandwidth) or a width dynamically set via signaling. The primary channel may be an operating 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 / collision avoidance (CSMA / CA) may be implemented, for example, in an 802.11 system. For CSMA / CA, a STA (e.g., each STA) (including the AP) may listen to the primary channel. In the case where the primary channel is listened / detected and / or determined to be busy by a specific STA, the specific STA may back off. One STA (e.g., only one station) may transmit at any given time in a given BSS.

[0059] High throughput (HT) STAs may communicate using a 40 MHz wide channel, for example, via a combination of a primary 20 MHz channel and adjacent or non-adjacent 20 MHz channels to form a 40 MHz wide channel.

[0060] Very high throughput (VHT) STA can support 20MHz, 40MHz, 80MHz and / or 160MHz wide channels. 40MHz channels and / or 80MHz channels can be formed by combining continuous 20MHz channels. 160MHz channels can be formed by combining 8 continuous 20MHz channels, or by combining two non-continuous 80MHz channels (this can be called 80+80 configuration). For 80+80 configuration, after channel coding, the data can pass through a segment parser that can divide the data into two streams. Each stream can be processed by inverse fast Fourier transform (IFFT) and time domain processing separately. These streams can be mapped to two 80MHz channels, and data can be sent by the transmitter STA. At the receiver of the receiver STA, the above-mentioned operation for the 80+80 configuration can be reversed, and the combined data can be transmitted to the medium access control (MAC).

[0061] 802.11af and 802.11ah support operating modes below 1GHz. Channel operating bandwidths and carriers are reduced in 802.11af and 802.11ah relative to those used in 802.11n and 802.11ac. 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 may support instrument type control / machine type communications, such as MTC devices in macro coverage areas. MTC devices may have certain capabilities, such as limited capabilities, including support for (e.g., only support for) certain bandwidths and / or limited bandwidths. MTC devices may include batteries with battery life above a threshold (e.g., to maintain very long battery life).

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

[0063] 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. The total bandwidth available for 802.11ah is 6MHz to 26MHz, depending on the country code.

[0064] Figure 1D 1 is a system diagram illustrating the RAN 113 and the CN 115 in accordance with an embodiment. As noted above, the RAN 113 may employ NR radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 113 may also be in communication with the CN 115.

[0065] 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 an embodiment. The gNBs 180a, 180b, 180c may each include one or more transceivers for communicating 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, 108b may utilize beamforming to send signals to and / or receive signals from the gNBs 180a, 180b, 180c. Thus, the gNB 180a may, for example, use multiple antennas to send wireless signals to and / or receive wireless signals from the WTRU 102a. In an embodiment, the gNBs 180a, 180b, 180c may implement carrier aggregation technology. For example, gNB 180a may transmit multiple component carriers to WTRU 102a (not shown). A subset of these component carriers may be on unlicensed spectrum, while the remaining component carriers may be on licensed spectrum. In an embodiment, gNBs 180a, 180b, 180c may implement coordinated multi-point (CoMP) technology. For example, WTRU 102a may receive coordinated transmissions from gNB 180a and gNB 180b (and / or gNB 180c).

[0066] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using transmissions associated with scalable parameter sets. For example, OFDM symbol spacing and / or OFDM subcarrier spacing may vary for different transmissions, different cells, and / or different portions of the wireless transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using subframes or Transmission Time Intervals (TTIs) of varying or scalable lengths (e.g., containing varying numbers of OFDM symbols and / or varying absolute time lengths).

[0067] 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 while not accessing other RANs (e.g., such as 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 WTRUs 102a, 102b, 102c may communicate / connect with the gNB 180a, 180b, 180c while also communicating / connecting with another RAN, such as the eNode-B 160a, 160b, 160c. For example, the WTRUs 102a, 102b, 102c may implement the DC principle to communicate with one or more gNBs 180a, 180b, 180c and one or more eNode-Bs 160a, 160b, 160c substantially simultaneously. In a non-standalone configuration, the eNode-B 160a, 160b, 160c may act as a mobility anchor for the WTRUs 102a, 102b, 102c, and the gNB 180a, 180b, 180c may provide additional coverage and / or throughput for serving the WTRUs 102a, 102b, 102c.

[0068] Each of the gNBs 180a, 180b, 180c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in UL and / or DL, support of network slicing, dual connectivity, interworking between NR and E-UTRA, routing of user plane data towards a user plane function (UPF) 184a, 184b, routing of control plane information towards an access and mobility management function (AMF) 182a, 182b, etc. Figure 1D As shown, gNBs 180a, 180b, and 180c may communicate with each other via an Xn interface.

[0069] Figure 1DThe illustrated CN 115 may include at least one AMF 182a, 182b, at least one UPF 184a, 184b, at least one session management function (SMF) 183a, 183b, and possible data networks (DNs) 185a, 185b. Although each of the foregoing elements is depicted as part of the CN 115, it should be understood that any of these elements may be owned and / or operated by an entity other than the CN operator.

[0070] The AMF 182a, 182b may be connected to one or more of the 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, support of network slicing (e.g., handling of different PDU sessions with different requirements), selecting a specific SMF 183a, 183b, management of registration areas, termination of NAS signaling, mobility management, etc. The AMF 182a, 182b may use network slicing to customize CN support for the WTRU 102a, 102b, 102c based on the type of services utilized by the WTRU 102a, 102b, 102c. For 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 mobile broadband (eMBB) access, 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) that employ other radio technologies, such as LTE, LTE-A, LTE-A Pro, and / or non-3GPP access technologies, such as WiFi.

[0071] 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 configure the 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, providing downlink data notification, etc. The PDU session type may be IP-based, non-IP-based, Ethernet-based, etc.

[0072] The UPF 184a, 184b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via the N3 interface, 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. The UPF 184, 184b may perform other functions, such as routing and forwarding packets, enforcing user plane policies, supporting multi-homed PDU sessions, handling user plane QoS, buffering downlink packets, providing mobility anchoring, etc.

[0073] 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 PSTN 108. In addition, the CN 115 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired networks and / or wireless networks owned and / or operated by other service providers. In one embodiment, the WTRUs 102a, 102b, 102c may be connected to local data networks (DNs) 185a, 185b via the UPF 184a, 184b via the N3 interface to the UPF 184a, 184b and the N6 interface between the UPF 184a, 184b and the DN 185a, 185b.

[0074] Given that Figures 1A to 1D as well as Figures 1A to 1D Corresponding to the description of the present invention, one or more or all of the functions described herein with reference to one or more of the following items may be performed by one or more simulation devices (not shown): WTRU102a to 102d, base station 114a to 114b, evolved Node B 160a to 160c, MME 162, SGW 164, PGW 166, gNB180a to 180c, AMF 182a to 182b, UPF 184a to 184b, SMF 183a to 183b, DN 185a to 185b and / or any other device described herein. The simulation device may be one or more devices configured to mimic one or more or all of the functions described herein. For example, the simulation device may be used to test other devices and / or simulate network and / or WTRU functions.

[0075] The simulation device may be designed to implement one or more tests of other devices in a laboratory environment and / or in an operator network environment. For example, the one or more simulation devices may perform one or more functions or all functions while being fully or partially implemented and / or deployed as part of a wired and / or wireless communication network in order to test other devices within the communication network. The one or more simulation devices may perform one or more functions or all functions while being temporarily implemented / deployed as part of a wired and / or wireless communication network. The simulation device may be directly coupled to another device for testing purposes and / or may use over-the-air wireless communications to perform testing.

[0076] The one or more simulation devices can perform one or more (including all) functions without being implemented / deployed as a part of a wired and / or wireless communication network. For example, the simulation device can be used in a test scenario in a test laboratory and / or a non-deployed (e.g., testing) wired and / or wireless communication network to implement the test of one or more components. The one or more simulation devices can be test equipment. Direct RF coupling and / or wireless communication performed via RF circuits (e.g., which may include one or more antennas) can be used by the simulation device to send and / or receive data.

[0077] The present application describes a number of aspects, including tools, features, examples, models, methods, etc. Many of these aspects are described in a particular manner, and at least in order to illustrate individual features, are usually described in a manner that may sound restrictive. However, this is to describe clearly and does not limit the application or scope of these aspects. In fact, all different aspects can be combined and interchanged to provide further aspects. In addition, these aspects can also be combined and interchanged with the aspects described in the earlier submission.

[0078] The aspects described and contemplated in this application can be implemented in many different forms. Figures 5 to 7 Some examples may be provided, but others are also contemplated. Figures 5 to 7 The discussion of the present invention does not limit the breadth of specific implementations. At least one of these aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to sending a generated or encoded bitstream. These and other aspects can be implemented as methods, apparatus, a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the methods, and / or a computer-readable storage medium having stored thereon a bitstream generated according to any of the methods.

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

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

[0081] like Figure 2 and Figure 3 As shown, various methods and other aspects described in this application can be used to modify modules (e.g., decoding modules) of video encoder 200 and decoder 300. 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 described in a recommendation), whether pre-existing or developed in the future, as well as extensions of any such standards and recommendations. Unless otherwise indicated or technically excluded, the various aspects described in this application can be used alone or in combination.

[0082] Various numerical values ​​are used in the examples describing the present application, such as 0, 1, 3, 7, etc. These specific values ​​and other specific values ​​are used for the purpose of describing the examples, and the described aspects are not necessarily limited to these specific values.

[0083] Figure 2 2 is a schematic diagram illustrating an example video encoder. Variations of the example encoder 200 are contemplated, but the following describes encoder 200 for clarity without describing all contemplated variations.

[0084] Prior to being encoded, the video sequence may undergo pre-encoding processing (201), such as applying a color transform to an input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of input picture components 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.

[0085] 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, for example, using intra mode or inter mode. When a unit is encoded in intra mode, the unit performs intra prediction (260). In inter mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) which of intra mode or inter mode to use to encode the unit, and indicates the intra / inter decision by, for example, a prediction mode flag. The prediction residual is calculated, for example, by subtracting (210) the predicted block from the original image block.

[0086] The prediction residual is then transformed (225) and quantized (230). The quantized transform coefficients, along with 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 both the transform and quantization, i.e., directly code the residual without applying the transform or quantization process.

[0087] 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 image block is reconstructed by combining the decoded prediction residual and the predicted block (255). 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 at a reference picture buffer (280).

[0088] Figure 3 is a schematic 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 decoding process is the reverse of the encoding process described in . The encoder 200 also typically performs video decoding as part of encoding the video data.

[0089] Specifically, the input of the decoder includes a video bitstream, which may be generated by the video encoder 200. First, the bitstream is entropy decoded (330) to obtain transform coefficients, motion vectors and other decoded information. Picture partition information indicates how the picture is partitioned. Therefore, the decoder can 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 image block is reconstructed by combining (355) the decoded prediction residual and the predicted block. The predicted block can 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 at a reference picture buffer (380).

[0090] The decoded picture may also undergo 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 that is the inverse 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 an example, the decoded image (e.g., after applying the in-loop filter (365) and / or after the post-decoding processing (385), if post-decoding processing is used) may be transmitted to a display device for presentation to a user.

[0091] An example context-adaptive binary arithmetic coder (eg, encoder and / or decoder) with dynamic model switching and / or parameterization may be used.

[0092] Figure 4 4 is a schematic diagram showing an example of a system in which various aspects and examples described herein can be implemented. System 400 may be embodied as a device including various components described below and configured to perform one or more aspects of the aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of system 400 may be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components, either individually or in combination. For example, in at least one example, the processing and encoder / decoder elements of system 400 are distributed over 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 through dedicated input ports and / or output ports. In various examples, system 400 is configured to implement one or more aspects of the various aspects described in this document.

[0093] The system 400 includes at least one processor 410 configured to execute instructions loaded therein for implementing, for example, various aspects described in this document. The processor 410 may include embedded memory, input-output interfaces, and various other circuits as 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 magnetic disk drive, and / or an optical disk drive. As non-limiting examples, 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.

[0094] The system 400 includes an encoder / decoder module 430, which is configured to process data, for example, 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 that may be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both of an encoding module and a decoding module. Additionally, 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.

[0095] 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 the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded video or partially decoded video, bitstreams, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and operation logic.

[0096] 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, the 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 RAM) is used as working memory for video encoding operations and video decoding operations.

[0097] Inputs to the elements of system 400 may be provided through various input devices as indicated in block 445. Such input devices include, but are not limited to: (i) a radio frequency (RF) section that receives an RF signal, such as that transmitted over the air 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. Other examples ( Figure 4 ) includes composite video.

[0098] In various examples, the input device of frame 445 has the corresponding input processing element associated as known in the art.For example, the RF part can be associated with the element suitable for the following: (i) select the required frequency (also referred to as selecting signal, or limiting the signal band to a band), (ii) down-convert the selected signal, (iii) again band-limit to narrower band to select the signal band that (for example) can be referred to as channel in some examples, (iv) demodulate the signal of down-conversion and band-limitation, (v) perform error correction, and / or (vi) demultiplex to select the required data packet stream.The RF part of various examples includes one or more elements for performing these functions, such as frequency selector, signal selector, band limiter, channel selector, filter, down-converter, demodulator, error corrector and demultiplexer.The RF part can include the tuner of various functions that perform these functions, and these functions include, for example, down-converting the received signal to a lower frequency (for example, intermediate frequency or near baseband frequency) or to baseband. In a set-top box example, the RF part and its associated input processing element receive the RF signal sent by wired (for example, cable) medium, and filter to the desired frequency band by filtering, down-conversion and again to perform frequency selection.Various examples rearrange the order of above-mentioned (and other) elements, remove some elements in these elements, and / or add other elements that perform similar or different functions.Adding element can include inserting element between existing elements, such as for example inserting amplifier and analog-to-digital converter.In various examples, the RF part includes antenna.

[0099] The USB and / or HDMI terminals may include corresponding interface processors for connecting the system 400 to other electronic devices across the USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented as needed, for example, in a separate input processing IC or in the processor 410. Similarly, various aspects of USB or HDMI interface processing may be implemented as needed in a separate interface IC or in 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 the memory and storage elements to process the data streams as needed for presentation on the output device.

[0100] The various components of system 400 may be disposed within an integrated housing. Within the integrated housing, the various components may be interconnected and transmit data between the components using a suitable connection arrangement 425 (e.g., an internal bus known in the art, including an inter-chip (I2C) bus, wiring, and a printed circuit board).

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

[0102] In various examples, a wireless network such as a Wi-Fi network (e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers)) is used to stream or otherwise provide data to the system 400. 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 external networks including the Internet to allow streaming applications and other cross-top communications. Other examples use a set-top box to provide streaming data to the system 400, which delivers the data through the HDMI connection of the input box 445. Still other examples use the RF connection of the input box 445 to provide streaming data to the system 400. As described above, various examples provide data in a non-streaming manner. Additionally, various examples use wireless networks other than Wi-Fi, such as cellular networks or network.

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

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

[0105] 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 signal may be provided via a dedicated output connection including, for example, an HDMI port, a USB port, or a COMP output.

[0106] 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, as a non-limiting example, may be implemented using any appropriate data storage technology such as 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, as a non-limiting example, may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0107] Various specific implementations involve decoding. As used in this application, "decoding" may cover, for example, all or part of a process performed on a received coded sequence to produce a final output suitable for display. In various examples, such processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various examples, such processes also include or alternatively include processes performed by decoders of various specific implementations described in this application, such as determining an updated probability value based on a probability measurement value and an initial probability value; obtaining a first value of a first binarized symbol associated with video data; obtaining a second value of a second binarized symbol associated with the video data; obtaining a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; decoding the video data based on the probability value associated with the third binarized symbol, etc.

[0108] As another 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 refer specifically to a subset of operations or broadly to a broader decoding process will be clear based on the context of the specific description and is considered to be well understood by those skilled in the art.

[0109] Various implementations involve encoding. In a manner similar to the discussion above about "decoding", "encoding" as used in this application may cover, 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 of the processes typically performed by an encoder, such as partitioning, differential encoding, transforming, quantization, and entropy encoding. In various examples, such processes also include or alternatively include processes performed by encoders of various implementations described in this application, such as determining an updated probability value based on a probability measurement value and an initial probability value; obtaining a first value of a first binarized symbol associated with video data; obtaining a second value of a second binarized symbol associated with the video data; obtaining a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; decoding the video data based on the probability value associated with the third binarized symbol, etc.

[0110] As another 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 decoding and entropy encoding. Whether the phrase "encoding process" specifically refers to a subset of operations or broadly refers to a broader encoding 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.

[0111] It should be noted that the syntax elements (eg, slice header CABAC initialization indication, etc.) used herein are descriptive terms. Therefore, they do not exclude the use of other syntax element names.

[0112] When the figures are presented as flow charts, it should be understood that they also provide block diagrams of corresponding devices. Similarly, when the figures are presented as block diagrams, it should be understood that they also provide flow charts of corresponding methods / processes.

[0113] The specific implementations and aspects described herein may be implemented in, for example, a method or process, a device, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of specific implementation (e.g., discussed only as a method), the specific implementation of the features discussed may also be implemented in other forms (e.g., a device or program). The device may be implemented in, for example, appropriate hardware, software, and firmware. These methods may 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 equipment, such as, for example, a computer, a mobile phone, a portable / personal digital assistant ("PDA"), and other equipment that facilitates information communication between end users.

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

[0115] Additionally, the present application may involve "determining" various pieces of information. Determining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from a memory. Obtaining may include receiving, retrieving, constructing, generating, and / or determining.

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

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

[0118] 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," the use of any of the following " / ," "and / or," and "at least one of" is intended to encompass selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C," such phrases are intended to encompass selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first listed option and the second listed option (A and B), or only the first listed option and the third listed option (A and C), or only the second listed option and the third listed option (B and C), or all three options (A and B and C). This can be extended to as many items as listed, as will be apparent to one of ordinary skill in this and related arts.

[0119] Moreover, as used herein, the term "signaling" means (among other things) indicating something to a corresponding decoder. The encoder signal may include, for example, sh_cabac_init_flag, etc. In this way, in the example, the same parameters are used at both the encoder side and the decoder side. Thus, for example, the encoder may 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 specific parameters and other parameters, signaling may be used without sending (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit savings are achieved in various examples by avoiding sending any actual function. It should be understood that signaling can be implemented in a variety of ways. For example, in various examples, one or more syntax elements, flags, etc. are used to signal information to the corresponding decoder. Although the verb form of the term "signaling" is mentioned above, the term "signal" may also be used as a noun in this article.

[0120] It will be apparent to one of ordinary skill in the art that a specific implementation may generate a variety of signals formatted to carry, for example, storable or transmittable information. The information may include, for example, instructions for executing a method or data generated by one of the described specific implementations. For example, a signal may be formatted to carry a bit stream of the example. 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. Formatting may include, for example, encoding a data stream and modulating a carrier using the encoded data stream. The information carried by the signal may be, for example, analog information or digital information. As is well known, the signal may be sent via a variety of different wired links or wireless links. The signal may be stored on, or accessed or received from, a processor-readable medium.

[0121] 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 include a bitstream or signal of information generated as described herein to be implemented. This information may allow a decoder to decode a bitstream, an encoder, a bitstream and / or a decoder according to any of the embodiments described in the embodiments. For example, the features described herein may be implemented by creating and / or sending and / or receiving and / or decoding a bitstream or a signal. For example, the features described herein may be implemented by a method, a process, a device, a medium storing instructions, a medium storing data or a signal. For example, the features described herein may be implemented by a TV, a set-top box, a cellular phone, a tablet computer or other electronic devices that perform decoding. A TV, a set-top box, a mobile phone, a tablet computer or other electronic devices may display (e.g., using a monitor, a screen or other type of display) the resulting image (e.g., an image reconstructed from the residual of a video bitstream). A TV, a set-top box, a mobile phone, a tablet computer or other electronic devices may receive a signal including an encoded image and perform decoding.

[0122] In some video codecs, a large part of the signaling can be accomplished using entropy decoding of the value to be sent. In the case of context-adaptive binary arithmetic coding (CABAC), binary values ​​(e.g., only binary values) can be encoded and / or decoded, and the general value can (e.g., first) undergo binarization (e.g., a binarization process). In some examples, in order to encode or decode a binary number (e.g., for each single binary number to be encoded), a context can be attached, and the probability of each binary number to be encoded or decoded (e.g., each binary number associated with the context) can be updated after each encoding / decoding. The speed at which the probability is updated can be a first parameter of a model (e.g., a context model). The second parameter of the model can be an initial probability used by the model.

[0123] Disclosed are systems, methods, and means for performing context adaptive binary arithmetic coding (CABAC) updates. The device may be configured to obtain a value of a first probability state and a value of a second probability state associated with context adaptive entropy coding. The device may be configured to generate a first plurality of entropy-encoded values ​​from a plurality of binary numerical values ​​based on the value of the first probability state and the value of the second probability state. The device may be configured to determine a probability measure value based on the first plurality of entropy-encoded values. The device may be configured to determine an update value of the first probability state based at least on the probability measure value and the value of the first probability state.

[0124] The device may be configured to determine the updated value of the second probability state based at least on the probability measure value and the value of the second probability state. The device may be configured to generate a second plurality of entropy-coded values ​​based on the updated value of the first probability state and the updated value of the second probability state. Determining the probability measure value based on the first plurality of entropy-coded values ​​may include determining the ratio of the encoded values ​​equal to 1 among the first plurality of entropy-coded values. Determining the probability measure value based on the first plurality of entropy-coded values ​​may include determining the most frequently occurring value among the first plurality of entropy-coded values. Determining the updated value of the first probability state based at least on the probability measure value and the value of the first probability state may include determining the updated value of the first probability state based on the probability measure value, the value of the first probability state and / or the first window size. Determining the updated value of the second probability state based at least on the probability measure value and the value of the second probability state may include determining the updated value of the second probability state based on the probability measure value, the value of the second probability state and / or the second window size.

[0125] The systems, methods, and means described herein may relate to decoders. In some examples, the systems, methods, and means described herein may relate to encoders. In some examples, the systems, methods, and means described herein may relate to signals (e.g., signals from encoders and / or received by decoders). 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, cause one or more processors to perform the methods described herein.

[0126] Systems, methods, and means are disclosed for a device configured to obtain a binary value based on a probability value that has been updated based on a plurality of binary values.

[0127] A device (e.g., a decoder) may obtain a first value of a first binarized symbol associated with video data, and obtain a second value of a second binarized symbol associated with the video data. The device may obtain a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol. Then, the device may decode the video data based on the probability value associated with the third binarized symbol. In an example, the value of the binarized symbol (e.g., the first value of the first binarized symbol) may be used for a syntax element. In some examples, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be used for one or more transform coefficients.

[0128] In an example, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be associated with a context for entropy decoding. For example, the first binarized symbol, the second binarized symbol, and the third binarized symbol may be associated with an entropy decoding context for decoding the video data using context-based adaptive binary arithmetic coding (CABAC). The probability value associated with the first binarized symbol may be a context probability value associated with the entropy decoding context, and the probability value associated with the third binarized symbol may be an updated context probability value associated with the entropy decoding context. The probability value associated with the first binarized symbol may be used to obtain the first value of the first binarized symbol and the value of the second binarized symbol. The probability value associated with the third binarized symbol may be obtained by updating the probability value associated with the first binarized symbol based on the value of the first binarized symbol and the second binarized symbol. The probability value associated with the third binarized symbol may be used to obtain the third value of the third binarized symbol.

[0129] In some examples, the device may obtain a predetermined number of values ​​of a first continuous number of binarized symbols associated with a context for entropy decoding (e.g., the first binarized symbol and the second binarized symbol may be part of the first continuous number of binarized symbols), entropy decode the first continuous number of binarized symbols based on a context probability value associated with the context, and entropy decode the second continuous number of binarized symbols based on an updated context probability value associated with the context. The context probability value may be updated based on the first continuous number of binarized symbols. The first continuous number of binarized symbols and the second continuous number of binarized symbols may not overlap.

[0130] The device may obtain a window size associated with the context, and further obtain the probability value associated with the third binarized symbol based on the window size. The device may obtain the probability value associated with the third binarized symbol based on a weighting factor. The weighting factor may be determined using the window size. In some examples, the device may further obtain the probability value associated with the third binarized symbol based on an error, the error indicating an inconsistency between the obtained second value and the probability value associated with the second binarized symbol.

[0131] The second value of the second binary symbol may be obtained before the probability value associated with the first binary symbol is updated. For example, the device may refrain from updating the probability value associated with the first binary symbol until the second value is obtained. The second value of the second binary symbol may be obtained based on the same probability value associated with the first binary symbol. The device may continue to obtain a predetermined number of values ​​of a continuous number of binary symbols before updating the probability value associated with the first binary symbol. For example, the device may have obtained the corresponding value of each binary symbol in the continuous number of binary symbols before updating the probability value associated with the first binary symbol, and the second binary symbol is a binary symbol in the continuous number of binary symbols. The value of the continuous number of binary symbols may be obtained using the same probability value.

[0132] The device may determine a probability measure based on the first value and the second value, and determine the probability value associated with the third binary symbol based on the probability measure. The probability measure may be determined based on an average value of the first value and the second value or a weighted average value of the first value and the second value. In some examples, the first value may be obtained at a first time, the second value may be obtained at a second time, and the third value of the third binary symbol may be obtained at a third time that is closer to the second time in time than the first time. The device may determine a weighted average value of the first value and the second value by assigning a greater weight to the second value than to the first value, and obtain the probability value associated with the third binary symbol based on the weighted average value of the first value and the second value.

[0133] In an example, a video decoding device may obtain a first probability value associated with context adaptive entropy coding for a predetermined number of binary numbers in a context; generate a first plurality of entropy decoded values ​​based on the first probability value associated with the context; obtain a second probability value associated with the context based on the first plurality of entropy decoded values ​​and the first probability value associated with the context; and generate a second plurality of entropy decoded values ​​based on the second probability value associated with the context.

[0134] like Figure 2 and Figure 3 As illustrated in , a video encoder / decoder (codec) may employ entropy coding (e.g., entropy coding and / or entropy decoding) techniques to compress or decompress video data. The video codec may, for example, apply context-based coding (such as context-adaptive binary arithmetic coding (CABAC) techniques) to the video data. For example, the video codec may encode / decode binary values ​​and / or general values ​​that may be obtained through a binarization process and represented by a plurality of binary symbols (binary numbers). The video encoder / decoder may determine a context for a binary number to be processed (e.g., attaching a context to a binary number), and may, for example, update a probability state (e.g., a probability value) of the context after completing an encoding / decoding operation on one or more binary numbers. The video encoder / decoder may determine an entropy coding context model (e.g., an entropy coding context model or an entropy decoding context model) for an entropy coding operation or process (e.g., based on the context of the operation or process), and may perform the entropy coding operation or process based on the context model. The context model may include a plurality of context-specific parameters including, for example, an initial probability state associated with the entropy coding operation and / or a speed at which the probability state may be updated.

[0135] Figure 5 An example of entropy decoding is illustrated. Entropy decoding (e.g., Figure 2 The entropy coding shown at 245 or Figure 3 Entropy decoding shown at 330 at ) may use one or more of multi-hypothesis probability estimation, context adaptive probability update rules, or a multi-symbol arithmetic decoder to, for example, achieve lossless compression of video data that minimizes resources used to store or send the video data. Figure 5 One or more elements in the examples of may be associated with entropy coding and may be applicable to entropy decoding. For example, when CABAC is used for entropy decoding of video data, the entropy decoding may include binarization of the video data. The binarization may provide one or more binary numbers. The binary number may include one or more binarized symbols. In an example, the binary number may include binarized information of a syntax element. The binary number may include binarized information of a transform coefficient (e.g., a quantized transform coefficient).

[0136] For example, when CABAC is used for entropy coding of video data, one or more binary numbers associated with the entropy coding of the video data may be associated with a context model. In one or more examples herein, the term "context" and the term "context model" may be used interchangeably. Figure 5As shown, a context may be selected for a binary number (e.g., each binary number). The context (e.g., each context) may include one or more of the context variables, such as a window size or a probability value (e.g., an initial probability value and / or a current probability value, which in some examples may have been updated based on a previous probability value). The context may include one or more current probability values. For example, multiple (e.g., two) probabilities may be maintained, such as a probability state p0 and a probability state p1. In some examples, the current probability value may be determined based on the probability state p0 and the probability state p1. As shown in FIG. Figure 5 As shown, it is determined whether the current encoding is the first encoding (e.g., whether the current binary number is the first binary number to be encoded). If the current encoding is the first encoding, the initial probability value can be obtained. If the current encoding is not the first encoding, the current probability value can be obtained. Depending on whether the current encoding is the first encoding, the initial probability value or the current probability value can be used to encode the binary number. The encoded binary number can be used to update the initial probability value or the current probability value. The context may include a window size, which may indicate or correspond to the update speed of a probability state (e.g., a probability state associated with the context). The window size can be used to update the initial probability value or the current probability value. Subsequently, the updated probability value can be changed to a probability value that will be used to encode the next binary number or multiple subsequent binary numbers. In one or more examples herein, the terms "probability", "probability state" and "probability value" can be used interchangeably to indicate the possibility of a certain value (e.g., a binary value). The possibility of a certain value can be associated with a binary number, associated with multiple binary numbers related to the context, or associated with the context. The probability value and / or the window size can be a context variable associated with the context. The probability value may be updated, for example, as shown in Equation 3-46.

[0137] p'=w*b+(1-w)*p (3-46)

[0138] In Equation 3-46, p may represent a previous probability (e.g., a previous probability value associated with a context (context probability value)), p' may represent an updated probability (e.g., an updated probability value associated with the context (updated context probability value)), b may indicate a current encoded / decoded binary number (e.g., a binary number obtained by encoding or decoding), and w may be associated with a window size (e.g., w may represent a window size associated with a selected context model). Multiple probability states (e.g., p0 and p1) may be updated based on corresponding window sizes (e.g., w0 and w1).

[0139] The window size (eg, w0 or w1) may dictate the speed of the update (eg, logarithmic speed), for example, as shown in Equation 2-46.

[0140] w=2^(-ws) (2-46)

[0141] In equation 2-46, ws represents the window size. The weighting factor can be determined based on the window size. The weighting factor can be used to determine the updated probability value. As shown in equation 2-46 and equation 3-46, a smaller window size can indicate a faster (e.g., less stable) update, and a larger window size can indicate a slower (e.g., more stable) update. For example, the first probability state p0 and / or the second probability state p1 can be updated at different speeds by using different window sizes w0 and w1. For example, the first probability state p0 and / or the second probability state p1 can indicate the probability that the binary value is one.

[0142] The binary number (e.g., each binary number) may be encoded / decoded based on the plurality of probability states. For example, the binary number may be encoded / decoded based on the average of the plurality of probability states (e.g., the simple average of two probabilities p0 and p1). The same initial probability value may be used to initialize one or more of the plurality of probability states (e.g., p0 and p1). The context may include an initial probability value. In an example, the initial probability value associated with the context may be used to initialize one or more of the plurality of probability states (e.g., p0 and / or p1).

[0143] The parameters (e.g., initial probability, window size) of a given context may be determined based on (e.g., may depend on) one or more parameters associated with the video data (e.g., one or more parameters external to the context). For example, for (e.g., each) context, there may be specific rules (e.g., LUT or linear) that allow a decoder or encoder to derive CABAC parameters based on external parameters (e.g., slice type and qp).

[0144] For example, one or more parameters used to determine the parameters for the context may include the type of slice to be encoded or decoded, such as the type of intra slice (I slice), the type of bidirectional predicted slice (B), or the type of unidirectional slice (P). One or more parameters used to determine the parameters for the context may include a quantization parameter (qp) (e.g., a qp associated with a slice, a qp associated with a block, etc.).

[0145] In some examples, a context model may be selected by an encoder and indicated to a decoder, and parameters associated with the context model may be used by the encoder and the decoder. For example, the association of the parameters with the context model may be predetermined (e.g., hard-coded). A context model (e.g., each context model) may use associated parameters between the encoder and the decoder (e.g., using fixed parameters for the context). These parameters may be determined based on the context.

[0146] One or more parameters associated with the context module may be initialized for a slice, for example, before the slice is entropy decoded. For example, at the beginning of a slice (eg, each slice), the context module may be initialized as follows: Figure 6 Initialize this parameter as described in . Figure 6 An example of parameter initialization is illustrated. One or more parameters associated with the context module may include an initial probability value associated with the context model and / or a window size.

[0147] like Figure 6 As shown, the parameter initialization may be based on one or more of the slice type and / or the quantization parameter qp. For example, the slope coefficient a and the offset b may be obtained based on the slice type. The initial probability value associated with the context model may be determined based on the quantization parameter qp, the slope coefficient a, and the offset b, for example, using a linear function p=a*qp+b. The first window size w0 associated with the context model and / or the second window size w1 associated with the context model may be obtained, for example, based on the slice type.

[0148] Switching of initialization parameters may be allowed. An indication (e.g., a flag represented by sh_cabac_init_flag) may be signaled (e.g., by an encoder) or obtained (e.g., by a decoder) in a slice header (e.g., for non-intra slices) to indicate whether initialization parameter switching may be allowed for the slice. For example, if sh_cabac_init_flag in the slice header is set to true for a B slice, initialization parameters configured for a P slice may be used for the B slice. If sh_cabac_init_flag is set to false, a P slice parameter set may not be used for the B slice.

[0149] Table 1 below shows the signaling syntax associated with sh_cabac_init_flag.

[0150] if (sh_slice_type!=I){ if(pps_cabac_init_present_flag) sh_cabac_init_flag u(1)

[0151] Context-based coding (eg, CABAC) may use one or more of the following: a core CABAC engine, separate residual coding structures for transform blocks and transform skip blocks, and context modeling of transform coefficients.

[0152] A CABAC engine (e.g., a core CABAC engine or a CABAC engine different from the core CABAC engine) may use a table-based probability transition process between 64 different representative probability states. A range ivlCurrRange representing the state of the decoding engine may be quantized to a set of 4 values ​​before calculating an interval range (e.g., a new interval range). State transitions may be implemented using a table containing 64×4 8-bit pre-computed values ​​to approximate the value of ivlCurrRange*pLPS(pStateIdx), where pLPS may be the probability of the least-probable symbol (LPS) and pStateIdx may be an index of a state (e.g., a current probability state). A pre-computed LUT may be used to implement decoding decisions. The ivlLpsRange may be obtained using a LUT as described in 3-47. The ivlLpsRange may be used to update ivlCurrRange and calculate the output binVal.

[0153] ivlLpsRange=rangeTabLps[pStateIdx][qRangeIdx] (3-47)

[0154] In some examples, the probability may be expressed by a probability index pStateIdx (e.g., linearly). The calculation may be performed using an equation (e.g., without LUT operations). A multi-hypothesis probability update model may be applied (e.g., to improve the accuracy of the probability estimate). pStateIdx (e.g., pStateIdx used in interval subdivision in a binary arithmetic decoder) may be a combination of multiple probabilities (e.g., two probabilities, such as pStateIdx0 and pStateIdx1). (E.g., each) context model may be associated with multiple probabilities (e.g., two probabilities, such as pStateIdx0 and pStateIdx1). The multiple probabilities associated with the context model (e.g., each context model) may be updated independently (e.g., independently updated at different adaptation rates). The adaptation rates of pStateIdx0 and pStateIdx1 for the context model (e.g., each context model) may be pre-trained, for example, based on statistics of the associated binary numbers. The probability estimate pStateIdx may be the average of the estimates from two hypotheses (eg, pStateIdx0 and pStateIdx1).

[0155] Figure 7 An example of decoding a binary number, such as a single binary decision in a codec (eg, a first codec), is illustrated. Figure 7As shown, at 704, parameters for decoding may be determined. A probability value pState that has been used by the encoder may be calculated from two probability states pStateIdx1 and pStateIdx2. A current binary element binVal may be decoded. At 706, pStateIdx1 and pStateIdx2 may be updated depending on the decoded binary value binVal.

[0156] Entropy coding (e.g., entropy decoding or entropy encoding) may use context-based coding. In an example, CABAC may include a parameter initialization process (e.g., a quantization parameter-related initialization process) that may be called, for example, at the beginning of a slice (e.g., before starting processing of the slice). For example, given an initial value of luma qp for the slice, an initial probability state of a context model (e.g., denoted as preCtxState) may be derived using one or more of equations 3-48, 3-49, and 3-50.

[0157] m=slopeIdx×5–45 (3-48)

[0158] n=(offsetIdx<<3)+7 (3-49)

[0159] preCtxState=Clip3(1,127,((m×(QP-32))>>4)+n) (3-50)

[0160] Here, the slope coefficient slopeIdx and the offset offsetIdx may be limited to 3 bits, and the initialization value (eg, the total initialization value) may be represented by 6-bit precision.

[0161] In some examples, one or more of Equations 4-48, 4-49, and 4-50 may be used to derive an initial probability state of a context model (eg, denoted as preCtxState).

[0162] m=(initId>>3)-4 (4-48)

[0163] n=((initId&7)*18)+1 (4-49)

[0164] preCtxState=Clip3(1,127,((m*(qp-16))>>1)+n) (4-50)

[0165] Here, initld may be a parameter depending on the slice type and / or CABAC context.

[0166] The probability state preCtxState may (e.g., directly) represent a probability in a linear domain. Before the probability state preCtxState is used as an input to an arithmetic decoding engine (e.g., as shown in equations 3-51 and 3-52 below), one or more shift operations (e.g., using only appropriate shift operations) may be used to determine the probability state preCtxState, and a mapping of logarithms to linear domains and / or a 256-byte table may be saved. In one or more examples herein, the shift operation may correspond to a window size. For example, in one or more examples herein, pStateIdx0 in equation 3-51 may correspond to a probability state p0. pStateIdx1 in equation 3-51 may correspond to a probability state p1 in one or more examples herein. In one or more examples herein, the shift operation preCtxState<<3 of equation 3-51 may correspond to a window size w0, and in one or more examples herein, the shift operation preCtxState<<7 of equation 3-52 may correspond to a window size w1. The window size w0 corresponding to the shift operation preCtxState<<3 of Equation 3-51 may be different from the window size w1 corresponding to the shift operation preCtxState<<7 of Equation 3-52, indicating that the probability state p0 and the probability state p1 may be updated at different rates.

[0167] pStateIdx0=preCtxState<<3 (3-51)

[0168] pStateIdx1=preCtxState<<7 (3-52)

[0169] Extended precision may be implemented in entropy coding. Intermediate precision used in an arithmetic coding engine may be increased. For example, the precision of two probability states may be increased to 15 bits (e.g., compared to 10 bits and 14 bits in a certain codec). The least probability symbol (LPS) range update process may be performed using the example shown in 3-53.

[0170] If q>=16384

[0171] q=2 15 –1–q

[0172] R LPS =((range*(q>>6))>>9)+1, (3-53)

[0173] The range in 3-53 may be a variable representing the width of the current interval (e.g., a 9-bit variable); q may be a variable representing the probability state of the current context model (e.g., a 15-bit variable); and R LPSIt can be the updated range of LPS. This operation can be implemented by looking up 512×256 entries in a 9-bit lookup table. For example, at the encoder side, a 256-entry lookup table for bit estimation can be expanded to 512 entries.

[0174] The window size may be adapted to the slice type. The statistics may differ for different slice types. The context probability state may be updated at a rate determined based on the slice type (e.g., at a rate that is optimal for a given slice type). For context models (e.g., each context model), for example, based on Figure 6 , multiple (e.g., three) window sizes (e.g., predefined window sizes for I slices, B slices, and P slices, respectively) may be used. The context initialization parameters and / or window sizes may vary for the corresponding context models. In some examples, the context initialization parameters and / or window sizes may be retrained when the context model changes.

[0175] The CABAC update mechanism may be implemented, for example, to include further refinements. In an example, the encoder may have a certain number of values ​​(e.g., residual coefficients, flags, etc.) to be sent. For example, these values ​​may be binarized so that binary symbols (e.g., only binary symbols) may be considered. For (e.g., each) binary symbol, a CABAC context may be determined. For example, a specific flag may be associated with context #45, and / or the first binary number of the binarization of each residual coefficient may belong to context #37. (e.g., each) context may maintain a probability value that may be used to entropy compress the binary symbol. As described herein, the generated data may be transmitted to a decoder, which may infer the CABAC context and the probability value of the CABAC context. The decoder may decompress the data and recover the binary symbol. As shown in one or more examples herein, the probability value of the CABAC context may be obtained based on the values ​​of two probability states (e.g., as a simple average or weighted average of p0 and p1). The two probability states may be initialized at the beginning of (e.g., each) slice and updated after one or more observed binary values. In an example, the update may be based on the current probability value of the CABAC context, one or more decoded / encoded binary values, and a window size. The window size is a parameter specific to the CABAC context. Two different window sizes may be used to update the two different probability states (e.g., p0 and p1). The values ​​of the two different probability states may be stored (e.g., independently stored within the CABAC context). In an example, the same rule (e.g., according to equation 2-46 or equation 3-54) and / or different window sizes may be used to update the two different probability states.

[0176] A probability value associated with a context model for entropy decoding of the video data may be obtained based on a plurality of binary values ​​associated with entropy decoding of the video data (e.g., by updating the current probability value (e.g., an initial probability value, a subsequently updated probability value) based on a plurality of binary values ​​associated with the context).

[0177] The state (e.g., the probability value associated with the context model) may be updated in a non-continuous manner (e.g., the update does not occur after each bin value has been decoded). The state may be updated after a plurality of bins have been decoded (e.g., instead of updating after each bin has been decoded). In an example, the CABAC update mechanism (e.g., the update of the context model in which the current probability value associated with the context model is updated) may be periodic, e.g., occurring after every T bins have been decoded.

[0178] The updating of the current probability value associated with the context model (e.g., context probability state updating) may occur after a plurality of binary values ​​have been decoded or encoded. In an example, a first value of a first binary symbol may be obtained (e.g., encoded or decoded). A second value of a second binary symbol may be obtained based on a probability value identical to the probability value for the first binary symbol (e.g., rather than updating the current probability value associated with the context model based on the decoded first value of the first binary symbol). The value of the binary symbol may be zero or one. The current probability value associated with the context model may be updated based on the values ​​of the first binary symbol and the second binary symbol. The updating of the current probability value associated with the context model may not occur after decoding or encoding each value of the corresponding binary number. The updating of the current probability value associated with the context model may not occur before at least one other binary value has been decoded or encoded. In an example, a decoder or encoder may refrain from updating the current probability value associated with the context model until the second value of the second binary symbol has been obtained.

[0179] A binary number (e.g., a binarization unit) may include one or more binarized symbols. For example, a binary number may include binarized information for a syntax element. A binary number may include binarized information for one or more transform coefficients. In some examples, a binary number may include a binarized symbol to be decoded or encoded (e.g., a binary flag, or one of the binarized results of another syntax element).

[0180] In an example, a state (e.g., a probability value associated with a context model) may be periodically updated, for example, after every T binary numbers have been decoded. In an example, a decoder may obtain T values ​​of a first continuous number of binarized symbols based on a first context probability value associated with the context model, for example, using entropy decoding. The decoder may obtain a second context probability value associated with the context model based on the obtained T values ​​of the first continuous number of binarized symbols. The decoder may obtain another T values ​​of a second continuous number of binarized symbols based on the second context probability value associated with the context model.

[0181] The T bins may be predetermined or adaptive (e.g., adaptive based on qp or slice type, such as Figure 6 ). For example, if the T bins are adaptive, the number T may be adaptive to a context model (e.g., a CABAC context model). In some examples, one or more parameters including the number T, an initial probability value of the context model, and a window size associated with the context model may be adapted based on one or more of a context model (e.g., a hard-coded CABAC context model), a slice type, or a qp.

[0182] An updated probability value (e.g., an updated probability associated with a context model) may be obtained based on a plurality of decoded binary values ​​(e.g., T decoded binary values), for example, as shown in equation (3-54). Given a period (e.g., a period with T coefficients), an update formula such as that shown in equation (3-54) may be used.

[0183] p'=w*q+(1-w)*p (3-54)

[0184] For example, as shown in equation (3-54), p may indicate a current probability, p' may indicate an updated probability, and q may indicate a probability measure. The probability measure may be derived from T coefficients (e.g., previous T coefficients). A device may obtain a probability measure based on a plurality of binary values ​​(e.g., T decoded binary values). For example, the device may obtain a first value of a first binarized symbol associated with video data (e.g., a first decoded value, a first encoded value, or a first observed value), and the device may obtain a second value of a second binarized symbol associated with the video data (e.g., the device may continue to decode, continue to encode, or continue to observe the second value). The device may obtain a probability value associated with a third binarized symbol associated with the video data (e.g., an updated probability value p', such as an update of p0, an update of p1, or an average of p0 and p1) based on the first value associated with the first binarized symbol (e.g., one decoded binary value among the T decoded binary values ​​used to obtain the probability measure), the second value (e.g., another decoded binary value among the T decoded binary values ​​used to obtain the probability measure), and a probability value (e.g., a probability value p before updating, such as p0, p1, or an average of p0 and p1).

[0185] A context model may be associated with an initial probability value, and the probability value associated with the first binarized symbol may be the initial probability value of the context model.

[0186] Figure 8 An example probability update 8(a) and an example probability update 8(b) are shown.

[0187] As shown in example (a), the value of bin0 at 824 may be obtained using probability 826 (e.g., probability value p in equation 3-46) by entropy decoder 828 (e.g., entropy decoder 828 may be an entropy decoder or an entropy encoder). In an example, bin0 may be associated with a context model (e.g., as characterized by one or more context variables or indicated by a context model index). Probability 826 may include a first probability value associated with the context model. At 830, probability 826 may be updated, for example, using equation 3-46 to obtain an updated probability 832. The updated probability 832 may be, for example, the probability value p' in equation 3-46. When the probability measure of equation 3-54 is determined based on a binary value, the updated probability 832 may be obtained, for example, based on the obtained value of probability 826 and bin0 according to equation 3-46 or equation 3-54. The updated probability 832 (e.g., the updated probability value p' in Equation 3-46) may be used by an entropy decoder 834 (e.g., the entropy decoder 834 may be an entropy decoder or an entropy encoder) to obtain the value of bin1 at 836. In an example, bin1 may be associated with the same context model as the context model associated with bin0. Probability 832 may include a second probability value associated with the context model. In some examples, probability 826 may be an initial probability value associated with the context model.

[0188] As shown in Example 8(b), the value of bin0 at 804, the value of bin1, and the value of bin2 may be obtained using probability 806 (e.g., probability value p in equation 3-54) by entropy decoder 808 (e.g., entropy decoder 808 may be an entropy decoder or an entropy encoder). In the example, bin0, bin1, and bin2 may be associated with a context model (e.g., as characterized by one or more context variables or indicated by a context model index). Probability 806 may include a first probability value associated with the context model. At 810, probability 806 may be updated, for example, using equation 3-54 to obtain an updated probability 812. The updated probability 812 may be, for example, the probability value p' in equation 3-54. When the probability measure of equation 3-54 is determined based on three binary values, the updated probability 812 may be obtained, for example, based on probability 806, the obtained value of bin0, the obtained value of bin1, and the obtained value of bin2 according to equation 3-54. The updated probability 812 (e.g., the updated probability value p' in equation 3-54) may be used by entropy decoder 814 (e.g., entropy decoder 814 may be an entropy decoder or an entropy encoder) to obtain the value of bin3, the value of bin4, and the value of bin5 at 816. In an example, bin3, bin4, and bin5 may be associated with the same context model as the context model associated with bin0, bin1, and bin2. Probability 812 may include a second probability value associated with the context model. In some examples, probability 806 may be an initial probability value associated with the context model.

[0189] The updated probability value may be obtained based on information determined from a plurality of decoded binary values ​​(eg, T decoded binary values). The probability measure in equation 3-54 may include the information determined from the plurality of decoded binary values.

[0190] In an example, the information determined from the plurality of decoded binary values ​​may indicate how often a certain value was obtained for the previous T binary numbers. For example, the probability measure q may be the ratio of binary numbers equal to 1 in the previous T binary numbers. For example, if Figure 8 In Example 8(b), the value of bin0 is 1, the value of bin1 is 0, and the value of bin2 is 1, then the probability measure q of Example 8(b) can be determined to be 2 / 3.

[0191] The context model may be associated with a window size. As shown in Equation 3-54, a weighting factor associated with the window size may be used to determine an updated probability value. As shown in Equation 3-54, the probability measure q may be weighted using a weighting factor w. The weighting factor w may be associated with a window size (e.g., an updated window size). The window size (e.g., an updated window size) and the weighting factor may vary (e.g., be retrained) for a corresponding context model (e.g., for each CABAC context). The window size may be derived from the currently used window (e.g., in a manner that the weight assigned to the current probability value p is substantially the same as the weight assigned to the probability T step by CABAC in the past). For example, the window size is used to determine the weighting factor w, for example, according to Equation 2-46. In some examples, the probability measure q may be a mode value of the previous T binary numbers, which may indicate the binary number that occurs most frequently during a period. For example, if more binary numbers equal to 1 than binary numbers equal to 0 have been encoded, decoded, or observed, the mode value of the previous T binary numbers may be one. If more binary numbers equal to 0 have been encoded, decoded or observed than binary numbers equal to 1, the mode value of the previous T binary numbers can be zero. In the case where the mode value is not unique, the window size (e.g., the weighting factor w associated with the update window) can be set to 0.

[0192] The information determined from the plurality of decoded binary values ​​may be obtained based on an average or weighted average of the plurality of decoded binary values ​​(e.g., T decoded binary values). For example, the probability measure q may be an average or weighted average of the previous coefficients or probability values ​​associated with the previous coefficients. For example, a newer coefficient may be associated with a larger weight than an earlier coefficient. Figure 8 In the example shown in (b), the value of bin0 can be obtained at the first time. The value of bin1 can be obtained at the second time. The value of bin2 can be obtained at the third time. The third time can be closer in time to the time when the value of bin4 is to be obtained than the second time or the first time. The weighted average of the value of bin0, the value of bin1, and the value of bin2 can be obtained by assigning a greater weight than the value of bin1 or the value of bin0 to the value of bin2. The updated probability value can be obtained based on the weighted average of the value of bin0, the value of bin1, and the value of bin2.

[0193] In some examples, a weighted average of the values ​​of bin0, bin1, and bin2 may be obtained by assigning the same weight to the values ​​of bin0, bin1, and bin2. In other examples, an average of the values ​​of bin0, bin1, and bin2 may be obtained without applying a weighting factor, and an updated probability value may be obtained based on the average of the values ​​of bin0, bin1, and bin2.

[0194] An autoregressive moving average (ARMA) model may be used. A CABAC model (which may be an example of exponential smoothing) may be updated to a more sophisticated statistical model (eg, a statistical model for time series).

[0195] The updated probability value can be obtained based on an error indicating an inconsistency between the obtained value for the binary number and the probability value associated with the binary number. The probability associated with a context model (e.g., a probability model) can be updated by taking into account past observed binary numbers and / or past errors, for example, as shown in Equation 3-55.

[0196] e=b–p (3-55)

[0197] As shown in equation 3-55, b may represent an observed binary value, and p may represent a model state (e.g., a non-quantized model state). The observed binary value may include an encoded binary value or a decoded binary value. In an example, p may be consistent with p in equation 3-54. The error of a previous state associated with a model (e.g., a context model) may be multiplied by a coefficient (e.g., a coefficient in equation 3-56) and may be added to a current probability state associated with the model. Such a statistical model for predicting a time series may be an ARMA model. In an example, the coefficient may be hard-coded and / or context-dependent (e.g., capable of being identified in a LUT).

[0198] In an example, the error e_n at the binary number b_n may be used to correct the probability state (eg, CABAC probability state), for example, as shown in Equation 3-56.

[0199] p_(n+1)=w*b_n+(1-w)*p_n+a*e_n (3-56)

[0200] In equation 3-56, parameter a may be a parameter (e.g., a parameter or coefficient learned offline) that depends on the slice type and / or context model (e.g., CABAC context). Parameter a may be learned offline. In an example, equation 3-56 may be determined based on equation 3-46 and an error term derived based on coefficients and errors of a previous state associated with the model.

[0201] In some examples, several previous errors may be used to correct the probability state, for example, as shown in Equation 3-57.

[0202] p_(n+1)=w*b_n+(1-w)*p_n+a_0*e_n+a_1*e_(n-1)+...+a_k*e_(nk)(3-57)

[0203] In an example, the running estimate of the error may be updated via exponential smoothing, eg, as shown in Equation 3-58.

[0204] q_n=b*e_(n-1)+(1-b)*q_(n-1) (3-58)

[0205] Here, parameter b may be a parameter that depends on the slice type and / or context model (e.g., CABAC context) (e.g., a parameter learned offline). In an example, parameter b may be hard-coded and / or context-dependent (e.g., identifiable in a LUT). The estimated value q_n may be (e.g., subsequently) used to correct the probability state (e.g., CABAC estimate), e.g., as shown in Equation 3-59.

[0206] p_(n+1)=w*b_n+(1-w)*p_n+a*q_n (3-59)

[0207] In some examples, the ARMA model can be used (e.g., contemplated) to process time series with continuous values. In some examples, a variant of the time series with discrete values ​​can be employed, which can be referred to as a new discrete autoregressive moving average (NDARMA) model. The continuous ARMA model can be intended to predict future values. The discrete ARMA model can predict a probability distribution over possible symbols.

[0208] In some examples, an indication (eg, a flag) may be coded to indicate a context model (eg, the type of CABAC model used), such as the CABAC model described herein. The indication may be signaled in a slice header or a picture header.

[0209] Decoding tools and techniques including, for example, one or more of entropy decoding, inverse quantization, inverse transform, and differential decoding (e.g., Figure 3exemplified) can be used to implement one or more examples as described herein in a decoder. For example, these decoding tools and techniques can be used to implement one or more of the following: obtain a binary value based on a probability value that has been updated based on a plurality of binary values; obtain a first value of a first binarized symbol associated with video data and obtain a second value of a second binarized symbol associated with the video data; obtain a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; decode the video data based on the probability value associated with the third binarized symbol; obtain a first continuous number of binarized symbols associated with a context for entropy decoding; A predetermined number of values; entropy decoding the first continuous number of binarized symbols based on the context probability value associated with the context; entropy decoding the second continuous number of binarized symbols based on the updated context probability value associated with the context; updating the context probability value based on the first continuous number of binarized symbols; obtaining a window size associated with the context; further obtaining the probability value associated with the third binarized symbol based on the window size; obtaining the probability value associated with the third binarized symbol based on a weighting factor; determining the weighting factor using the window size; obtaining the probability value associated with the third binarized symbol based on an error; the probability value of the first binary symbol, the error indicating an inconsistency between the obtained second value and the probability value associated with the second binary symbol; obtaining the second value of the second binary symbol before the probability value associated with the first binary symbol is updated; refraining from updating the probability value associated with the first binary symbol until the second value is obtained; obtaining the second value of the second binary symbol based on the same probability value associated with the first binary symbol; continuing to obtain a predetermined number of values ​​of a continuous number of binary symbols before updating the probability value associated with the first binary symbol; obtaining the second value of the second binary symbol before updating the probability value associated with the first binary symbol The invention relates to a method for determining a corresponding value of each binary symbol in the continuous number of binary symbols; using the same probability value to obtain the value of the continuous number of binary symbols; determining a probability measure based on the first value and the second value, and determining the probability value associated with the third binary symbol based on the probability measure; determining the probability measure based on the average value of the first value and the second value or the weighted average value of the first value and the second value; determining the weighted average value of the first value and the second value by assigning a greater weight to the second value than to the first value, and obtaining the probability value associated with the third binary symbol based on the weighted average value of the first value and the second value.

[0210] Coding tools and techniques including one or more of quantization, entropy coding, inverse quantization, inverse transform, and differential coding (e.g., Figure 2As illustrated) can be used to implement one or more examples as described herein in an encoder. For example, these encoding tools and techniques can be used to implement one or more of the following: obtain a binary value based on a probability value that has been updated based on multiple binary values; obtain a first value of a first binarized symbol associated with video data and obtain a second value of a second binarized symbol associated with the video data; obtain a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; encode the video data based on the probability value associated with the third binarized symbol; obtain a first continuous number of binarized symbols associated with a context for entropy encoding; A predetermined number of values; entropy encoding the first continuous number of binarized symbols based on the context probability value associated with the context; entropy encoding the second continuous number of binarized symbols based on the updated context probability value associated with the context; updating the context probability value based on the first continuous number of binarized symbols; obtaining a window size associated with the context; further obtaining the probability value associated with the third binarized symbol based on the window size; obtaining the probability value associated with the third binarized symbol based on a weighting factor; determining the weighting factor using the window size; obtaining the probability value associated with the third binarized symbol based on an error; the probability value of the first binary symbol, the error indicating an inconsistency between the obtained second value and the probability value associated with the second binary symbol; obtaining the second value of the second binary symbol before the probability value associated with the first binary symbol is updated; refraining from updating the probability value associated with the first binary symbol until the second value is obtained; obtaining the second value of the second binary symbol based on the same probability value associated with the first binary symbol; continuing to obtain a predetermined number of values ​​of a continuous number of binary symbols before updating the probability value associated with the first binary symbol; obtaining the second value of the second binary symbol before updating the probability value associated with the first binary symbol The invention relates to a method for determining a corresponding value of each binary symbol in the continuous number of binary symbols; using the same probability value to obtain the value of the continuous number of binary symbols; determining a probability measure based on the first value and the second value, and determining the probability value associated with the third binary symbol based on the probability measure; determining the probability measure based on the average value of the first value and the second value or the weighted average value of the first value and the second value; determining the weighted average value of the first value and the second value by assigning a greater weight to the second value than to the first value, and obtaining the probability value associated with the third binary symbol based on the weighted average value of the first value and the second value.

[0211] According to one or more of the examples described herein, a method, a process, an apparatus, a TV, a set-top box, a cellular phone, a tablet computer, a medium storing instructions, a medium storing data, a syntax element, a bit stream or a signal may be used to encode, decode, store, display, send and / or receive one or more of data. Although the features and elements are described above in a specific combination, it will be understood by a person of ordinary skill 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 incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (sent via a wired connection or a 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 built-in hard disks and removable disks), magneto-optical media, and optical media (such as CD-ROM disks and digital versatile disks (DVDs)). A processor associated with software may be used to implement a radio frequency transceiver for a WTRU, UE, terminal, base station, RNC, or any host computer.

Claims

1. A device for video decoding, the device comprising: A processor configured to: obtaining a first value of a first binarized symbol associated with the video data; obtaining a second value of a second binarized symbol associated with the video data; obtaining a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; as well as The video data is decoded based on the probability value associated with the third binarized symbol.

2. The apparatus according to claim 1, wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with a context for entropy decoding, the probability value associated with the first binarized symbol is a context probability value associated with the context, and the probability value associated with the third binarized symbol is an updated context probability value associated with the context. 3 . The apparatus according to claim 1 , wherein the second value is obtained before updating the probability value associated with the first binarized symbol.

4. The apparatus according to claim 1 , wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with a context for entropy decoding, wherein the processor is further configured to: A window size associated with the context is obtained, wherein the probability value associated with the third binarized symbol is further obtained based on the window size. The apparatus of claim 1 , wherein the first value of the first binarized symbol is for a syntax element. 6 . The apparatus according to claim 1 , wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are used for transform coefficients.

7. The apparatus according to claim 1 , wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with a method for using a context-based adaptive binarization. The video data is associated with an entropy decoding context using CABAC to decode the video data.

8. The apparatus of claim 1 , wherein the first value of the first binarized symbol is obtained based on the probability value associated with the first binarized symbol, and the processor is further configured to refrain from updating the probability value associated with the first binarized symbol until the second value of the second binarized symbol is obtained.

9. The apparatus of claim 1 , wherein the probability value associated with the third binarized symbol is obtained based further on an error, the error indicating an inconsistency between the obtained first value and the probability value associated with the first binarized symbol.

10. The apparatus of claim 1, wherein the probability value associated with the third binarized symbol is further obtained based on a weighting factor, wherein the weighting factor is determined based on a window size.

11. The apparatus according to claim 1 , wherein the processor is further configured to: continue to obtain a predetermined number of values ​​of a consecutive number of binarized symbols before updating the probability value associated with the first binarized symbol, wherein each binarized symbol in the consecutive number of binarized symbols is associated with a corresponding obtained value, and the second binarized symbol is one of the consecutive number of binarized symbols.

12. The apparatus according to claim 1 , wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with a context for entropy decoding, the probability value associated with the first binarized symbol is a first context probability value associated with the context, the probability value associated with the third binarized symbol is an updated context probability value associated with the context, and the processor is configured to: entropy decoding a predetermined number of values ​​of a first consecutive number of binarized symbols based on the first context probability value associated with the context, wherein the first binarized symbol and the second binarized symbol are part of the first consecutive number of binarized symbols; and A second consecutive number of binarized symbols are entropy decoded based on the updated context probability value associated with the context.

13. The apparatus of claim 1, wherein the processor is further configured to determine a probability measure based on the first value and the second value, and wherein the probability value associated with the third binarized symbol is determined based on the probability measure. 14 . The apparatus of claim 13 , wherein the probability measure is determined based on an average of the first value and the second value or a weighted average of the first value and the second value.

15. The apparatus according to claim 1 , wherein the first value is obtained at a first time, the second value is obtained at a second time, and the third value of the third binarized symbol is to be obtained at a third time, wherein the third time is closer in time to the second time than the first time, and wherein the processor is further configured to: determine a weighted average of the first value and the second value by assigning a greater weight to the second value than to the first value, and the probability value associated with the third binarized symbol is obtained based on the weighted average of the first value and the second value.

16. A device for video encoding, the device comprising: A processor configured to: obtaining a first value of a first binarized symbol associated with the video data; obtaining a second value of a second binarized symbol associated with the video data; obtaining a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; as well as The video data is encoded based on the probability value associated with the third binarized symbol.

17. The apparatus according to claim 16, wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with a context for entropy coding, the probability value associated with the first binarized symbol is a context probability value associated with the context, and the probability value associated with the third binarized symbol is an updated context probability value associated with the context.

18. The apparatus of claim 16, wherein the second value is obtained before updating the probability value associated with the first binarized symbol.

19. The apparatus of claim 16, wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with a context for entropy coding, wherein the processor is further configured to: A window size associated with the context is obtained, wherein the probability value associated with the third binarized symbol is further obtained based on the window size.

20. The apparatus of claim 16, wherein the first binarized symbol, the second binarized symbol, and the third binarized symbol are associated with an entropy coding context for encoding the video data using context-based adaptive binary arithmetic coding (CABAC).

21. The apparatus according to claim 16, wherein the processor is further configured to: continue to obtain a predetermined number of values ​​of a consecutive number of binarized symbols before updating the probability value associated with the first binarized symbol, wherein each binarized symbol in the consecutive number of binarized symbols is associated with a corresponding obtained value, and the second binarized symbol is one of the consecutive number of binarized symbols.

22. The apparatus of claim 16, wherein the processor is further configured to determine a probability measure based on the first value and the second value, and wherein the probability value associated with the third binarized symbol is determined based on the probability measure.

23. The apparatus of claim 22, wherein the probability measure is determined based on an average of the first value and the second value or a weighted average of the first value and the second value.

24. The apparatus according to claim 16, wherein the first value is obtained at a first time, the second value is obtained at a second time, and the third value of the third binarized symbol is to be obtained at a third time, wherein the third time is closer in time to the second time than the first time, and wherein the processor is further configured to: determine a weighted average of the first value and the second value by assigning a greater weight to the second value than to the first value, and the probability value associated with the third binarized symbol is obtained based on the weighted average of the first value and the second value.

25. A method for video decoding, the method comprising: obtaining a first value of a first binarized symbol associated with the video data; obtaining a second value of a second binarized symbol associated with the video data; obtaining a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; as well as The video data is decoded based on the probability value associated with the third binarized symbol.

26. The method according to claim 25, wherein the first binarized symbol, the second binarized symbol and the third binarized symbol are associated with a context for entropy decoding, the probability value associated with the first binarized symbol is a context probability value associated with the context, and the probability value associated with the third binarized symbol is an updated context probability value associated with the context.

27. The method of claim 25, wherein the second value is obtained before updating the probability value associated with the first binarized symbol.

28. A method for video encoding, the method comprising: obtaining a first value of a first binarized symbol associated with the video data; obtaining a second value of a second binarized symbol associated with the video data; obtaining a probability value associated with a third binarized symbol associated with the video data based on the first value, the second value, and the probability value associated with the first binarized symbol; as well as The video data is encoded based on the probability value associated with the third binarized symbol.

29. The method according to claim 28, wherein the first binarized symbol, the second binarized symbol and the third binarized symbol are associated with a context for entropy coding, the probability value associated with the first binarized symbol is a context probability value associated with the context, and the probability value associated with the third binarized symbol is an updated context probability value associated with the context.

30. A computer program product stored on a non-transitory computer readable medium and comprising program code instructions for implementing the steps of the method according to at least one of claims 25 to 29 when executed by at least one processor.

31. A computer program comprising program code instructions for implementing the steps of the method according to at least one of claims 25 to 29 when executed by a processor.

32. A bitstream comprising information representing an encoded output generated by a method according to any one of claims 28 to 29.