Analog modulated video transmission with variable symbol rate
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- QUALCOMM INC
- Filing Date
- 2021-11-01
- Publication Date
- 2026-06-19
Smart Images

Figure CN116636222B_ABST
Abstract
Description
[0001] This application claims priority to U.S. Patent Application No. 17 / 137,080, filed December 29, 2020, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This disclosure pertains to video encoding and decoding. Background Technology
[0003] The ability to send and receive high-quality video data is one of the powerful use cases for deploying advanced wireless networks, such as fifth-generation (5G) wireless networks. For example, 5G wireless networks, as well as others, can enable high-quality video streaming for live events, teleconferences, and more. In some cases, user equipment can encode the video data and then use a radio system to transmit the encoded video data to a wireless base station. The wireless base station can then route the encoded video data to the destination device via a network such as the Internet.
[0004] Even with the high bandwidth capabilities of advanced wireless networks, devices may still need to encode video data before transmitting it. However, modern video decoding standards can involve considerable power consumption, which is limited in mobile devices such as smartphones and tablets. Summary of the Invention
[0005] This disclosure describes techniques for encoding and decoding video data. As described herein, a video encoder can perform hybrid digital-to-analog modulation (HDM) for the transmission of video data. When performing HDM for video data transmission, the video encoder can transmit both digital data and analog signals. The video decoder uses both digital data and analog signals to reconstruct the video data. The use of HDM can provide compression for video data while potentially using less power or other resources than a digital video codec.
[0006] In one example, this disclosure describes a method for encoding video data, the method comprising: generating coefficients based on the video data; generating coefficient vectors, wherein each coefficient vector includes n coefficients; for each coefficient vector, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; modulating an analog signal based on the amplitude value for the coefficient vectors; and outputting the analog signal.
[0007] In another example, this disclosure describes a method for decoding video data, the method comprising: determining amplitude values for a plurality of coefficient vectors based on an analog signal; for each of the coefficient vectors, determining coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generating the video data based on the coefficients in the coefficient vectors.
[0008] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: one or more processors implemented in a circuit, the one or more processors being configured to: generate coefficients based on the video data; generate coefficient vectors, wherein each coefficient vector includes n coefficients; and for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a modem configured to modulate an analog signal based on the amplitude value for the coefficient vectors.
[0009] In another example, this disclosure describes an apparatus for decoding video data, the apparatus comprising: a modem configured to receive an analog signal; and one or more processors implemented in a circuit, the processors being configured to: determine amplitude values for a plurality of coefficient vectors based on the analog signal; for each of the coefficient vectors, determine coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each of the plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate video data based on the coefficients in the coefficient vectors.
[0010] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: a unit for generating coefficients based on the video data; a unit for generating coefficient vectors, wherein each coefficient vector includes n coefficients; a unit for determining an amplitude value for each coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a unit for modulating an analog signal based on the amplitude value for the coefficient vectors.
[0011] In another example, this disclosure describes an apparatus for decoding video data, the apparatus comprising: a unit for determining amplitude values for a plurality of coefficient vectors based on an analog signal; a unit for determining coefficients in the coefficient vectors for each coefficient vector based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector in the plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value in the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value in the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a unit for generating video data based on the coefficients in the coefficient vectors.
[0012] In another example, this disclosure describes a computer-readable data storage medium having instructions stored thereon, which, when executed, cause one or more processors to: generate coefficients based on video data; generate coefficient vectors, wherein each coefficient vector includes n coefficients; for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and modulate an analog signal based on the amplitude value for the coefficient vectors.
[0013] In another example, this disclosure describes a computer-readable data storage medium having instructions stored thereon, which, when executed, cause one or more processors to: determine amplitude values for a plurality of coefficient vectors based on an analog signal; for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude value for the coefficient vector and a mapping pattern, wherein, for each of the plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate video data based on the coefficients in the coefficient vectors.
[0014] In another example, this disclosure describes a method for encoding video data, the method comprising: generating coefficients based on digital sample values of the video data; determining the spectral efficiency of a channel on which an analog signal is to be transmitted; determining a value n based on the spectral efficiency of the channel; generating a coefficient vector, wherein each coefficient vector includes n coefficients; for each coefficient vector, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; modulating the analog signal based on the amplitude value for the coefficient vector; and outputting the analog signal on the channel.
[0015] In another example, this disclosure describes a method for decoding video data, the method comprising: receiving an analog signal transmitted via a channel; demodulating the analog signal to determine amplitude values for a plurality of coefficient vectors; determining a value n, wherein the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determining coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generating the video data based on the coefficients in the coefficient vectors.
[0016] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: a memory configured to store the video data; one or more processors implemented in a circuit, the processors being configured to: generate coefficients based on digital sample values of the video data; determine the spectral efficiency of a channel on which an analog signal is to be output; determine a value n based on the spectral efficiency of the channel; generate a coefficient vector, wherein each coefficient vector includes n coefficients; for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and modulate the analog signal based on the amplitude value for the coefficient vector; and a modem configured to output the analog signal on the channel.
[0017] In another example, this disclosure describes an apparatus for decoding video data, the apparatus comprising: a modem configured to receive an analog signal transmitted via a channel; one or more processors implemented in a circuit, the processors being configured to: demodulate the analog signal to determine amplitude values for a plurality of coefficient vectors; determine a value n, wherein the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each of the plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate the video data based on the coefficients in the coefficient vectors.
[0018] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: units for generating coefficients based on digital sample values of the video data; units for determining the spectral efficiency of a channel on which an analog signal is to be output; units for determining a value n based on the spectral efficiency of the channel; units for generating coefficient vectors, wherein each coefficient vector includes n coefficients; units for determining an amplitude value for each coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; units for modulating the analog signal based on the amplitude value for the coefficient vectors; and units for outputting the analog signal on the channel.
[0019] In another example, this disclosure describes an apparatus for decoding video data, the apparatus comprising: a unit for receiving an analog signal transmitted via a channel; a unit for demodulating the analog signal to determine amplitude values for a plurality of coefficient vectors; a unit for determining a value n, wherein the value n is based on the spectral efficiency of the channel; a unit for determining coefficients in the coefficient vectors for each coefficient vector based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector in the plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value in the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value in the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a unit for generating the video data based on the coefficients in the coefficient vectors.
[0020] In another example, this disclosure describes a computer-readable data storage medium having instructions stored thereon that, when executed, cause one or more processors to: generate coefficients based on digital sample values of video data; determine the spectral efficiency of a channel on which an analog signal is to be output; determine a value n based on the spectral efficiency of the channel; generate a coefficient vector, wherein each coefficient vector includes n coefficients; for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; modulate the analog signal based on the amplitude value for the coefficient vector; and output the analog signal on the channel.
[0021] In another example, this disclosure describes a computer-readable data storage medium having instructions stored thereon that, when executed, cause one or more processors to: receive an analog signal transmitted via a channel; demodulate the analog signal to determine amplitude values for a plurality of coefficient vectors; determine a value n, wherein the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude values for the coefficient vector and a mapping pattern, wherein, for each of the plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate video data based on the coefficients in the coefficient vectors.
[0022] In another example, this disclosure describes a method for encoding video data, the method comprising: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values of the video data; generating coefficients based on the residual data; performing an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; generating digital values based on the prediction data; and outputting one or more analog signals modulated based on the interleaved amplitude values and the digital values.
[0023] In another example, this disclosure describes a method for decoding video data, the method comprising: determining an interleaved amplitude value based on an analog signal; performing a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude value; generating residual data based on the two or more coefficients; obtaining digital values; generating prediction data based on the digital values; and reconstructing the video data based on the prediction data and the residual data.
[0024] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: a memory configured to store the video data; one or more processors implemented in a circuit, the processors being configured to: generate prediction data for the video data; generate residual data based on the prediction data and digital sample values of the video data; generate coefficients based on the residual data; perform an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; and generate digital values based on the prediction data; and a modem configured to output one or more analog signals modulated based on the interleaved amplitude values and the digital values.
[0025] In another example, this disclosure describes an apparatus for decoding video data, the apparatus comprising: a modem configured to acquire an analog signal and digital values; and one or more processors implemented in a circuit, the processors being configured to: determine interleaved amplitude values based on the analog signal; perform a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude values; generate residual data based on the two or more coefficients; acquire digital values; generate prediction data based on the digital values; and reconstruct the video data based on the prediction data and the residual data.
[0026] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: units for generating prediction data for the video data; units for generating residual data based on the prediction data and digital sample values of the video data; units for generating coefficients based on the residual data; units for performing an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; units for modulating an analog signal based on the interleaved amplitude values; units for generating digital values based on the prediction data; and units for outputting the analog signal and the digital values based on the prediction blocks.
[0027] In another example, this disclosure describes an apparatus for decoding video data, the apparatus comprising: a unit for determining interleaved amplitude values based on an analog signal; a unit for performing a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude values; a unit for generating residual data based on the two or more coefficients; a unit for obtaining digital values; a unit for generating prediction data based on the digital values; and a unit for reconstructing the video data based on the prediction data and the residual data.
[0028] In another example, this disclosure describes a computer-readable data storage medium having instructions stored thereon that, when executed, cause one or more processors to: generate prediction data for video data; generate residual data based on the prediction data and digital sample values of the video data; generate coefficients based on the residual data; perform an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; modulate an analog signal based on the interleaved amplitude values; generate digital values based on the prediction data; and output the analog signal and the digital values based on the prediction blocks.
[0029] In another example, this disclosure describes a computer-readable data storage medium having instructions stored thereon that, when executed, cause one or more processors to: determine an interleaved amplitude value based on an analog signal; perform a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude value; generate residual data based on the two or more coefficients; obtain digital values; generate prediction data based on the digital values; and reconstruct the video data based on the prediction data and the residual data.
[0030] Details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims. Attached Figure Description
[0031] Figure 1 This is a block diagram illustrating an example encoding and decoding system that can perform the techniques described in this disclosure.
[0032] Figure 2 This is a block diagram illustrating an example video encoder based on one or more technologies according to this disclosure.
[0033] Figure 3 This is a block diagram illustrating an example video decoder based on one or more technologies according to this disclosure.
[0034] Figure 4 This is a block diagram illustrating an example modem based on one or more technologies according to this disclosure.
[0035] Figure 5 This is an example constellation diagram for analog modulation in the IQ domain.
[0036] Figure 6 This is a conceptual diagram illustrating the reception error during analog modulation transmission.
[0037] Figure 7 This is a conceptual diagram illustrating an example of data sign decoding according to one or more techniques based on this disclosure.
[0038] Figure 8 This is a conceptual diagram illustrating an example of minimum value decoding according to one or more techniques based on this disclosure.
[0039] Figure 9 This is a conceptual diagram illustrating an example mapping pattern of one or more technologies according to this disclosure.
[0040] Figure 10 This illustrates one or more technologies based on this disclosure. Figure 9 A conceptual diagram of the amplitude values corresponding to the mapping pattern.
[0041] Figure 11 This is a conceptual diagram illustrating another example mapping pattern of one or more technologies according to this disclosure.
[0042] Figure 12 This illustrates one or more technologies based on this disclosure. Figure 11 A conceptual diagram of the amplitude values corresponding to the mapping pattern.
[0043] Figure 13This is a conceptual diagram illustrating another example mapping pattern of one or more technologies according to this disclosure.
[0044] Figure 14 This illustrates one or more technologies based on this disclosure. Figure 13 A conceptual diagram of the amplitude values corresponding to the mapping pattern.
[0045] Figure 15 This is a conceptual diagram illustrating an example three-dimensional mapping pattern based on one or more techniques according to this disclosure.
[0046] Figure 16 This is a flowchart illustrating an example method for encoding video data according to one or more techniques based on this disclosure.
[0047] Figure 17 This is a flowchart illustrating an example method for decoding video data using one or more techniques according to this disclosure.
[0048] Figure 18 This is a conceptual diagram illustrating a first example of the interweaving of one or more technologies according to this disclosure.
[0049] Figure 19 This is a conceptual diagram illustrating a second example of the interweaving of one or more technologies according to this disclosure.
[0050] Figure 20 This is a block diagram illustrating an example of the impact of noise on the decoding process.
[0051] Figure 21 This is a conceptual diagram illustrating the gap range of one or more technologies according to this disclosure.
[0052] Figure 22 This is a flowchart illustrating an example method for encoding video data according to one or more techniques based on this disclosure.
[0053] Figure 23 This is a flowchart illustrating an example method for decoding video data using one or more techniques according to this disclosure.
[0054] Figure 24 This is a block diagram illustrating an example simulated compression unit using a variable symbol rate according to one or more techniques of this disclosure.
[0055] Figure 25 This is a flowchart illustrating an example method for encoding video data according to one or more techniques based on this disclosure.
[0056] Figure 26This is a flowchart illustrating an example method for decoding video data using one or more techniques according to this disclosure. Detailed Implementation
[0057] As mentioned above, the ability to send and receive high-quality video data is one of the powerful use cases for deploying advanced wireless networks, such as fifth-generation (5G) wireless networks. However, encoding video data using state-of-the-art video codecs such as H.264 / Advanced Video Decoding and H.265 / High-Efficiency Video Decoding (HEVC) can be resource-intensive and therefore involve a considerable amount of power consumption. This disclosure describes techniques for encoding video data that can be less resource-intensive.
[0058] This disclosure describes a hybrid digital-to-analog modulation system for decoding video data. As described herein, a video encoder can generate coefficients based on video data. Furthermore, the video encoder can generate coefficient vectors. Each coefficient vector comprises n coefficients. For each coefficient vector, the video encoder can determine an amplitude value for the coefficient vector based on a mapping pattern. The mapping pattern maps each permitted coefficient vector to a unique amplitude value that is adjacent to at least one other amplitude value in n-dimensional space, which is also adjacent to the unique amplitude value on a monotonic number line (e.g., a number line of natural numbers, non-negative integers, integer values, etc.). The video encoder can modulate an analog signal based on the amplitude values used for the coefficient vectors.
[0059] The corresponding video decoder can perform analog amplitude demodulation and determine the amplitude values for multiple coefficient vectors based on the analog signal. For each coefficient vector, the video decoder can determine the coefficients in the coefficient vector based on the amplitude value used for the coefficient vector and a mapping pattern. The mapping pattern maps each allowed coefficient vector to a unique amplitude value that is adjacent to at least one other amplitude value in n-dimensional space, which is adjacent to the unique amplitude value on the monotonic number axis of the amplitude values. Each coefficient vector can include n coefficients. The video decoder can generate video data based on the coefficients in the coefficient vector. The use of this mapping pattern can provide compression when transmitting data in analog signals. Furthermore, compared to video codecs such as H.264 / Advanced Video Decoding and H.264 / HEVC, using analog amplitude modulation and demodulation can reduce power and resource consumption.
[0060] Figure 1This is a block diagram illustrating an example video encoding and decoding system 100 capable of performing the techniques of this disclosure. In summary, the techniques of this disclosure relate to decoding (encoding and / or decoding) video data. Typically, video data includes any data used for processing video. Therefore, video data can include raw, unencoded video, encoded video, decoded (e.g., reconstructed) video, and video metadata (e.g., signaling data).
[0061] like Figure 1 As shown, in this example, system 100 includes source device 102, which provides encoded video data to be decoded and displayed by destination device 116. Specifically, source device 102 provides the video data to destination device 116 via computer-readable medium 110. Source device 102 and destination device 116 can include any of a wide variety of devices, including desktop computers, laptop computers, tablet computers, set-top boxes, modular devices (e.g., mobile phones such as smartphones, tablet computers, etc.), televisions, cameras, display devices, digital media players, video game consoles, video streaming devices, broadcast receiver devices, set-top boxes, etc. In some cases, source device 102 and destination device 116 may be equipped for wireless communication and may therefore be referred to as wireless communication devices.
[0062] exist Figure 1 In the example, source device 102 includes a video source 104, memory 106, video encoder 200, and modem 108. Destination device 116 includes modem 122, video decoder 300, memory 120, and display device 118. According to this disclosure, the video encoder 200 of source device 102 and the video decoder 300 of destination device 116 can be configured to perform mixed digital-to-analog modulation for video transmission. Source device 102 represents an example of a video encoding device, while destination device 116 represents an example of a video decoding device. In other examples, the source and destination devices may include other components or arrangements. For example, source device 102 may receive video data from an external video source such as an external camera. Similarly, destination device 116 may interface with an external display device instead of including an integrated display device.
[0063] like Figure 1The system 100 shown is merely an example. Typically, any digital video encoding and / or decoding device can perform the mixed digital-to-analog modulation techniques of this disclosure for video transmission. Source device 102 and destination device 116 are merely examples of such decoding devices, wherein source device 102 generates encoded video data for transmission to destination device 116. In this disclosure, "decoding device" refers to a device that performs the decoding (e.g., encoding and / or decoding) of data. Thus, video encoder 200 and video decoder 300 represent examples of decoding devices (specifically, video encoder and video decoder). In some examples, source device 102 and destination device 116 may operate in a substantially symmetrical manner, such that each of source device 102 and destination device 116 includes video encoding and decoding components. Therefore, system 100 can support unidirectional or bidirectional video transmission between source device 102 and destination device 116, for example, for video streaming, video playback, video broadcasting, or video telephony.
[0064] Typically, video source 104 represents a source of video data (i.e., raw, unencoded video data) and provides a sequential series of pictures (also referred to as “frames”) of the video data to video encoder 200, which encodes the data for the pictures. Video source 104 of source device 102 may include video capture devices such as cameras, video archive units containing previously captured raw video, and / or video feed interfaces for receiving video from video content providers. Alternatively, video source 104 may generate computer graphics-based data as source video, or a combination of live video, archived video, and computer-generated video. In each case, video encoder 200 encodes the captured, pre-captured, or computer-generated video data. Video encoder 200 may rearrange the pictures from the received order (sometimes referred to as “display order”) to a decoding order for decoding. Source device 102 may then output the encoded video data via modem 108 to computer-readable medium 110 for reception and / or acquisition by modem 122 of destination device 116, for example.
[0065] The memory 106 of source device 102 and the memory 120 of destination device 116 represent general-purpose memory. In some examples, memories 106 and 120 may store raw video data, such as raw video from video source 104 and raw decoded video data from video decoder 300. Alternatively, memories 106 and 120 may store software instructions executable by, for example, video encoder 200 and video decoder 300. Although memories 106 and 120 are shown separately from video encoder 200 and video decoder 300 in this example, it should be understood that video encoder 200 and video decoder 300 may also include internal memory for functionally similar or equivalent purposes. Furthermore, memories 106 and 120 may store, for example, encoded video data output from video encoder 200 and input to video decoder 300. In some examples, portions of memories 106 and 120 may be allocated as one or more video buffers, for example, to store raw decoded and / or encoded video data.
[0066] Computer-readable medium 110 can represent any type of medium or device capable of transmitting encoded video data from source device 102 to destination device 116. In one example, computer-readable medium 110 represents a communication medium that enables source device 102 to directly transmit encoded video data to destination device 116 in real time, for example, via a radio frequency network or a computer-based network. Modem 108 can modulate the transmitted signal including the encoded video data according to a communication standard such as a wireless communication protocol, and modem 122 can demodulate the received transmitted signal according to a communication standard such as a wireless communication protocol. The communication medium can include any wireless or wired communication medium, such as radio frequency (RF) spectrum or one or more physical transmission lines. For example, the communication medium can include one or more 5G wireless communication links. The communication medium can form part of a packet-based network such as a local area network, a wide area network, or a global network such as the Internet. The communication medium can include a router, a switch, a base station, or any other device that may be useful for facilitating communication from source device 102 to destination device 116.
[0067] In some examples, computer-readable medium 110 may include storage device 112. Source device 102 may output encoded data from modem 108 to storage device 112. Similarly, destination device 116 may access encoded data from storage device 112 via modem 122. Storage device 112 may include any of a variety of distributed or locally accessed data storage media, such as hard disk drives, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded video data.
[0068] In some examples, computer-readable medium 110 may include file server 114 or another intermediate storage device that can store encoded video data generated by source device 102. Source device 102 may output encoded video data to file server 114 or another intermediate storage device that can store encoded video generated by source device 102. Destination device 116 may access the stored video data from file server 114 via streaming or downloading. File server 114 may be any type of server device capable of storing encoded video data and sending such encoded video data to destination device 116. File server 114 may represent a web server (e.g., for a website), a file transfer protocol (FTP) server, a content delivery network device, or a network attached storage (NAS) device. Destination device 116 may access the encoded video data from file server 114 via any standard data connection (including an Internet connection). This may include a wireless channel (e.g., Wi-Fi connection), a wired connection (e.g., Digital Subscriber Line (DSL), cable modem, etc.), or a combination of both, suitable for accessing encoded video data stored on file server 114. File server 114 and modem 122 can be configured to operate according to streaming protocols, download protocols, or a combination thereof.
[0069] Modem 108 and modem 122 can represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to any of the various IEEE 802.11 standards, or other physical components. In examples where modem 108 and modem 122 include wireless components, modem 108 and modem 122 can be configured to transmit data (such as encoded video data) according to cellular communication standards (such as fourth generation (4G), 4G-LTE (Long Term Evolution), improved LTE, 5G, etc.). In some examples where modem 108 includes a wireless transmitter, modem 108 and modem 122 can be configured to operate according to other wireless standards (such as the IEEE 802.11 specification, the IEEE 802.15 specification (e.g., ZigBee)). TM Bluetooth TM The source device 102 and / or destination device 116 may include corresponding system-on-a-chip (SoC) devices. For example, source device 102 may include an SoC device for performing the functions assigned to video encoder 200 and / or modem 108, and destination device 116 may include an SoC device for performing the functions assigned to video decoder 300 and / or modem 122.
[0070] The technology disclosed herein can be applied to video decoding to support any of a variety of multimedia applications, such as over-the-air television broadcasting, cable television transmission, satellite television transmission, internet streaming video transmission (such as HTTP-based Dynamic Adaptive Streaming (DASH)), digital video encoded onto data storage media, decoding digital video stored on data storage media, or other applications.
[0071] The modem 122 of the destination device 116 receives encoded video data from a computer-readable medium 110 (e.g., a communication medium, storage device 112, file server 114, etc.). The encoded video data may include signaling information defined by the video encoder 200, such as syntax elements (which are also used by the video decoder 300), having values describing the characteristics and / or processing of video blocks or other decoding units (e.g., slices, pictures, picture groups, sequences, etc.). The display device 118 displays a decoded image of the decoded video data to the user. The display device 118 may represent any of a variety of display devices, such as a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or another type of display device.
[0072] Despite Figure 1 Not shown, but in some examples, the video encoder 200 and video decoder 300 may each be integrated with the audio encoder and / or audio decoder, and may include appropriate MUX-DEMUX units or other hardware and / or software to process multiplexed streams of both audio and video in a common data stream. Where applicable, the MUX-DEMUX unit may comply with the ITU H.223 multiplexer protocol or other protocols (such as User Datagram Protocol (UDP)).
[0073] The video encoder 200 and video decoder 300 can each be implemented as any of a variety of suitable encoder and / or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the technology is implemented in part in software, the device may store instructions for the software in a suitable non-transitory computer-readable medium and use one or more processors to execute the instructions in hardware to perform the technology of this disclosure. Each of the video encoder 200 and video decoder 300 may be included in one or more encoders or decoders, and either encoder or decoder may be integrated as part of a combined encoder / decoder (CODEC) in the respective device. Devices including the video encoder 200 and / or video decoder 300 may include integrated circuits, microprocessors, and / or wireless communication devices (such as cellular phones).
[0074] Typically, video encoder 200 and video decoder 300 decode video data represented as an array of digital sample values. Each digital sample value can be a value of a color component in a color decoding format such as YUV (e.g., Y, Cb, Cr) format, red, green, blue (RGB) format, hue saturation value (HSV) format, or other types of color formats. In some examples, video encoder 200 converts data formatted in a first color format to a second color format before encoding, and video decoder 300 converts data in the second color format back to the first color format. Alternatively, preprocessing and post-processing units (not shown) can perform these conversions.
[0075] In general, this disclosure may refer to the decoding of an image (e.g., encoding and decoding) as a process that includes encoding or decoding data of the image. Similarly, this disclosure may refer to the decoding of blocks of an image as a process that includes encoding or decoding data used for the blocks, such as prediction and / or residual decoding.
[0076] According to the technology of this disclosure, video encoder 200 can encode video data using hybrid digital-to-analog modulation. As described herein, video encoder 200 can generate coefficients based on video data. That is, video encoder 200 can generate coefficients based on an array of digital sample values of video data. In some examples, as part of generating coefficients, video encoder 200 can generate prediction data based on video data (e.g., a picture based on video data). Prediction data can be an approximation of video data containing digital sample values (e.g., an approximation of a picture of video data). Video encoder 200 can quantize and entropy-encode the digital sample values. Modem 108 can transmit the entropy-encoded digital sample values. Furthermore, as part of generating coefficients, video encoder 200 can generate residual data based on the prediction data and the original video data. For example, residual data can include residual values indicating the difference between the digital sample values of the prediction data and the corresponding digital sample values of the video data. Furthermore, video encoder 200 can apply a binarization process to convert the residual values into coefficients. In some examples, video encoder 200 can then quantize the coefficients.
[0077] The video encoder 200 can use coefficients to generate coefficient vectors. Each coefficient vector can include n coefficients, where n is an integer value (e.g., an integer greater than 1). In some examples, the coefficient vector can consist of consecutive coefficients from a coefficient block. In some examples, the video encoder 200 can determine the value of n based on the spectral efficiency of the channel.
[0078] For each coefficient vector in the coefficient vector, the video encoder 200 can determine the amplitude value for the coefficient vector based on a mapping pattern. The mapping pattern maps each allowed coefficient vector to a unique amplitude value a1, where amplitude value a1 is adjacent to amplitude value a2 in n-dimensional space and adjacent to amplitude value a2 on the monotonic number axis of amplitude values. Example mapping patterns may include S-Snake mapping, M-Snake mapping, MS-Sake mapping, etc., as described in more detail below. In some examples, instead of determining the amplitude value for the coefficient vector, the video encoder 200 may perform an interleaving process to generate the amplitude value by interleaving the bits of two or more coefficients.
[0079] Furthermore, the video encoder 200 can modulate analog signals based on amplitude values. For example, the video encoder 200 can convert a set of one or more amplitude values into analog symbols. Analog symbols can be a combination of phase shift and power (i.e., amplitude). The video encoder 200 can set the phase shift and power of symbol sampling instances of an analog signal based on the analog symbols.
[0080] Video decoder 300 can perform decoding processes that are generally reciprocal to the encoding processes performed by video encoder 200. For example, video decoder 300 can determine amplitude values based on analog signals. In some examples, video decoder 300 can also obtain entropy-encoded digital sample values of the prediction data. Video decoder 300 can entropy decode and dequantize the entropy-encoded digital sample values to determine the digital sample values of the prediction data. In some examples, for each coefficient vector in the coefficient vector, video decoder 300 can determine the coefficients in the coefficient vector based on the amplitude values used for the coefficient vector and a mapping pattern. The mapping pattern used by video decoder 300 can be the same as the mapping pattern used by video encoder 200. Thus, the mapping pattern maps each allowed coefficient vector to a unique amplitude value that is adjacent to at least one other amplitude value in n-dimensional space that is adjacent to the unique amplitude value on the monotonic number axis of the amplitude values. Each coefficient vector in the coefficient vector includes n coefficients. In some examples, the value n can be determined based on the spectral efficiency of the channel. In addition, in some examples, instead of using a mapping mode, the video decoder 300 can perform a deinterleaving process that deinterleaves the bits of two or more coefficients from the amplitude values.
[0081] Furthermore, the video decoder 300 can generate video data based on the coefficients in the coefficient vector. For example, the video decoder 300 can dequantize the coefficients in the coefficient vector and apply a debinarization process to the dequantized coefficients to generate digital sample values. The video decoder 300 can reconstruct video data based on the digital sample values generated according to the coefficients and the digital sample values of the prediction block. For example, the video decoder 300 can add the digital sample values generated according to the coefficients to the corresponding digital sample values of the prediction block to generate video data. Encoding and decoding video data in this way can provide compression of the video data without using as many computational resources as other video codecs (such as H.264 / AVC and H.265 / HEVC).
[0082] Figure 2 This is a block diagram illustrating an example video encoder 200 according to one or more technologies in accordance with this disclosure. Figure 2 This is provided for illustrative purposes and should not be considered a limitation on the techniques extensively illustrated and described in this disclosure. Figure 2 In the example, the video encoder 200 includes a video data storage 202, a prediction unit 204, a quantization unit 206, an entropy coding unit 208, a buffer 210, a residual generation unit 212, and an analog compression unit 214. Figure 2In the example, analog compression unit 214 includes binarization unit 216, quantization unit 218, packing unit 220, and analog modulation unit 222. Any or all of the video data memory 202, prediction unit 204, quantization unit 206, entropy coding unit 208, buffer 210, residual generation unit 212, and analog compression unit 214 (including binarization unit 216, quantization unit 218, packing unit 220, and analog modulation unit 222) can be implemented in one or more processors or in processing circuitry. For example, units of video encoder 200 can be implemented as one or more circuit or logic elements as part of hardware circuitry, or as part of a processor, ASIC, or FPGA. Furthermore, video encoder 200 may include additional or alternative processors or processing circuitry to perform these and other functions.
[0083] The video data storage device 202 can store video data to be encoded by the components of the video encoder 200. The video encoder 200 can obtain data from, for example, a video source 104 (…). Figure 1 The system receives video data stored in video data memory 202. Video data memory 202 and buffer 210 can be formed from any of a variety of memory devices, such as dynamic random access memory (DRAM) (including synchronous DRAM (SDRAM)), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. Video data memory 202 and buffer 210 can be provided by the same memory device or separate memory devices. In various examples, video data memory 202 can be on-chip (as shown) with other components of video encoder 200, or off-chip relative to those components.
[0084] In this disclosure, references to video data memory 202 should not be construed as limited to memory within video encoder 200 (unless specifically described otherwise), or to memory outside video encoder 200 (unless specifically described otherwise). Rather, references to video data memory 202 should be understood as reference memory storing video data received by video encoder 200 for encoding (e.g., video data for the current block to be encoded). Figure 1 The memory 106 can also provide temporary storage for the outputs from the various units of the video encoder 200.
[0085] Explanation Figure 2The various units help to understand the operations performed by the video encoder 200. Units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Fixed-function circuits refer to circuits that provide a specific function and are pre-configured regarding the operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functionality in terms of the operations that can be performed. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is generally immutable. In some examples, one or more units in the unit may be different circuit blocks (fixed-function or programmable), and in some examples, one or more units in the unit may be integrated circuits.
[0086] The video encoder 200 may include an arithmetic logic unit (ALU), an essential function unit (EFU), digital circuitry, analog circuitry, and / or a programmable core, all formed by programmable circuitry. In an example where software executed by programmable circuitry is used to perform the operation of the video encoder 200, memory 106 ( Figure 1 The video encoder 200 may store instructions (e.g., object code) of the software received and executed by the video encoder 200, or another memory (not shown) within the video encoder 200 may store such instructions. The video data memory 202 is configured to store the received video data.
[0087] exist Figure 2 In the example, video data storage 202 can receive and store video data. Prediction unit 204 can generate prediction data based on the video data. The prediction data includes digital sample values. In some examples, the prediction data may be a coarse image description, which may also be referred to as an "image approximation." The coarse image description can typically be transmitted along with data packets of small size. Video decoder 300 can use the data in such data packets to reconstruct a low-resolution image. Modem 108 can transmit data packets using a conventional 5G digital data multiplexing and channel decoding scheme or another digital data multiplexing and channel decoding scheme.
[0088] Prediction unit 204 can generate prediction data in one of a variety of ways. For example, in some examples, prediction unit 204 can generate digital sample values for prediction data by determining the average of digital sample values in each two-dimensional group (i.e., block) of digital sample values in the image of the original video data. For the purpose of determining residual data, residual generation unit 212 can assume that each sample value in the block is equal to the average. However, only the average value used for the block is passed to quantization unit 206. In another example, prediction unit 204 can generate prediction data by determining the digital sample value of the top-left pixel or center pixel of each block in the image and discarding the remaining sample values. For the purpose of determining residual data, residual generation unit 212 can assume that each sample value in the block is equal to the determined digital sample value. However, only the determined sample value is passed to quantization unit 206. Therefore, the number of digital sample values passed to quantization unit 206 can be significantly less than the number of digital sample values in the image.
[0089] Quantization unit 206 can apply a quantization process to generate quantized digital sample values based on the prediction data generated by prediction unit 204. Quantization generally refers to the process of quantizing digital sample values (such as digital sample values in the prediction data) to potentially reduce the amount of data used to represent the digital sample values, thereby providing further compression. By performing quantization, quantization unit 206 can reduce the bit depth associated with some or all of the sample values in the digital sample values. For example, quantization unit 206 can round an n-bit digital sample value down to an m-bit digital sample value during quantization, where n is greater than m. In some examples, to perform quantization, quantization unit 204 can perform a bitwise right shift of the value to be quantized.
[0090] Entropy coding unit 208 can then perform entropy coding on the quantized digital sample values. For example, entropy coding unit 208 can perform various types of entropy coding processes, such as context-adaptive binary arithmetic decoding (CABAC), context-adaptive variable-length decoding (CAVLC), variable-to-variable (V2V) length coding, syntax-based context-adaptive binary arithmetic decoding (SBAC), probability interval partitioning entropy (PIPE) coding, exponential Golomb coding, or another type of entropy coding process. Buffer 210 can store the entropy-coded quantized digital sample values.
[0091] In addition, Figure 2 In the example, the residual generation unit 212 generates residual data based on the digital sample values of the predicted data and the digital sample values of the original video data. For example, the residual generation unit 212 can subtract the digital sample values of the predicted data from the corresponding digital sample values of the original video data to generate residual data.
[0092] The analog compression unit 214 modulates the analog signal based on residual data. Figure 2 In the example, the binarization unit 216 of the simulation compression unit 214 converts the residual data into coefficients. The coefficients can be binary values. In some examples, the binarization unit 216 applies a transformation to the residual data to generate coefficients. For example, in one example, the binarization unit 216 may apply a transformation (e.g., a discrete cosine transform (DCT), discrete sine transform (DST), or other types of transformation) to the residual data to generate coefficients.
[0093] The quantization unit 218 of the analog compression unit 214 can apply a quantization process to the coefficients. The quantization process can reduce the number of bits used to represent the coefficients. In some examples, the quantization unit 218 can perform the quantization process by shifting the binary representation of the coefficients to the right by a specific number of positions. In other examples, coefficients can be generated in other ways. For example, the video encoder 200 can generate coefficients without applying a quantization process.
[0094] According to some examples of this disclosure, the packing unit 220 of the simulation compression unit 214 generates coefficient vectors. Each coefficient vector in the coefficient vectors includes n coefficients. For each coefficient vector in the coefficient vectors, the packing unit 220 determines the amplitude value for the coefficient vector based on a mapping pattern. As described in more detail elsewhere in this disclosure, the amplitude value may indicate the amplitude of the I component or the Q component in the in-phase (I)-quadrature (Q) domain. As described in more detail elsewhere in this disclosure, the mapping pattern may map each permitted coefficient vector to a unique amplitude value that is adjacent to at least one other amplitude value in n-dimensional space, which is adjacent to the unique amplitude value on a monotonic number line of amplitude values. The monotonic number line is a sequence of values that is always increasing or always decreasing. The values on the number line may be equally spaced or unequally spaced. A permitted coefficient vector includes any vector of n coefficients, wherein each coefficient within the vector is restricted to a predefined set of permitted values for that coefficient. In some examples, the packing unit 220 determines n based on the spectral efficiency of the channel. In some examples, the packing unit 220 performs an interleaving process on bits of two or more coefficients to form an amplitude value.
[0095] Analog modulation unit 222 can modulate analog signals based on amplitude values. In some examples, as part of modulating the analog signal, analog modulation unit 222 can determine analog symbols based on one or more amplitude values. In some examples, analog symbols are continuous; for example, analog symbols are not quantized to any quadrature amplitude modulation (QAM) level as is common in conventional digital transmission. Unlike standard modulation techniques, using analog modulation may eliminate the need for retransmissions. For example, errors occurring during the transmission of modulated digital data can be detected (e.g., using checksums), and the receiver can request a retransmission of the digital data. However, small changes in phase shift and power during the transmission of analog modulated data may not require retransmissions because small changes in phase or power in analog modulated data are unlikely to introduce significant distortion in the reconstructed video data. Therefore, the use of analog modulation can reduce complexity, reduce latency, and reduce power consumption. Modem 108 can transmit analog symbols.
[0096] In some examples, analog modulation unit 222 can generate multiple pairs of amplitude values (i.e., amplitude value pairs) to generate analog symbols. The amplitude values in the amplitude value pairs can be consecutive amplitude values generated by packing unit 220. See below for more details. Figure 5 and Figure 6 As described, analog modulation unit 222 can determine points in the IQ plane corresponding to analog symbols. One amplitude value in a pair of amplitude values can correspond to the I component of the point, and the other amplitude value in the pair can correspond to the Q component of the point. Analog modulation unit 222 can determine the phase shift and power of symbol sampling instances in the analog signal transmitted by modem 108 to destination device 116 based on the determined points.
[0097] Figure 3 This is a block diagram illustrating an example video decoder 300 according to one or more technologies in accordance with this disclosure. Figure 3 This is provided for illustrative purposes and does not limit the techniques as extensively illustrated and described in this disclosure. Figure 3 In the example, the video decoder 300 includes a buffer 302, an entropy decoding unit 304, a dequantization unit 306, an analog decompression unit 308, a reconstruction unit 310, and a video data storage 312. Figure 3In the example, the analog decompression unit 308 includes an analog demodulation unit 314, an unpacking unit 316, a dequantization unit 318, and a debinarization unit 320. Any or all of the entropy decoding unit 304, dequantization unit 306, analog decompression unit 308 (including analog demodulation unit 314, unpacking unit 316, dequantization unit 318, and debinarization unit 320), and reconstruction unit 310 can be implemented in one or more processors or in processing circuitry. For example, units of the video decoder 300 can be implemented as one or more circuit or logic elements as part of hardware circuitry, or as part of a processor, ASIC, or FPGA. Furthermore, the video decoder 300 may include additional or alternative processors or processing circuitry to perform these and other functions.
[0098] Buffer 302 can store digital video data to be decoded by components of video decoder 300. The digital video data stored in buffer 302 can be obtained, for example, from modem 122 or a storage medium. Video data memory 312 typically stores decoded images that video decoder 300 can output. Buffer 302 and video data memory 312 can be formed from any of a variety of memory devices, such as DRAM, including SDRAM, MRAM, RRAM, or other types of memory devices. Buffer 302 and video data memory 312 can be provided by the same memory device or separate memory devices. In various examples, buffer 302 and video data memory 312 can be on-chip with other components of video decoder 300, or off-chip relative to these components.
[0099] This explains that in Figure 3 The various units shown below help to understand the operations performed by the video decoder 300. The units can be implemented as fixed-function circuits, programmable circuits, or a combination thereof. Similar to... Figure 2 Fixed-function circuits refer to circuits that provide a specific function and are pre-configured regarding the operations that can be performed. Programmable circuits refer to circuits that can be programmed to perform various tasks and provide flexible functionality in terms of the operations that can be performed. For example, a programmable circuit can execute software or firmware that causes the programmable circuit to operate in a manner defined by the instructions of the software or firmware. Fixed-function circuits can execute software instructions (e.g., to receive or output parameters), but the type of operation performed by a fixed-function circuit is typically immutable. In some examples, one or more units in a cell may be different circuit blocks (fixed-function or programmable), and in some examples, one or more units in a cell may be integrated circuits.
[0100] The video decoder 300 may include an ALU, EFU, digital circuitry, analog circuitry, and / or a programmable core formed by programmable circuitry. In an example where the operation of the video decoder 300 is performed by software executing on the programmable circuitry, on-chip or off-chip memory may store instructions (e.g., object code) of the software received and executed by the video decoder 300.
[0101] exist Figure 3 In the example, modem 122 can receive entropy-encoded digital sample values. Buffer 302 can store the entropy-encoded digital sample values received by modem 122. Entropy decoding unit 304 can perform an entropy decoding process on the entropy-encoded digital sample values in buffer 302. Entropy decoding unit 304 can perform various types of entropy decoding processes, such as CABAC decoding, CAVLC decoding, V2V length decoding, SBAC decoding, PIPE decoding, exponential Golomb decoding, or another type of entropy decoding process. Dequantization unit 306 can dequantize the digital sample values.
[0102] The analog demodulation unit 314 of the analog decompression unit 308 can obtain an analog signal from the modem 122. The analog demodulation unit 314 can then determine the phase shift and power of the analog signal for a symbol sampling instance. The analog demodulation unit 314 can then determine a point in the IQ plane corresponding to the phase shift and power for the symbol sampling instance. The analog demodulation unit 314 can then determine a pair of amplitude values corresponding to the determined point. Specifically, the analog demodulation unit 314 can set the first amplitude value in the amplitude value pair as the I component of the point, and can set the second amplitude value in the amplitude pair as the Q component of the point.
[0103] For each coefficient vector (and therefore for each amplitude value determined by the analog demodulation unit 314), the unpacking unit 316 can determine the coefficients in the coefficient vector based on the amplitude value and mapping pattern used for the coefficient vector. The mapping pattern maps each allowed coefficient vector to a unique amplitude value that is adjacent to at least one other amplitude value in n-dimensional space, which is adjacent to the unique amplitude value on the monotonic number axis of the amplitude value. Each coefficient vector in the coefficient vector includes n coefficients. An allowed coefficient vector includes any vector containing n coefficients, where each coefficient within the vector is restricted to a predefined allowable range for that coefficient. In other examples, the unpacking unit 316 can perform a deinterleaving process that deinterleaves the bits of two or more coefficients from the bits of the amplitude value.
[0104] The dequantization unit 318 of the analog decompression unit 308 can dequantize the coefficients of the coefficient vector. For example, the dequantization unit 318 can shift the binary values representing the coefficients to the left. The debinarization unit 320 of the analog decompression unit 308 can then convert the coefficients into digital sample values. For example, the debinarization unit 320 can apply an inverse transform (e.g., inverse DCT, inverse DST, etc.) to the coefficients to convert the coefficients into digital sample values. The reconstruction unit 310 can reconstruct the digital sample values of the video data image based on the digital sample values generated by the analog decompression unit 308 and the digital sample values generated by the dequantization unit 306. As described above, the prediction data generated by the prediction unit 204 can include a single digital sample value for each block of the image. The reconstruction unit 310 can determine the digital sample value for each sample position of the block. For example, the reconstruction unit 310 can set the digital sample value for each sample position of the block to be equal to the digital sample value for the block included in the prediction data. In some examples, reconstruction unit 310 can interpolate the digital sample values for a block based on the transmitted digital sample values for the block and the transmitted digital sample values for one or more adjacent blocks. Reconstruction unit 310 can reconstruct the digital sample values of the image based on the digital sample values generated by analog decompression unit 308 and the digital sample values determined for the position within each block of the image. For example, reconstruction unit 310 can add the digital sample values generated by analog decompression unit 308 to the corresponding digital sample values for the positions within the blocks of the image. Video data memory 312 can store the reconstructed digital sample values, for example, for subsequent output and display.
[0105] Figure 4 This is a block diagram illustrating an example modem 400 according to one or more technologies according to this disclosure. Modem 400 may be an example of modem 108 of source device 102 or modem 122 of destination device 116. Figure 4 In this example, modem 400 includes a TrBk Cyclic Redundancy Check (CRC) supplementary unit 402, a block segmentation unit 404, a channel decoding unit 406, a rate matching unit 408, a block concatenation unit 410, a scrambler unit 412, a modulation unit 414, a resource mapper 416, and an Orthogonal Frequency Division Multiplexing (OFDM) signal generation unit 418. In other examples, other types of modems may include other components. The TrBk CRC supplementary unit 402 may receive entropy-encoded digital sample values from buffer 210 of video encoder 200. The resource mapper 416 may receive analog symbols generated by analog modulation unit 222.
[0106] The TrBk CRC supplement unit 402 calculates the CRC bits for the payload. The payload may include digital values generated by the video encoder 200 (e.g., entropy-coded data generated by the entropy coding unit 208, shift values, interleaving process information, quantization information, data indicating the number of coefficients in the coefficient vector, and / or other information). The code block segmentation unit 404 can segment the payload into code blocks, where a code block is the maximum payload size that the channel decoder (e.g., a low-density parity-check code (LDPC) for 5G data channels or a Turbo code for 4G data) is allowed to encode. The channel decoding unit 406 implements a channel decoder (e.g., LDPC for 5G data and Turbo code for 4G data) that adds redundancy to address channel errors. The rate matching unit 408 selects the number of bits to transmit based on the data size allocation per code block. The code block concatenation unit 410 can concatenate the selected bits from all code blocks. The scrambler unit 412 generates scrambled bits by applying an XOR operation to XOR the concatenated data with a pseudo-random gold sequence unique to each user. The modulation unit 414 modulates the scrambled bits according to a modulation mode (e.g., π / 2 binary phase shift keying (BPSK), quadrature phase shift keying (QPSK), 16-QAM, 64-QAM, or 256-QAM). In this way, the modulation unit 412 determines analog symbols based on the sequence of scrambled bits (i.e., the scrambled bit sequence). The resource mapper 416 places analog symbols in the frequency and time domains according to the allocated frequency bandwidth and time symbols for transmission. Analog symbols may include analog symbols determined by the analog modulation unit 222 of the analog compression unit 214 or analog signals determined by the modulation unit 412 (e.g., analog symbols based on scrambled bits, which may ultimately be based on predicted data transmitted through the quantization unit 206, entropy coding unit 208, etc.). The OFDM signal generation unit 418 can apply an integer fast Fourier transform (iFFT) to analog symbols, insert a cyclic prefix, and upsample the analog signal to radio frequency (RF). When receiving data, the series of actions performed by the unit of the modem 400 can be reversed.
[0107] The digital path in modem 108 is a set of steps or units used to transmit digital data. Figure 4In the example, the digital path includes a TrBk CRC supplement unit 402, a block segmentation unit 404, a channel decoding unit 406, a rate matching unit 408, a block concatenation unit 410, a scrambler unit 412, a modulation unit 414, a resource mapper 416, and an OFDM signal generation unit 418. In other examples, the digital path may include more or fewer units or steps. The analog path in the modem 108 may include the resource mapper 416 and the OFDM signal generation unit 418, but does not include the TrBk CRC supplement unit 402, the block segmentation unit 404, the channel decoding unit 406, the rate matching unit 408, the block concatenation unit 410, the scrambler unit 412, and the modulation unit 414.
[0108] Figure 5 This is an example constellation diagram 500 for analog modulation in the IQ domain. Constellation diagram 500 is a representation of signal modulation performed by Quadrature Amplitude Modulation (QAM). Constellation diagram 500 displays the signal as a two-dimensional xy-plane scatter plot in the complex plane for symbol sampling instances. In the context of this disclosure, a symbol sampling instance corresponds to the time during which analog symbols are transmitted.
[0109] exist Figure 5 In the example, the vertical axis of constellation diagram 500 corresponds to the I component, and therefore to the real component of the imaginary number. The horizontal axis of constellation diagram 500 corresponds to the Q component, and therefore to the imaginary component of the imaginary number.
[0110] The two-dimensional plane of constellation diagram 500 is continuous (i.e., non-discrete). However, constellation diagram 500 contains a set of reference points 502A to 502P (collectively referred to as "reference points 502"). Figure 5 In the example, the reference point is represented as a cross. Figure 6 In the example, the reference point is represented as a circle. Reference point 502 can be represented as any arbitrary shape used to represent a point in the IQ plane. Figure 5 In the example, constellation diagram 500 includes a set of sixteen reference points 502. For any point in constellation diagram 500 (including reference points 502 and non-reference points), the distance of that point from the origin represents a measure of the amplitude or power of the analog signal. The angle of a point measured counterclockwise from the horizontal axis (i.e., the Q-axis) represents the phase shift of the carrier from the reference phase.
[0111] Each of the reference points 502 can correspond to a different bit sequence in the "alphabet" of the bit sequence. Because there are sixteen reference points 502 in the constellation diagram 500, the alphabet of the bit sequence can be equal to 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, and 1111.
[0112] When modem 108 is transmitting digital data (e.g., entropy-coded prediction data), modulation unit 412 ( Figure 4 The modulation unit 412 can identify a reference point (e.g., one of reference points 502) corresponding to a bit sequence (e.g., a scrambled bit sequence) based on digital data. For example, if the bit sequence is equal to 0011 and reference point 502D corresponds to bit sequence 0011, the modulation unit 412 can determine an analog symbol having a phase shift and power corresponding to reference point 502K, for example, as indicated by arrow 504. The resource mapper 414 and OFDM signal generation unit 416 of the modem 108 can use the phase shift and amplitude during a symbol sampling instance when transmitting analog symbols in an analog signal such as an electrical signal or a radio signal.
[0113] When analog modulation is performed on analog data (e.g., amplitude values generated by packing unit 220), the analog modulation unit 222 of analog compression unit 214 does not use reference point 502 of constellation diagram 500. Instead, analog modulation unit 222 can determine a pair of amplitude values generated by packing unit 220. Analog modulation unit 222 can then use the amplitude value pair as coordinates (e.g., Cartesian coordinates) of a point in the IQ plane. Analog modulation unit 222 can determine the analog symbol as the phase shift and power of the point indicated by the coordinates. Since analog modulation unit 222 does not use reference point 502, the determined points can be between reference points 502, for example, as shown by arrow 506.
[0114] The modem 122 of the destination device 116 is configured to receive analog signals. When demodulating digital data (e.g., entropy-coded prediction data), the modulation unit 414 can determine the phase shift and power of the analog signal during a symbol sampling instance. The modulation unit 414 can then determine a point in the IQ plane of the constellation diagram 500 corresponding to the phase shift and power of the analog signal during the symbol sampling instance. The modulation unit 414 can then determine the nearest reference point to the determined point (e.g., one of the reference points 402). Due to noise during transmission, the determined point may not match the reference point. The modulation unit 414 can (e.g., to the scrambler 412) output a bit sequence corresponding to the determined reference point. The remainder of the modem 400 (e.g., scrambler 412, code block concatenation unit 410, rate matching unit 412, channel decoding unit 414, code block segmentation 404, and TrBk CRC supplementary unit 402) can process the bit sequence to recover the digital value.
[0115] Modem 122 (or, in Figure 4 In the context of the modem 400, the resource mapper 416 can determine the analog symbol corresponding to the phase shift and power of the analog signal during the symbol sampling instance. The analog demodulation unit 314 can then form a pair of amplitude values by assigning the I coordinate of the determined point to a first amplitude value in the amplitude value pair and assigning the Q coordinate of the determined point to a second amplitude value in the amplitude value pair. Thus, the analog demodulation unit 314 can determine the amplitude value for the coefficient vector as one of the coordinates of the analog symbol in the IQ plane. The analog demodulation unit 314 can output the amplitude value in the amplitude value pair to the unpacking unit 316.
[0116] Figure 6 This is a conceptual diagram illustrating the reception error during analog modulation transmission. More specifically, Figure 6 The constellation diagram 600 is shown. The modem 400, analog modulation unit 222, and analog demodulation unit 314 can be used with… Figure 5 The constellation chart 500 uses the same method as constellation chart 600. Figure 6 In the example, a small circle is used instead of a cross to indicate the reference point. Due to noise, phase shift, and power, the analog symbol may change during transmission. However, a small amount of noise typically does not produce a large displacement in terms of the amplitude value corresponding to the received analog symbol. In other words, during the transmission of the analog symbol, the difference between the original I component and the I component corresponding to the received analog symbol (i.e., ΔAmplitude2) and the difference between the original Q component and the Q component corresponding to the received analog symbol (i.e., ΔAmplitude1) are generally small.
[0117] As discussed above, packing unit 220 can convert a coefficient vector into amplitude values based on a mapping pattern. In some examples, the process for determining the amplitude values for the coefficient vector may assume that each coefficient in the coefficient vector is an unsigned value. However, coefficients in a coefficient vector can include both positive and negative values. Therefore, packing unit 220 can perform a process of converting the coefficients in the coefficient vector into unsigned values.
[0118] In some examples, packing unit 220 can use sign-decoding to convert the coefficients in the coefficient vector into unsigned values. That is, to convert the coefficients in the coefficient vector into unsigned values, packing unit 220 can determine the sign value for each coefficient in the coefficient vector. Additionally, packing unit 220 can generate a modified coefficient vector containing the absolute values of the coefficients. In this example, packing unit 220 can then use the modified coefficient vector to determine the amplitude value.
[0119] The video encoder 200 can transmit sign values via a digital path. For example, the video encoder 200 can transmit sign values via a digital path. The unpacking unit 316 of the analog decompression unit 308 of the video decoder 300 can receive sign values and can receive amplitude values for the coefficient vector from the analog demodulation unit 314. The unpacking unit 316 can use the amplitude values for the coefficient vector to recover the modified coefficient vector. The unpacking unit 316 can then reconstruct the original coefficient vector by setting the signs of the coefficients in the modified coefficient vector to the corresponding signs indicated in the sign data.
[0120] Figure 7 This is a conceptual diagram illustrating an example of data sign decoding according to one or more techniques based on this disclosure. Figure 7 In the example, coefficient vector 700 includes positive and negative coefficients. Packaging unit 220 can generate sign data 702, which indicates the sign of the coefficients in coefficient vector 700. Alternatively, packaging unit 220 can replace coefficient vector 700 with a modified coefficient vector 704 containing the absolute values of the coefficients in coefficient vector 700. Packaging unit 220 can use the modified coefficient vector 704 to determine the amplitude value for coefficient vector 700.
[0121] In some examples, packing unit 220 can use minimum value decoding to convert the coefficients in the coefficient vector into unsigned values. For example, to use minimum value decoding to convert the coefficients in the coefficient vector into unsigned values, packing unit 220 can determine a shift value equal to the most negative coefficient in the coefficient vector. Packing unit 220 can then generate a modified coefficient vector by adding the absolute value of the shift value to each coefficient in the coefficient vector. Packing unit 220 can use the modified coefficient vector to determine the magnitude value for the coefficient vector.
[0122] Packing unit 220 can send the shift value via a digital path. Unpacking unit 316 of analog decompression unit 308 of video decoder 300 can receive the shift value and can receive the amplitude value for the coefficient vector from analog demodulation unit 314. Unpacking unit 316 can use the amplitude value for the coefficient vector to recover the modified coefficient vector. Unpacking unit 316 can then reconstruct the original coefficient vector by adding the shift value to each coefficient in the modified coefficient vector.
[0123] Figure 8 This is a conceptual diagram illustrating an example of minimum value decoding according to one or more techniques based on this disclosure. Figure 8 In the example, coefficient vector 800 includes positive and negative coefficients. Packaging unit 220 determines shift value 802. Shift value 802 can be the most negative coefficient in coefficient vector 800. Therefore, in Figure 8 In the example, the shift value 802 is equal to -13. Furthermore, the packing unit 220 can generate a modified coefficient vector 804 by adding the absolute value of the shift value to each coefficient in the coefficient vector. The video encoder 200 can transmit the shift value, for example, via a digital path.
[0124] Figure 9 This is a conceptual diagram illustrating an example mapping pattern of one or more technologies according to this disclosure. Figure 10 This illustrates one or more technologies based on this disclosure. Figure 9 A conceptual diagram of the amplitude values corresponding to the mapping patterns. This disclosure can... Figure 9 and Figure 10The mapping pattern is called the S-Snake mapping pattern. Packing unit 220 and unpacking unit 316 can use the S-Snake mapping pattern to determine the unsigned amplitude value of the coefficient vector used by packing unit 220 to convert unsigned coefficients from signed coefficients. Therefore, the S-Snake mapping pattern is an example of a mapping pattern that maps unsigned coefficients to unsigned amplitude values. As described above, packing unit 220 can determine the amplitude value for the coefficient vector based on the mapping pattern. The mapping pattern maps each allowed coefficient vector to a unique amplitude value that is adjacent to at least one other amplitude value in n-dimensional space, and at least one other amplitude value is adjacent to the unique amplitude value on the monotonic number axis of the amplitude values. Figure 9 and Figure 10 In the example, n equals 2.
[0125] exist Figure 9 In the example, each of the x and y axes corresponds to a different coefficient in the coefficient vector. Starting from the position corresponding to (0,0) in the coefficient vector, the magnitude value increases by 1 for each position along the arrow chain. For example, as... Figure 10 As shown in the example, for the coefficient vector (1,10), the packing unit 220 can determine that the corresponding amplitude value is 103. Similarly, the unpacking unit 316 can determine that the corresponding coefficient vector is (1,10) based on the amplitude value 103. Similar mapping patterns can be extended to higher dimensions.
[0126] Figure 11 This is a conceptual diagram illustrating an example mapping pattern of one or more technologies according to this disclosure. Figure 12 This illustrates one or more technologies based on this disclosure. Figure 11 A conceptual diagram of the amplitude values corresponding to the mapping patterns. This disclosure can... Figure 11 and Figure 12 The mapping pattern is called the M-Snake mapping pattern. Packing unit 220 and unpacking unit 316 can use the M-Snake mapping pattern to determine the signed amplitude values for the coefficient vector with signed coefficients. Therefore, the M-Snake mapping pattern is an example of a mapping pattern that maps signed coefficients to signed amplitude values. Packing unit 220 and unpacking unit 316 can... Figure 9 and Figure 10 Using a mapping pattern in a similar way Figure 11 and Figure 12 The mapping pattern. However, the packing unit 220 and the unpacking unit 316 can... Figure 9 and Figure 10 The mapping pattern is used in conjunction with coefficient vectors that include both positive and negative values (i.e., positive and negative values). Because Figure 9 and Figure 10The mapping pattern can use coefficient vectors that include signed values, so the video encoder 200 may not need to send as much side information (e.g., in the form of signed data or shift values) with the signal. However, there may be some performance degradation associated with using signed values. For example, signed coefficients may require additional bits compared to unsigned coefficients at the same resolution. This additional bit increases the amplitude dynamics of the signed signal compared to unsigned coefficients (if unsigned coefficients are from 0, 1, ..., A, then signed coefficients at the same resolution are -A, ..., -1, 0, 1, ..., A). When the power is scaled to the nominal level, the scaling is more aggressive with respect to signals with higher dynamic range, and therefore may result in a performance penalty.
[0127] With Figure 9 and Figure 10 The mapping pattern shown can be extended to higher dimensions.
[0128] Figure 13 This is a conceptual diagram illustrating an example mapping pattern of one or more technologies according to this disclosure. Figure 14 This illustrates one or more technologies based on this disclosure. Figure 13 A conceptual diagram of the amplitude values corresponding to the mapping patterns. This disclosure can... Figure 13 and Figure 14 The mapping mode is called the MS-Snake mapping mode. Packaging unit 220 and unpacking unit 316 can be coupled with... Figure 9 and Figure 10 Using a similar approach to the S-Snake mapping pattern Figure 13 and Figure 14 The mapping mode is similar to the S-Snake mapping mode. Packaging unit 220 can use the MS-Snake mapping mode to convert a coefficient vector containing only unsigned values into signed amplitude values.
[0129] The MS-Snake mapping mode can provide compression gain with minimal video quality degradation. Furthermore, it improves the noise immunity of amplitude values. The MS-Snake mapping mode maps unsigned numerical values to signed amplitude values. Therefore, it is an example of a mapping mode that maps unsigned coefficients to signed amplitude values. When using the MS-Snake mapping mode, the number of bits can remain the same, but the dynamic power range can be reduced by 6dB (because the abs of the maximum amplitude is 1 bit smaller). Power scaling can be less aggressive, which increases signal resilience and thus improves noise immunity. Additionally, the MS-Snake mapping mode can introduce unique noise suppression techniques due to the use of multidimensional short arcs. Compared to signed mapping, mapping using a 2D signed plane (of amplitude values) reduces the mapped amplitude by 1 bit, resulting in a lower dynamic range, which is an important characteristic for analog modulation schemes used to achieve higher processing gain.
[0130] Although not shown in the figures of this disclosure, other types of mapping patterns can map signed coefficients to unsigned amplitude values.
[0131] Figure 15 This is a conceptual diagram illustrating an example three-dimensional mapping pattern 500 according to one or more techniques in accordance with this disclosure. As described above, the packing unit 220 can determine the magnitude value for the coefficient vector based on the mapping pattern, wherein the mapping pattern maps each allowed coefficient vector to a unique magnitude value that is adjacent to at least one other magnitude value in n-dimensional space, which is adjacent to the unique magnitude value on a monotonic number axis of the magnitude value. Figure 15 In the example, n equals 3. Packaging unit 220 can be used in a manner similar to the mapping patterns described elsewhere in this disclosure. Figure 15 Mapping pattern 500 is an example of a three-dimensional S-Snake mapping pattern that maps a vector of coefficients without signs to amplitude values without signs. For example, when the coefficient vector is equal to (0,1,2), packing unit 220 can determine the amplitude value 62.
[0132] Figure 16 This is a flowchart illustrating an example method for encoding video data according to one or more techniques based on this disclosure. The flowchart of this disclosure is presented as an example. Other examples may include more, fewer, or different actions, or the actions may be performed in a different order.
[0133] exist Figure 16In the examples, video encoder 200 can generate coefficients (1600) based on video data. For example, in one example of generating coefficients based on video data, prediction unit 204 of video encoder 200 can determine prediction data for the video data. In this example, residual generation unit 212 of video encoder 200 can generate residual data indicating the difference between sample values in the prediction block and corresponding sample values in the video data block. Furthermore, in this example, analog compression unit 214 can generate coefficients based on the residual data. For example, binarization unit 216 of video encoder 200 can binarize the residual data to generate coefficients, and quantization unit 218 can quantize the coefficients. In other examples of generating coefficients based on video data, video encoder 200 can perform more, fewer, or different steps. For example, in some examples, video encoder 200 does not perform a quantization step. In other examples, video encoder 200 does not perform a step of binarizing the residual data.
[0134] In some examples, video encoder 200 can generate digital values (e.g., bit sequences) based on prediction data, and modem 108 (e.g., modulation unit 414 of modem 108) can be configured to transmit digital values. For example, quantization unit 206 can generate quantized digital sample values based on digital sample values in the prediction data. Entropy coding unit 208 can perform an entropy coding process that generates digital values based on quantized digital sample values. To transmit digital values, modem 108 can generate bit sequences based on entropy-coded data, such as those shown in the image. Figure 4 As described, the modulation unit 414 can determine the analog symbol based on the bit sequence.
[0135] In some examples, the simulated compression unit 214 can modify the initial coefficients to generate coefficients. In conjunction with... Figure 7 In one consistent example, analog compression unit 214 (e.g., binarization unit 216 and / or quantization unit 218) can generate initial coefficients based on video data. In this example, analog compression unit 214 can generate sign values indicating the positive / negative sign of the initial coefficients. Furthermore, analog compression unit 214 can generate coefficients as the absolute values of the initial coefficients. In this example, modem 108 can be configured to transmit data representing the sign values as signals.
[0136] In modification and Figure 8In another example of consistent initial coefficients, the coefficients in the coefficient vector are non-negative versions of the initial coefficients. In this example, as part of generating coefficients based on video data (e.g., based on residual data), the analog compression unit 214 (e.g., binarization unit 216 and / or quantization unit 218) may generate initial coefficients based on the residual data. In this example, the analog compression unit 214 may determine the shift value (e.g., based on the most negative initial coefficient in the initial coefficients) based on the residual data. Figure 8 (The shift value 802). The analog compression unit 214 can perform a process of transforming the initial coefficients into non-negative versions of the initial coefficients based on the shift value. In this example, the modem 108 can be configured to transmit data representing the shift value as a signal.
[0137] In addition, Figure 16 In the example, the packing unit 220 of the video encoder 200 can generate a coefficient vector (1602). Each coefficient vector in the coefficient vector includes n coefficients. The packing unit 220 can generate the coefficient vector in one of a variety of ways. For example, in one example, the packing unit 220 can generate the coefficient vector as a set of n consecutive coefficients according to the coefficient decoding order. Various coefficient decoding orders can be used, such as raster scan order, zigzag scan order, reverse raster scan order, and vertical scan order. In some examples, the coefficient vector may include one or more negative coefficients and one or more positive coefficients (i.e., coefficients with signs). In some examples, the coefficient vector only includes non-negative coefficients (i.e., coefficients without signs).
[0138] For each coefficient vector in the coefficient vector, packing unit 220 can determine the magnitude value (1604) for the coefficient vector based on a mapping pattern. For each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding magnitude value among a plurality of magnitude values. The corresponding magnitude value is adjacent in n-dimensional space to at least one other magnitude value among a plurality of magnitude values, which is adjacent to the corresponding magnitude value on the monotonic number axis of the magnitude values. The above discussion... Figure 9-15 Example mapping patterns are shown that the packing unit 220 can be used to determine the magnitude values for the coefficient vector. Therefore, in some examples, the mapping pattern can be one of an S-Snake pattern, an M-Snake pattern, an MS-Snake pattern, or another type of mapping pattern. The value n can be greater than or equal to 2.
[0139] In some examples, to determine the magnitude value for the coefficient vector, packing unit 220 can determine the position in n-dimensional space. The coordinates of the position in n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in n-dimensional space to different magnitude values among multiple magnitude values. Packing unit 220 can determine the magnitude value for the coefficient vector as the magnitude value corresponding to the determined position in n-dimensional space.
[0140] In some examples, the video encoder 200 can dynamically switch between mapping modes based on one or more optimization criteria. For instance, when greater performance is required, the video encoder 200 can use... Figure 9 and Figure 10 The mapping mode, and when it is more desirable to send less auxiliary information, can be used Figure 11 and Figure 12 The mapping mode. In this example, performance can be measured based on noise resilience, the number of bits per analog symbol, or some other metric. In this example, the video encoder 200 can switch between mapping modes on a block-by-block, picture-by-picture, sequence-by-sequence basis, or on another basis. In another example, the video encoder 200 can, for example, use a mapping mode based on... Figure 24-26 The description method dynamically switches between mapping modes.
[0141] The analog modulation unit 222 can then modulate the analog signal (1606) based on the amplitude values used for the coefficient vector. The analog modulation unit 222 can be based on any of the examples provided elsewhere in this disclosure (e.g., regarding...). Figure 5 and Figure 6 (As described in the example), analog amplitude modulation is performed. For example, analog modulation unit 222 can determine an analog symbol based on a pair of amplitude values. The analog symbol may correspond to the phase shift and power of a point in the IQ plane with coordinates indicated by the amplitude value pair. Analog modulation unit 222 can modulate the analog signal during a symbol sampling instance based on the determined phase shift and power. Modem 108 can be configured to output an analog signal (1608).
[0142] Figure 17 This is a flowchart illustrating an example method for decoding video data using one or more techniques according to this disclosure. Figure 17 In the example, the analog demodulation unit 314 of the video decoder 300 can determine the amplitude values (1700) for multiple coefficient vectors based on the analog signal. The analog demodulation unit 314 can be based on any of the examples provided elsewhere in this disclosure (e.g., regarding...). Figure 5 and Figure 6(Example described) to perform analog amplitude demodulation. For example, analog demodulation unit 314 can determine the phase shift and power of a symbol sampling instance for an analog signal. Analog demodulation unit 315 can determine a point in the IQ plane indicated by the determined phase shift and power. Analog demodulation unit 314 can then determine the amplitude value pairs as coordinates of the point in the IQ plane.
[0143] For each coefficient vector in the coefficient vector, unpacking unit 316 can determine the coefficients in the coefficient vector based on the amplitude values and mapping patterns used for the coefficient vector (1702). For each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors, the mapping pattern can map the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values. The corresponding amplitude value is adjacent to at least one other amplitude value among a plurality of amplitude values in n-dimensional space, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values. Each coefficient vector in the coefficient vector can include n coefficients among the coefficients. The above discussion Figure 9-15 Example mapping patterns are shown that the unpacking unit 316 can be used to determine the amplitude values for the coefficient vector. Therefore, in some examples, the mapping pattern can be one of an S-Snake pattern, an M-Snake pattern, an MS-Snake pattern, or another type of mapping pattern. The value n can be greater than or equal to 2. In some examples, the unpacking unit 316 can determine the coefficients in the coefficient vector as coordinates of positions in n-dimensional space corresponding to amplitude values, where the mapping pattern maps different positions in n-dimensional space to different amplitude values among multiple amplitude values. In some examples, the coefficient vector includes one or more negative coefficients and one or more positive coefficients. In other examples, the coefficient vector may include only non-negative coefficients.
[0144] In some examples (such as) Figure 7 In some examples (such as...), as part of determining the coefficients, the video decoder 300 can obtain a sign value (e.g., via the digital path of the modem 122), where the sign value indicates the positive / negative sign of the coefficients in the coefficient vector. In such examples, the video decoder 300 can determine the absolute value of the coefficients in the coefficient vector based on the amplitude value and mapping mode used for the coefficient vector. The video decoder 300 can reconstruct the coefficients in the coefficient vector at least in part by applying the sign value to the absolute value of the coefficients in the coefficient vector. In some examples (such as...) Figure 8In the example, as part of determining the coefficients, the video decoder 300 can obtain data representing shift values (e.g., via the digital path of the modem 122). In such an example, the shift value indicates the most negative coefficient among the coefficients in the coefficient vector. Furthermore, in such an example, the video decoder 300 can determine the intermediate values of the coefficients in the coefficient vector based on the amplitude values and mapping patterns used for the coefficient vector. The video decoder 300 can reconstruct the coefficients in the coefficient vector, at least in part, by adding the shift value to each of the intermediate values of the coefficients in the coefficient vector.
[0145] In addition, Figure 17 In the example, video decoder 300 can generate video data based on the coefficients in the coefficient vector (1704). For example, in one example, dequantization unit 318 of video decoder 300 can dequantize the coefficients of the coefficient vector. In this example, debinding unit 320 of video decoder 300 can perform a debinding process to convert the coefficients into digital sample values. For example, debinding unit 320 can apply inverse DCT to the coefficients to convert the coefficients into digital sample values. In this way, analog decompression unit 308 can generate digital sample values. Furthermore, in this example, entropy decoding unit 304 of video decoder 300 can obtain digital values (e.g., digital paths via modem 122). Video decoder 300 can generate prediction data based on digital values. For example, entropy decoding unit 304 can perform an entropy decoding process on the digital values to generate quantized digital sample values. Dequantization unit 306 of video decoder 300 can generate prediction data by dequantizing the quantized digital sample values. The reconstruction unit 310 of the video decoder 300 can generate video data based on prediction data and residual data, for example, by adding the corresponding digital sample values of the prediction blocks to the digital sample values generated by the analog decompression unit 308. In this way, the video decoder 300 can generate video data based on the coefficients in the coefficient vector. In other examples, the video decoder 300 can perform more, fewer, or different actions. For example, in some examples, the dequantization step performed by the dequantization unit 306 and / or the dequantization unit 318 is omitted. In some examples, the entropy decoding process performed by the entropy decoding unit 304 can be omitted from the video decoder 300.
[0146] According to one or more techniques of this disclosure, packing unit 220 can perform an interleaving process to unify multiple coefficients into a single amplitude value. Compared to using two or more different symbol sampling instances to transmit two or more non-interleaved analog symbols, performing the interleaving process can improve noise immunity and provide compression gain. Packing unit 220 can perform the interleaving process to generate amplitude values, rather than using a mapping pattern to generate amplitude values for the coefficient vector as described elsewhere in this disclosure.
[0147] Figure 18 This is a conceptual diagram illustrating a first example of the interweaving of one or more technologies according to this disclosure. Figure 18 In the example, the first coefficient 1800 consists of four bits (i.e., bits a0 to a3), and the second coefficient 1802 consists of four bits (i.e., b0 to b3). Typically, interleaving refers to (e.g., in an alternating pattern, a cyclic pattern, or other type of pattern) inserting bits of one or more coefficients between bits of another coefficient. The packing unit 220 of the video encoder 200 can perform an interleaving process to generate an amplitude value 1804 by interleaving the bits of coefficient 1800 with the bits of coefficient 1802. The amplitude value generated by performing the interleaving process can be referred to as an "interleaved amplitude value" in this disclosure.
[0148] The analog modulation unit 222 can use multiple pairs of interleaved amplitude values in the same manner as the amplitude values described elsewhere in this disclosure. The unpacking unit 316 of the video decoder 300 can receive the interleaved amplitude values from the analog demodulation unit 314 and can perform a deinterleaving process to reconstruct the coefficients based on the interleaved amplitude values. For example, in Figure 18 In the context of the unpacking unit 316, the unpacking unit 316 can perform a deinterleaving process to reconstruct coefficients 1800 and 1802 based on the interleaved amplitude value 1804.
[0149] Figure 19 This is a conceptual diagram illustrating a second example of the interweaving of one or more technologies according to this disclosure. Figure 19 In the example, the packing unit 220 of the video encoder 200 performs an interleaving process on the bits of coefficients 1900, 1902, 1904, and 1906 to generate an interleaved amplitude value 1908. The unpacking unit 316 of the video decoder 300 performs a deinterleaving process on the bits of the interleaved amplitude value 1908 to form a deinterleaving process on coefficients 1900, 1902, 1904, and 1906.
[0150] In some examples, packing unit 220 can be dynamically selected between different interleaving processes. From Figure 18 and Figure 19As can be seen, the interleaved amplitude value can include different numbers of bits, depending on the interleaving process used to generate the amplitude value based on the coefficients. Various characteristics of the channel through which the source device 102 is transmitting analog signals can define the spectral efficiency of the channel. The spectral efficiency of the channel indicates how many bits can be used in the amplitude value. For example, if there is significant noise in the channel, the spectral efficiency may be low, and therefore the amplitude value can have fewer bits. Therefore, the packing unit 220 can determine the value x based on the spectral efficiency of the channel and the number of bits per coefficient. For example, the packing unit 220 can determine the value x as the spectral efficiency divided by the number of bits per coefficient. The packing unit 220 can then use the bits of x coefficients to interleave the interleaved amplitude value. In this way, the packing unit 220 can select an interleaving process from multiple interleaving processes based on the spectral efficiency of the channel through which it transmits analog signals. The unpacking unit 316 of the video decoder 300 can select a deinterleaving process from multiple deinterleaving processes. For example, the video encoder 200 can use signal transmission (e.g., via a digital path) to indicate the interleaving process. In some examples, each deinterleaving step in the deinterleaving process deinterleaves a different number of coefficients based on the amplitude value of the interleaved coefficients.
[0151] The interleaved amplitude value may be noise-sensitive at certain values. For example, changes in the power or phase of the analog signal during a symbol sampling instance may cause the interleaved amplitude value determined by the analog demodulation unit 314 for that symbol sampling instance to be incremented by 1. Changes in the packed amplitude value may result in a significant difference between the original digital sample value and the digital sample value derived from the interleaved amplitude value.
[0152] Figure 20 This is a block diagram illustrating an example of the impact of noise on the decoding process. Figure 20 In the example, the binarization unit 216 of the video encoder 200 can receive two digital sample values, each equal to 7. The binarization unit 216 can convert the digital sample values into coefficients, both equal to 0111. The packing unit 220 can perform an interleaving process to interleave the bits of the coefficients to generate an interleaved amplitude value 0011_1111 (which equals 63 in decimal). The analog modulation unit 222 (in...) Figure 20 (This is labeled D2A for digital-to-analog conversion) and analog modulation can then be performed to modulate the analog signal based on the interleaved amplitude values. The analog signal can be transmitted via channel 2000.
[0153] During the transmission of analog signals through channel 2000, noise may cause interference to the analog demodulation unit 314 (in Figure 20The value is labeled A2D (for analog-to-digital) based on a 1-bit change in the interleaved amplitude value of the demodulated analog signal. For example, a change in the power or phase shift of the analog signal during a symbol sampling instance can cause the analog demodulation unit 314 to determine a point in the IQ plane that corresponds to a different point in the IQ plane than the original amplitude value pair. Therefore, the interleaved amplitude value determined by the analog demodulation unit 314 can be equal to 64 instead of 63. Figure 20 As shown in the example, the interleaved amplitude value can be represented in binary as 0100_0000. The unpacking unit 316 can perform a deinterleaving process to convert the interleaved amplitude value 0100_0000 into coefficients 0000 and 1000. The debinding unit 320 can convert these coefficients into digital sample values. Figure 20 In the example, the digit sample values are equal to 0 and 8. It should be noted that the digit sample values 0 and 8 are significantly different from the original digit sample values 7 and 7. This difference can have a severely detrimental impact on the quality of the decoded image based on these digit sample values. It should be noted that this noise vulnerability occurs primarily with respect to specific interleaved amplitude values. However, this noise vulnerability is less severe at other interleaved amplitude values.
[0154] According to one or more techniques disclosed herein that can solve this problem, packing unit 220 can remap interleaved amplitude values to alternative interleaved amplitude values such that gap values exist on the number axis of interleaved amplitude values at positions between noise-sensitive interleaved amplitude values. Noise-sensitive interleaved amplitude values on the number axis of interleaved amplitude values are interleaved amplitude values such that adding minimal noise (e.g., a 1-bit flip) could cause a significant change to the digital sample value determined based on the interleaved amplitude values. When analog demodulation unit 314 determines that the interleaved amplitude value demodulated according to the analog signal is one of the gap values, analog demodulation unit 312 can round the interleaved amplitude value to the nearest non-gap interleaved amplitude value.
[0155] Figure 21 This is a conceptual diagram illustrating the gap range of one or more technologies according to this disclosure. Figure 21 In the example, number line 2100 corresponds to a range of interleaved amplitude values. Each block in number line 2100 may correspond to a series of interleaved amplitude values between noise-sensitive interleaved amplitude values. Number line 2100 conceptually illustrates the insertion of gap values between noise-sensitive interleaved amplitude values. Specifically, in Figure 21In the example, the dark bar corresponds to the gap value range (i.e., the gap range). The width of the gap value range can be related to the number of bits in the binary representation of the interleaved amplitude value that are altered due to noise (e.g., proportional to or having some other relationship with the number of altered bits that change the decimal value of the interleaved amplitude value by one value). For example, as in Figure 21 As shown in number line 2104, two gap values can be inserted between 15 and 16, four gap values can be inserted between 31 and 32, two gap values can be inserted between 47 and 48, and so on.
[0156] Therefore, as in Figure 21 As shown on the number line 2106, the analog modulation unit 222 can map the interleaved amplitude values 0-15 to the alternative interleaved amplitude values 0-15, map the interleaved amplitude values 16-31 to the alternative interleaved amplitude values 18-33, map the interleaved amplitude values 32-47 to the alternative interleaved amplitude values 38-53, map the interleaved amplitude values 48-63 to the alternative interleaved amplitude values 56-71, and so on. Therefore, the analog demodulation unit 314 can convert the replaced interleaved amplitude values 0-15 back to the corresponding interleaved amplitude values 0-15; convert the replaced interleaved amplitude values 16-17 (i.e., gap values) back to interleaved amplitude values 15 and 16 respectively; convert the replaced interleaved amplitude values 18-33 back to the corresponding interleaved amplitude values 16-31; convert the replaced interleaved amplitude values 34-35 (i.e., gap values) back to interleaved amplitude value 31; convert the replaced interleaved amplitude values 36-37 (i.e., gap values) back to interleaved amplitude value 32; convert the replaced interleaved amplitude values 38-53 back to the corresponding interleaved amplitude values 32-37; and so on.
[0157] Figure 22 This is a flowchart illustrating an example method for encoding video data according to one or more techniques based on this disclosure. Figure 22 In the example, prediction unit 204 can generate prediction data (2200) for video data. Furthermore, residual generation unit 212 can generate residual data (2202) based on the prediction data and digital sample values of the video data. For example, residual generation unit 212 can subtract the digital sample values of the prediction data from the corresponding digital sample values of the video data to generate digital sample values of the residual data.
[0158] The analog compression unit 214 can generate coefficients (2204) based on the residual data. For example, the binarization unit 216 can perform a binarization process to generate coefficients based on the residual data. In this example, the quantization unit 218 can perform a quantization process to quantize the coefficients.
[0159] According to the technology of this disclosure, the packing unit 220 can perform an interleaving process to generate an interleaved amplitude value (2206). The interleaving process interleaves bits of two or more coefficients to generate an interleaved amplitude value. For example, in Figure 19 In the example, the interleaving process interleaves the bits of two coefficients in the coefficients to generate an interleaved amplitude value. Figure 20 In some examples, the interleaving process interleaves the bits of four coefficients to generate an interleaved amplitude value. In some examples, the packetizing unit 220 selects an interleaving process from multiple interleaving processes based on the spectral efficiency of the channel through which it transmits the analog signal. In some such examples, each interleaving process interleaves a different number of coefficients to generate an interleaved amplitude value.
[0160] Furthermore, the video encoder 200 can be configured to generate digital values based on the predicted data (2208). For example, the quantization unit 206 can generate quantized digital sample values based on digital sample values in the predicted data. In this example, the entropy coding unit 208 can perform an entropy coding process to generate digital values based on the quantized digital sample values.
[0161] Modem 108 can be configured to output one or more analog signals (2210) modulated based on interleaved amplitude values and digital values. For example, analog modulation unit 222 can determine analog symbols corresponding to amplitude value pairs including interleaved amplitude values. Modem 108 can transmit analog signals during a symbol sampling instance based on phase shift and power corresponding to the analog symbols. Modem 108 can also transmit analog signals based on digital values, for example, with respect to... Figure 4 The manner described.
[0162] In some examples, the analog modulation unit 222 performs the function of transferring the interleaved amplitude values from the original number line (e.g., Figure 21 The number line 2100) is mapped to an alternative number line (e.g., including one or more gap ranges) Figure 21 The mapping process in the replacement number line 2106). The gap range can be located at a position in the original number line that relates to the effect of noise on bit flips in the interleaved amplitude values demodulated according to the analog signal. The mapping process does not map any interleaved amplitude value to any value in any gap range of one or more gap ranges. The analog modulation unit 222 can generate amplitude value pairs that include the mapped values. The analog modulation unit 222 can then determine analog symbols based on the mapped values. The modem 108 can modulate the analog signal based on the analog symbols. Therefore, the modem 108 can modulate the analog signal based on the mapped values.
[0163] Figure 23This is a flowchart illustrating an example method for decoding video data using one or more techniques according to this disclosure. Figure 23 In some examples, analog demodulation unit 314 can determine the interleaved amplitude value (2300) based on the analog signal. In some examples, as part of determining the interleaved amplitude value based on the analog signal, modem 112 can determine the analog symbol corresponding to the phase shift and power of the symbol sampling instance used for the analog signal. The interleaved amplitude value can be the I component or Q component of the coordinates of the analog symbol in the IQ plane.
[0164] In some examples, the mapped values can be the I or Q components of the coordinates of the analog symbol in the IQ plane. The mapped values can be generated using a mapping process that maps the original number line (e.g., ...). Figure 21 The interlaced amplitude values in the number line 2100 are mapped to an alternative number line (e.g., including one or more gap ranges) that includes one or more gap ranges. Figure 21 The mapping values in the replacement number line 2106. The gap range can be located in the original number line at a position related to the effect of noise on bit flips in the interleaved amplitude values demodulated according to the analog signal, and the mapping process does not map any interleaved amplitude values to any gap range in one or more gap ranges. In this example, the analog demodulation unit 314 can use the inverse process of the mapping process to map the mapped values to the interleaved amplitude values. In some cases, the mapped values determined by demodulating the analog signal are in one of the gap ranges. In such cases, the inverse process of the mapping process maps the mapped values in the gap range to the interleaved amplitude values in the original number line. In this way, the analog demodulation unit 314 is able to reduce the effect of noise on the analog signal.
[0165] Therefore, in such an example, analog demodulation unit 314 can demodulate an analog signal to determine a mapped value generated using a mapping process that maps interleaved amplitude values in the original number line to mapped values in an alternative number line including one or more gap ranges. These gap ranges are located in the original number line at positions related to the effect of noise on bit flips in the interleaved amplitude values demodulated according to the analog signal, and the mapping process does not map any interleaved amplitude values to any gap range within the one or more gap ranges. Analog demodulation unit 314 can use the inverse process of the mapping process to map the mapped value to the interleaved amplitude value.
[0166] In addition, Figure 23In the example, unpacking unit 316 can perform a deinterleaving process to generate two or more coefficients (2302). The bits of the two or more coefficients are interleaved in the interleaved amplitude values. In some examples, the deinterleaving process deinterleaves the bits of two coefficients in the coefficients (e.g., in...). Figure 18 The inverse process of the interleaving process shown in the example). In some examples, the deinterleaving process deinterleaves the bits of the four coefficients in the coefficients according to the interleaved amplitude value (e.g., in...). Figure 19 (The inverse process of the interleaving process shown in the example). In some examples, the unpacking unit 316 can select a deinterleaving process from multiple deinterleaving processes based on the data transmitted in one or more analog signals. In some such examples, each deinterleaving process deinterleaves a different number of coefficients.
[0167] The analog decompression unit 308 can generate residual data (2304) based on two or more coefficients. For example, the dequantization unit 318 can perform an inverse quantization process that inverse-quantizes the coefficients. The debinding unit 320 can perform a debinding process that generates residual data based on the coefficients.
[0168] Furthermore, the video decoder 300 can acquire digital values (2306). For example, the modem 122 can be configured to acquire digital values and provide them to the video decoder 300. The video decoder 300 can generate prediction data (2308) based on the digital values. For example, the entropy decoding unit 304 can perform an entropy decoding process to generate quantized digital sample values based on the digital values. The dequantization unit 306 can perform an inverse quantization process to generate digital sample values in the prediction data based on the inverse quantized digital sample values. The reconstruction unit 310 of the video decoder 300 can reconstruct video data (2310) based on the prediction data and the residual data. For example, the reconstruction unit 310 can add the digital sample values of the prediction data to the corresponding digital sample values of the residual data to reconstruct the digital sample values of the video data.
[0169] Figure 24 This is a block diagram illustrating an example analog compression unit 2400 using one or more techniques according to this disclosure. The analog compression unit 2400 can be used instead of... Figure 2 The analog compression unit 214. In Figure 24 In the example, the analog compression unit 2400 may include a block segmentation unit 2402, a block dynamic quantization unit 2404, a spectral efficiency unit 2406, a packing unit 2408, a scaling unit 2410, and an analog modulation unit 2412.
[0170] The block segmentation unit 2402 can receive residual data and segment the residual data into 2D blocks. In other words, the block segmentation unit 2402 can divide a residual image of size N into N / K blocks, where K indicates the number of coefficients in each block. The K coefficients of each block i can be represented as b. 0,i b 1,i …b k,i Where i = 0, 1, ..., N / K-1. In some examples, block segmentation unit 2404 can adaptively select the block size based on one or more characteristics of the block's content. For example, block segmentation unit 2404 can select a larger block size for blocks in regions of the image containing relatively uniform numerical sample values, and a smaller block size for regions of the image containing less uniform numerical sample values. In some examples, block segmentation unit 2402 can apply a transformation to the residual data of the block to generate the block's coefficients. For example, block segmentation unit 2402 can apply a DCT (e.g., integer DCT) or other transformation to the residual data of the block to generate the block's coefficients. In some examples, the block's coefficients can be residual numerical sample values.
[0171] For each block i, the block dynamic quantization unit 2404 can quantize block i to generate quantized coefficients, each of which consists of Q bits. The value of Q can be different for different blocks. Therefore, this disclosure can represent the number of bits used to quantize the coefficients of block i as Q. i The quantized coefficients c of block i (where block i has size k) are represented as c 0,i ,c 1,i ,…,c k,i .
[0172] In some examples, the block dynamic quantization unit 2404 can quantize the coefficients of a block based on the total entropy of the image. For example, if the image contains large areas of homogeneous color (e.g., a large area of blue sky), the total entropy of the image may be relatively low. Therefore, when the total entropy of the image is relatively low, a higher level of quantization can be used without significantly degrading the quality of the image when it is decoded. Using a higher level of quantization can reduce the amount of information required to represent the encoded version of the image. However, if the image contains large areas of complex and rapidly changing colors, the total entropy of the image may be relatively high. Therefore, when the total entropy of the image is relatively high, a higher level of quantization may significantly degrade the quality of the image when it is decoded. In some examples, the block dynamic quantization unit 2404 can use a predefined mapping or formula to convert entropy into quantization parameters, which the block dynamic quantization unit 2404 uses to quantize the coefficients of the block. In some examples, the block dynamic quantization unit 2404 can quantize the block based on the total entropy of the block itself rather than the total entropy of the image.
[0173] Because the block dynamic quantization unit 2404 applies dynamic quantization to blocks, the number of bits per block (i.e., the number of bits representing each quantized coefficient in the block) may vary from block to block. Figure 22 In the example, block 2414 represents the number of bits.
[0174] The spectral efficiency unit 2406 can determine the spectral efficiency of the channel through which the source device 102 will transmit analog symbols. The method used to determine the spectral efficiency may be defined in some transmission standard (such as the 5G standard). Spectral efficiency can indicate how many bits, in amplitude value, the source device 102 can transmit to the destination device 116 through the channel during a symbol sampling instance. In other words, spectral efficiency can correspond to the number of bits that can be used in the amplitude value.
[0175] The spectral efficiency of a channel may vary over time. For example, the spectral efficiency of a channel may vary due to environmental conditions (e.g., rain, fog, snow, etc.). In some cases, the spectral efficiency of the channel may change when the source device 102 and / or the destination device 116 moves into or out of a building. In some cases, the spectral efficiency of the channel may change when the source device 102 and / or the destination device 116 moves closer to or farther from the wireless base station. In some cases, the spectral efficiency of the channel may change due to reflections from buildings or natural features.
[0176] In some examples, modem 108 can use a multiple-input multiple-output (MIMO) method to transmit and receive data. When using the MIMO method to transmit data, modem 108 can use multiple antennas to transmit and receive data. Transmitting data via different antennas can be analogous to transmitting data via different channels. For these different channels, there may be different spectral efficiencies. In this context, the different channels used in MIMO can be referred to as layers. Therefore, spectral efficiency unit 2406 can determine different spectral efficiencies for each layer.
[0177] Similar to the discussion above regarding packing unit 220, packing unit 2408 can generate a coefficient vector and determine the magnitude value for the coefficient vector based on the mapping pattern. Figure 24 In the context of the block, each coefficient in the coefficient vector belongs to the same block. In some cases, a single coefficient vector may exist for a block. In other examples, multiple coefficient vectors may exist for a block. Furthermore, similar to the discussion above regarding analog modulation unit 222, analog modulation unit 2412 can determine analog symbols based on multiple pairs of amplitude values. Analog modulation unit 2412 can modulate analog signals based on analog symbols.
[0178] In the example where modem 108 uses the MIMO method, the analog symbols determined by analog modulation unit 2412 based on amplitude values can be distributed across different layers. In the example where modem 108 does not use MIMO (e.g., when only a single antenna is used), only a single layer may exist, and spectral efficiency unit 2406 can determine the spectral efficiency of that single layer. In either case, modem 108 can use the same layer to transmit analog signals representing analog symbols based on the amplitude values of the coefficient vector containing the coefficients of the same block (i.e., block i). Therefore, the spectral efficiency of the analog symbol determined based on the amplitude values of the coefficient vector containing the quantized coefficients of block i through the layer through which it is transmitted can be expressed as SE. i Similarly, the bits used for each block of block i can be represented as Q. i .
[0179] While packing unit 2408 is performing a packing operation to convert the coefficient vector containing the quantized coefficients of block i into amplitude values, packing unit 2408 can use the spectral efficiency 2416 (SE) per layer for that block. i ) and 2414 bits per block (Q i More specifically, the packing unit 2408 can, for example, dynamically select the dimension of the mapping pattern used by the packing unit 2408 to determine the amplitude values for the coefficient group on a block-by-block basis. In other words, the packing unit 2408 can, for example, dynamically select the number of coefficients n in each coefficient vector on a block-by-block basis. Because higher values of n can lead to greater compression in terms of the number of bits used to represent the amplitude values for the coefficient vector (relative to the number of bits used to represent the coefficients in the coefficient vector), and because lower values of n can lead to smaller compression, the amplitude values determined by the packing unit 2408 can have a variable bit rate. The value n for block i can be represented as n i .
[0180] As described above, the packing unit 2408 can be based on the bits 2414 (i.e., Q) of each block. i ) and the spectral efficiency per layer 2416 (i.e., SE i The mapping pattern is determined by [the specific function / method]. For example, packing unit 2408 can use a predefined two-dimensional table, which has [specific parameters / methods] for SE [processing]. i One dimension and used for Q i One dimension. The value in the table cell indicates n. i The value (i.e., the number of coefficients in the coefficient vector containing the coefficients of block i). In some examples, packing unit 2408 can be achieved by using SE i Divide by Q i Determine n i The value of SE. In other words, SE iIt can be approximated as n i Multiply by Q i .
[0181] In some examples, packing unit 2408 can be based on SE. i and Q i Determine the value n i Packaging unit 2408 can be determined to use n. i Mapping patterns in dimensional space. In some examples, packing unit 2408 can be obtained from using the same n... i The choice is made among multiple mapping modes in the dimensional space. In some examples, where more allowed values can exist in some dimensions than in others (e.g., allowed values for quantized coefficients), the mapping mode can be asymmetric. For example, refer to... Figure 9 For example, there can be more available numbers on the x-axis than on the y-axis. In Q for block i... i Unlike Q used for block j j In the examples, using such an asymmetric mapping pattern can be useful. In Q i Equal to 2 and SE i In the example with 8 bits, each could contain 2 bits (i.e., Q). i =2) four quantized coefficients (i.e., n) i =4) Packed into a single 8-bit amplitude value. In another example, if SE i Equal to 8 bits, Q i It equals 4, and Q j If the value is 2, then the packing unit 2408 can pack one quantized coefficient of block i and two quantized coefficients of block j to generate a single amplitude value.
[0182] Since the value of n can change with each block, the video encoder 200 can send the value of n to the video decoder 300. In some examples, the video encoder 200 can send the value of n via a digital path. In some examples, the video encoder 200 can send the value of n as it changes, but it does not have to send the value of n separately for each block.
[0183] The power scaling unit 2410 multiplies the amplitude value by a dynamically selected scaling value. In this way, the power scaling unit 2410 can generate a scaled amplitude value. The power scaling unit 2410 can select the scaling value to ensure consistent power output of the amplitude value. Furthermore, in Figure 24In the examples, analog modulation unit 2412 can modulate the analog signal based on scaled amplitude values. For example, in some examples, analog modulation unit 2412 can determine the analog symbol based on a pair of scaled amplitude values. Modem 108 can transmit an analog signal such that, during a symbol sampling instance corresponding to the analog symbol, the analog signal has a phase shift and power corresponding to the analog symbol.
[0184] Configured relative to Figure 24 The analog decompression unit that operates in conjunction with the analog compression unit 2400 can generally operate in a manner similar to the analog decompression unit 308 (and its components) discussed elsewhere in this disclosure. However, in some examples, the unpacking unit 316 may receive an indication of the value of n (which the video encoder 200 may signal via a digital path) and may use an appropriate mapping pattern for the received value of n to unpack the coefficients according to the amplitude value.
[0185] Figure 25 This is a flowchart illustrating an example method for encoding video data according to one or more techniques based on this disclosure. Figure 25 In some examples, video encoder 200 can generate coefficients (2500) based on digital sample values of video data. In some examples, prediction unit 204 ( Figure 2 The system can generate prediction data for video data. The residual generation unit 212 can generate residual data based on digital sample values of the prediction data and the video data. The analog compression unit 214 can generate coefficients based on blocks of digital sample values in the residual data. For example, the binarization unit 216 can perform a binarization process to generate coefficients based on the residual data, and the block dynamic quantization unit 2404 can perform a quantization process to quantize the coefficients. Furthermore, in some examples, the video encoder 200 can generate digital values based on the prediction data. For example, the quantization unit 206 can quantize the digital sample values of the prediction data, and the entropy encoding unit 208 can entropy encode the quantized digital sample values to generate digital values. The modem 108 can be configured to transmit digital values. For example, the modem 108 can be configured to generate bit sequences based on digital values and modulate analog signals based on the bit sequences.
[0186] Furthermore, the spectral efficiency unit 2406 can determine the spectral efficiency used for the channel (2502). Additionally, the packetization unit 2408 can determine the value n (2504) based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block. For example, the packetization unit 2408 can look up the value n based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block. In some examples, the modem 108 is configured to output data indicating the spectral efficiency used for the channel. In some examples, the modem 108 is configured to output data indicating the value n.
[0187] Furthermore, the packing unit 2408 can generate a coefficient vector (2506). Each coefficient vector in the coefficient vector includes n coefficients. For each coefficient vector, the packing unit 2408 can determine the amplitude value for the coefficient vector based on a mapping pattern. For each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values, which is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values. For example, the packing unit 2408 can determine a position in n-dimensional space. The coordinates of the position in n-dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern maps different positions in n-dimensional space to different amplitude values among a plurality of amplitude values. In this example, the packing unit 2408 can determine the amplitude value for the coefficient vector as the amplitude value corresponding to the position determined in n-dimensional space.
[0188] Source device 102 can modulate the analog signal (2508) based on the amplitude value used for the coefficient vector. For example, analog modulation unit 222 can determine the analog symbol based on the amplitude value, and modem 108 can be configured to modulate the analog symbol based on the phase shift and power corresponding to the analog symbol. Modem 108 can output an analog signal (2510) on the channel.
[0189] Figure 26 This is a flowchart illustrating an example method for decoding video data using one or more techniques according to this disclosure. Figure 26 In the example, destination device 116 ( Figure 1 The modem 122 can be configured to receive analog signals (2600) transmitted via a channel.
[0190] Analog demodulation unit 314 ( Figure 3The analog demodulation unit 314 can demodulate the analog signal to determine the amplitude values for multiple coefficient vectors (2602). The analog demodulation unit 314 can demodulate the analog signal to determine the amplitude values, as described in any of the examples provided elsewhere in this disclosure.
[0191] The unpacking unit 316 can determine the value n (2604). The value n is based on the spectral efficiency of the channel (e.g., SEi) and the number of bits in the quantized coefficients of the block (e.g., Q). i For example, unpacking unit 316 can unpack the SE. i Divide by Q i To determine the value of n. In some examples, modem 133 is configured to receive data indicating the spectral efficiency used for the channel.
[0192] For each coefficient vector in the coefficient vector, unpacking unit 316 can determine the coefficients in the coefficient vector based on the amplitude values and mapping patterns used for the coefficient vector (2606). For each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among a plurality of amplitude values, which is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values. In some examples, as part of determining the coefficients in the coefficient vector, unpacking unit 316 can determine the coefficients in the coefficient vector as coordinates of positions in n-dimensional space corresponding to amplitude values, wherein the mapping pattern maps different positions in n-dimensional space to different amplitude values among a plurality of amplitude values.
[0193] Furthermore, the video decoder 300 can generate video data (2608) based on coefficients in the coefficient vector. In some examples, the modem 122 can be configured to output digital values based on the received signal. In this example, the video decoder 300 can generate prediction data based on the digital values. For example, the entropy decoding unit 304 can entropy decode the digital values to generate quantized digital sample values, and the dequantization unit 306 can inverse quantize the quantized digital sample values to generate prediction data. The analog decompression unit 308 can generate blocks of digital sample values in the residual data based on coefficients. For example, the dequantization unit 318 of the analog decompression unit 308 can perform an inverse quantization process to inverse quantize the coefficients, and the debinding unit 320 can perform a debinding process to generate residual data based on coefficients. The reconstruction unit 310 can generate digital sample values of the video data based on the residual data and the prediction data. For example, the reconstruction unit 310 can add the digital sample values of the residual data to the corresponding digital sample values of the prediction data to generate digital sample values of the video data.
[0194] Examples from various aspects of this disclosure may be used individually or in any combination.
[0195] The following is a non-limiting list of one or more aspects of the technology based on this disclosure.
[0196] Aspect 1A, a method for encoding video data, the method comprising: generating coefficients based on the video data; generating coefficient vectors, wherein each coefficient vector in the coefficient vectors includes n coefficients; for each coefficient vector in the coefficient vectors, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; modulating an analog signal based on the amplitude value for the coefficient vectors; and outputting the analog signal.
[0197] Aspect 2A, the method according to aspect 1A, wherein determining the amplitude value for the coefficient vector comprises: determining a position in the n-dimensional space, wherein the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values; and determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in the n-dimensional space.
[0198] Aspect 3A, the method according to aspect 1A or 2A, wherein the mapping mode maps unsigned coefficients to unsigned amplitude values.
[0199] Aspect 4A, the method according to aspect 1A or 2A, wherein the mapping mode maps signed coefficients to signed amplitude values.
[0200] Aspect 5A, the method according to aspect 1A or 2A, wherein the mapping mode maps unsigned coefficients to signed amplitude values.
[0201] Aspect 6A, the method according to any one of aspects 1A-5A, wherein n is greater than or equal to 2.
[0202] Aspect 7A, the method according to any one of Aspects 1A-3A or 5A-6A, wherein: generating the coefficients based on the video data includes: generating initial coefficients based on the video data; generating a positive / negative sign value indicating the sign of the initial coefficients; and generating the coefficients as absolute values of the initial coefficients, and the method further includes: transmitting data representing the positive / negative sign value by signaling.
[0203] Aspect 8A, the method according to any one of Aspects 1A-3A or 5A-6A, wherein: the coefficient is a non-negative version of an initial coefficient, generating the coefficient based on the video data includes: generating the initial coefficient based on the video data; determining a shift value based on the most negative initial coefficient among the initial coefficients; and performing a process of transforming the initial coefficients into the non-negative version of the initial coefficient based on the shift value, and the method further includes: transmitting data representing the shift value by signaling.
[0204] Aspect 9A, the method according to any one of Aspects 1A, 2A, 4A and 6A-8A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.
[0205] Aspect 10A, the method according to any one of Aspects 1A-9A, wherein: generating the coefficients based on the video data comprises: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values in the video data; and generating the coefficients based on the residual data, and the method further comprises: generating digital values based on the prediction data; and transmitting the digital values.
[0206] Aspect 11A, the method according to aspect 10A, wherein generating the coefficients based on the residual data includes: performing a binarization process to generate the coefficients based on the residual data; and performing a quantization process to quantize the coefficients.
[0207] Aspect 12A, the method according to aspect 10A or 11A, wherein generating the digital value based on the prediction data includes: generating a quantized digital sample value based on digital sample values in the prediction data; and performing an entropy encoding process to generate the digital value based on the quantized digital sample value.
[0208] Aspect 13A, a method for decoding video data, the method comprising: determining amplitude values for a plurality of coefficient vectors based on an analog signal; for each coefficient vector, determining coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in an n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generating the video data based on the coefficients in the coefficient vectors.
[0209] Aspect 14A, the method according to aspect 13A, wherein determining the coefficients in the coefficient vector based on the amplitude values for the coefficient vector comprises: determining the coefficients in the coefficient vector as coordinates of positions in the n-dimensional space corresponding to the amplitude values, wherein the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values.
[0210] Aspect 15A, the method according to aspect 13A or 14A, wherein the mapping mode maps unsigned coefficients to unsigned amplitude values.
[0211] Aspect 16A, the method according to aspect 13A or 14A, wherein the mapping mode maps signed coefficients to signed amplitude values.
[0212] Aspect 17A, the method according to aspect 13A or 14A, wherein the mapping mode maps unsigned coefficients to signed amplitude values.
[0213] Aspect 18A, the method according to any one of Aspects 13A-17A, wherein determining the amplitude value for the plurality of coefficient vectors comprises: determining an analog symbol corresponding to the phase shift and power of a symbol sampling instance for the analog signal; and determining the amplitude value for the coefficient vectors as a coordinate of the analog symbol in the IQ plane.
[0214] Aspect 19A, the method according to any one of aspects 13A-18A, wherein n is greater than or equal to 2.
[0215] Aspect 20A, the method according to any one of Aspects 13A-15A or 17A-19A, wherein determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern comprises: obtaining a sign value via a digital path of a modem, wherein the sign value indicates the sign of the coefficients in the coefficient vector; determining the absolute value of the coefficients in the coefficient vector based on the amplitude value for the coefficient vector and the mapping pattern; and reconstructing the coefficients in the coefficient vector at least in part by applying the sign value to the absolute value of the coefficients in the coefficient vector.
[0216] Aspect 21A, the method according to any one of Aspects 13A-15A or 17A-19A, wherein determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern comprises: obtaining data representing a shift value via a digital path of a modem, wherein the shift value indicates the most negative coefficient among the coefficients in the coefficient vector; determining an intermediate value of the coefficients in the coefficient vector based on the amplitude value for the coefficient vector and the mapping pattern; and reconstructing the coefficients in the coefficient vector at least in part by adding the shift value to each of the intermediate values of the coefficients in the coefficient vector.
[0217] Aspect 22A, the method according to any one of Aspects 13A, 14A, 16A or 18A-21A, wherein the coefficient vector comprises one or more negative coefficients and one or more positive coefficients.
[0218] Aspect 23A, the method according to any one of aspects 13A-22A, wherein generating the video data based on the coefficients in the coefficient vector comprises: obtaining digital values via a digital path of a modem; generating prediction data based on the digital values; generating residual data based on the coefficients in the coefficient vector; and generating the video data based on the prediction data and the residual data.
[0219] Aspect 24A, the method according to aspect 23A, wherein generating the residual data based on the coefficients in the coefficient vector includes: performing an inverse quantization process of inverse quantizing the coefficients in the coefficient vector; and performing a debinarization process of generating the residual data based on the inverse quantized coefficients in the coefficient vector.
[0220] Aspect 25A, the method according to any one of Aspects 23A-24A, wherein generating the prediction data based on the digital value comprises: performing an entropy decoding process to generate the digital sample value based on the digital value; and generating the prediction data at least in part by inverse quantizing the digital sample value.
[0221] Aspect 26A, an apparatus for encoding video data, the apparatus comprising: one or more processors implemented in a circuit, the one or more processors being configured to: generate coefficients based on the video data; generate coefficient vectors, wherein each coefficient vector includes n coefficients; and for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a modem configured to modulate an analog signal based on the amplitude value for the coefficient vectors.
[0222] Aspect 27A, the apparatus according to aspect 26A, wherein the one or more processors are configured such that, as part of determining the amplitude value for the coefficient vector, the one or more processors perform the following operations: determining a position in the n-dimensional space, wherein the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values; and determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in the n-dimensional space.
[0223] Aspect 28A, the device according to aspect 26A or 27A, wherein the mapping mode maps unsigned coefficients to unsigned amplitude values.
[0224] Aspect 29A, the device according to any one of aspects 26A-28A, wherein the mapping mode maps signed coefficients to signed amplitude values.
[0225] Aspect 30A, the device according to any one of Aspects 26A-28A, wherein the mapping mode maps unsigned coefficients to signed amplitude values.
[0226] Aspect 31A, the device according to any one of aspects 26A-30A, wherein n is greater than or equal to 2.
[0227] According to aspect 32A, the device according to any one of aspects 26A-28A or 30A-31A, the one or more processors are configured such that, as part of generating the coefficients based on the residual data, the one or more processors perform the following operations: generating initial coefficients based on the residual data; generating positive / negative sign values indicating the sign of the initial coefficients; and generating the coefficients as absolute values of the initial coefficients, and the modem is configured to transmit the positive / negative sign values via a digital path.
[0228] Aspect 33A, the device according to any one of aspects 26A-28A or 30A-31A, wherein: the coefficients are non-negative versions of initial coefficients, the one or more processors are configured such that: as part of generating the coefficients based on the residual data, the one or more processors perform the following operations: generating the initial coefficients based on the residual data; determining a shift value based on the most negative initial coefficient among the initial coefficients; and performing a process of transforming the initial coefficients into the non-negative version of the initial coefficients based on the shift value, and the method further includes: signaling data representing the shift value.
[0229] The device according to any one of aspects 26A-27A, 29A or 31A-33A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.
[0230] Aspect 35A, the device according to any one of aspects 26A-34A, wherein: the one or more processors are configured such that: as part of generating the coefficients based on the video data, the one or more processors perform the following operations: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values in the video data; and generating the coefficients based on the residual data, the one or more processors are further configured to generate digital values based on the prediction data, and the modem is configured to transmit the digital values.
[0231] Aspect 36A, the apparatus according to aspect 35A, wherein the one or more processors are configured such that, as part of generating the coefficients based on the residual data, the one or more processors perform the following operations: executing a binarization process for generating the coefficients based on the residual data; and executing a quantization process for quantizing the coefficients.
[0232] Aspect 37A, the apparatus according to any one of aspects 35A-36A, wherein the one or more processors are configured such that, as part of generating the digital value based on the prediction data, the one or more processors perform the following operations: generating quantized digital sample values based on digital sample values in the prediction data; and performing an entropy encoding process for generating the digital value based on the quantized digital sample values.
[0233] Aspect 38A, the device according to any one of aspects 26A-37A, wherein the device includes one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
[0234] Aspect 39A, an apparatus for decoding video data, the apparatus comprising: a modem configured to receive an analog signal; and one or more processors implemented in a circuit, the one or more processors being configured to: determine amplitude values for a plurality of coefficient vectors based on the analog signal; for each of the coefficient vectors, determine coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in an n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate video data based on the coefficients in the coefficient vectors.
[0235] Aspect 40A, the apparatus according to aspect 39A, wherein the one or more processors are configured such that, as a part of determining coefficients in the coefficient vector based on the amplitude values for the coefficient vector, the one or more processors perform the following operation: determining the coefficients in the coefficient vector as coordinates of positions in the n-dimensional space corresponding to the amplitude values, wherein the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values.
[0236] Aspect 41A, the device according to aspect 39A or 40A, wherein the mapping mode maps unsigned coefficients to unsigned amplitude values.
[0237] Aspect 42A, the device according to aspect 39A or 40A, wherein the mapping mode maps signed coefficients to signed amplitude values.
[0238] Aspect 43A, the device according to aspect 39A or 40A, wherein the mapping mode maps unsigned coefficients to signed amplitude values.
[0239] Aspect 44A, the apparatus according to any one of aspects 39A-43A, wherein: the modem is configured to determine an analog symbol corresponding to the phase shift and power of a symbol sampling instance for the analog signal, and wherein the one or more processors are configured such that: as part of determining the amplitude value for the plurality of coefficient vectors, the one or more processors determine the amplitude value for the coefficient vector as a coordinate of the analog symbol in the IQ plane.
[0240] Aspect 45A, the device according to any one of aspects 39A-44A, wherein n is greater than or equal to 2.
[0241] Aspect 46A, the device according to any one of aspects 39A-41A or 43A-45A, wherein the one or more processors are configured such that, as part of determining the coefficients in the coefficient vector based on the amplitude value and the mapping mode, the one or more processors perform the following operations: obtaining a sign value via the digital path of the modem, wherein the sign value indicates the sign of the coefficients in the coefficient vector; determining the absolute value of the coefficients in the coefficient vector based on the amplitude value for the coefficient vector and the mapping mode; and reconstructing the coefficients in the coefficient vector at least in part by applying the sign value to the absolute value of the coefficients in the coefficient vector.
[0242] Aspect 47A, the device according to any one of aspects 39A-41A or 43A-45A, wherein the one or more processors are configured such that, as part of determining the coefficients in the coefficient vector based on the amplitude value and the mapping pattern, the one or more processors perform the following operations: obtaining data representing a shift value via the digital path of the modem, wherein the shift value indicates the most negative coefficient among the coefficients in the coefficient vector; determining an intermediate value of the coefficients in the coefficient vector based on the amplitude value for the coefficient vector and the mapping pattern; and reconstructing the coefficients in the coefficient vector at least in part by adding the shift value to each of the intermediate values of the coefficients in the coefficient vector.
[0243] The device according to any one of aspects 39A-40A, 42A, 44A-47A, wherein the coefficient vector includes one or more negative coefficients and one or more positive coefficients.
[0244] Aspect 49A, the apparatus according to any one of aspects 39A-48A, wherein the one or more processors are configured such that, as part of generating the video data based on the coefficients in the coefficient vector, the one or more processors perform the following operations: obtaining digital values via a digital path of a modem; generating prediction data based on the digital values; generating prediction data for a current block of the analog video data; generating residual data based on the coefficients in the coefficient vector; and generating the video data based on the prediction data and the residual data.
[0245] Aspect 50A, the apparatus according to aspect 49A, wherein the one or more processors are configured such that, as part of generating the residual data based on the coefficients in the coefficient vector, the one or more processors perform the following operations: performing an inverse quantization process to inverse quantize the coefficients in the coefficient vector; and performing a debinarization process to generate the residual data based on the inverse quantized coefficients in the coefficient vector.
[0246] Aspect 51A, the apparatus according to aspect 49A or 50A, wherein the one or more processors are configured such that, as part of generating the prediction data based on the digital values, the one or more processors perform the following operations: executing an entropy decoding process to generate the digital sample values based on the digital values; and generating the prediction data at least in part by inverse quantizing the digital sample values.
[0247] Aspect 52A, the device according to any one of aspects 39A-51A, wherein the device includes one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
[0248] Aspect 53A, an apparatus for encoding video data, the apparatus comprising: a unit for generating coefficients based on the video data; a unit for generating coefficient vectors, wherein each coefficient vector includes n coefficients; a unit for determining an amplitude value for each coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a unit for modulating an analog signal based on the amplitude value for the coefficient vectors.
[0249] Aspect 54A, an apparatus for decoding video data, the apparatus comprising: a unit for determining amplitude values for a plurality of coefficient vectors based on an analog signal; a unit for determining coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern for each of the coefficient vectors, wherein, for each corresponding allowed coefficient vector in the plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value in the plurality of amplitude values, and the corresponding amplitude value is adjacent in an n-dimensional space to at least one other amplitude value in the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a unit for generating video data based on the coefficients in the coefficient vectors.
[0250] Aspect 55A, a computer-readable data storage medium having instructions stored thereon, the instructions, when executed, causing one or more processors to: generate coefficients based on video data; generate coefficient vectors, wherein each coefficient vector includes n coefficients; for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and modulate an analog signal based on the amplitude value for the coefficient vectors.
[0251] Aspect 56A, a computer-readable data storage medium having instructions stored thereon, which, when executed, cause one or more processors to: determine amplitude values for a plurality of coefficient vectors based on an analog signal; for each of the coefficient vectors, determine coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each of the plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate video data based on the coefficients in the coefficient vectors.
[0252] Aspect 1B, a method for encoding video data, the method comprising: generating coefficients based on digital sample values of the video data; determining a spectral efficiency of a channel for transmitting an analog signal thereon; determining a value n based on the spectral efficiency of the channel; generating a coefficient vector, wherein each coefficient vector includes n coefficients; for each coefficient vector, determining an amplitude value for the coefficient vector based on a mapping pattern, wherein for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; modulating the analog signal based on the amplitude value for the coefficient vector; and outputting the analog signal on the channel.
[0253] Aspect 2B, according to the method of aspect 1B, wherein determining the amplitude value for the coefficient vector comprises: determining a position in the n-dimensional space, wherein the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values; and determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in the n-dimensional space.
[0254] Aspect 3B, the method according to any one of Aspects 1B-2B, wherein: generating the coefficients based on the video data comprises: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values of the video data; and generating the coefficients based on blocks of digital sample values in the residual data, and the method further comprises: generating digital values based on the prediction data; and transmitting the digital values.
[0255] Aspect 4B, according to the method of aspect 3B, wherein generating the coefficients based on the video data includes: performing a binarization process to generate the coefficients based on the residual data; and performing a quantization process to quantize the coefficients.
[0256] Aspect 5B, according to the method of aspect 4B, wherein determining the value n comprises: determining the value n based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block.
[0257] Aspect 6B, the method according to any one of aspects 1B-5B, further includes: outputting data indicating the spectral efficiency for the channel.
[0258] Aspect 7B, a method for decoding video data, the method comprising: receiving an analog signal transmitted via a channel; demodulating the analog signal to determine amplitude values for a plurality of coefficient vectors; determining a value n, wherein the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determining coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in an n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generating the video data based on the coefficients in the coefficient vectors.
[0259] Aspect 8B, according to the method described in aspect 7B, wherein determining the coefficients in the coefficient vector includes: determining the coefficients in the coefficient vector as coordinates of positions in the n-dimensional space corresponding to the amplitude values, wherein the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values.
[0260] Aspect 9B, the method according to aspect 7B or 8B, wherein: the method further comprises: receiving digital values; generating prediction data based on the digital values; and generating the video data based on the coefficients in the coefficient vector comprises: generating blocks of digital sample values in residual data based on the coefficients; and generating digital sample values of the video data based on the residual data and the prediction data.
[0261] Aspect 10B, the method according to aspect 9B, wherein the block for generating the digital sample values in the residual data based on the coefficients includes: performing an inverse quantization process of inverse quantization of the coefficients; and performing a debinarization process for generating the residual data based on the coefficients.
[0262] Aspect 11B, the method according to aspect 10B, wherein the value n is based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block.
[0263] Aspect 12B, the method according to any one of aspects 7B-11B, further includes: receiving data indicating the spectral efficiency for the channel.
[0264] Aspect 13B, an apparatus for encoding video data, the apparatus comprising: a memory configured to store the video data; one or more processors implemented in a circuit, the one or more processors configured to: generate coefficients based on digital sample values of the video data; determine a spectral efficiency of a channel on which an analog signal is to be output; determine a value n based on the spectral efficiency of the channel; generate a coefficient vector, wherein each coefficient vector includes n coefficients; for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and modulate the analog signal based on the amplitude value for the coefficient vector; and a modem configured to output the analog signal on the channel.
[0265] Aspect 14B, the apparatus according to aspect 13B, wherein the one or more processors are configured such that, as part of determining the amplitude value for the coefficient vector, the one or more processors perform the following operations: determining a position in the n-dimensional space, wherein the coordinates of the position in the n-dimensional space are based on the coefficients of the coefficient vector, and the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values; and determining the amplitude value for the coefficient vector as the amplitude value corresponding to the determined position in the n-dimensional space.
[0266] Aspect 15B, the apparatus according to any one of aspects 13B-14B, wherein: the one or more processors are configured such that, as part of generating the coefficients based on the video data, the one or more processors perform the following operations: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values of the video data; and generating the coefficients based on blocks of digital sample values in the residual data, and the one or more processors are further configured to: generate digital values based on the prediction data, and the modem is configured to: transmit the digital values.
[0267] Aspect 16B, the apparatus according to aspect 15B, wherein the one or more processors are configured such that, as part of generating the coefficients based on the video data, the one or more processors perform the following operations: executing a binarization process to generate the coefficients based on the residual data; and executing a quantization process to quantize the coefficients.
[0268] Aspect 17B, the apparatus according to aspect 16B, wherein the one or more processors are configured such that, as part of determining the value n, the one or more processors determine the value n based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block.
[0269] Aspect 18B, the apparatus according to any one of aspects 13B-17B, wherein the modem is further configured to output data indicating the spectral efficiency for the channel.
[0270] Aspect 19B, the device according to any one of aspects 13B-18B, wherein the device includes one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
[0271] Aspect 20B, an apparatus for decoding video data, the apparatus comprising: a modem configured to receive an analog signal transmitted via a channel; one or more processors implemented in a circuit, the one or more processors configured to: demodulate the analog signal to determine amplitude values for a plurality of coefficient vectors; determine a value n, wherein the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate the video data based on the coefficients in the coefficient vectors.
[0272] Aspect 21B, the apparatus according to aspect 20B, wherein the one or more processors are configured such that, as part of determining the coefficients in the coefficient vector, the one or more processors perform the following operation: determining the coefficients in the coefficient vector as coordinates of positions in the n-dimensional space corresponding to the amplitude values, wherein the mapping mode maps different positions in the n-dimensional space to different amplitude values among the plurality of amplitude values.
[0273] Aspect 22B, the apparatus according to aspect 20B or 21B, wherein: the modem is further configured to receive digital values; the one or more processors are further configured to generate prediction data based on the digital values; and the one or more processors are configured such that, as part of generating the video data based on the coefficients in the coefficient vector, the one or more processors perform the following operations: generating blocks of digital sample values in residual data based on the coefficients; and generating digital sample values of the video data based on the residual data and the prediction data.
[0274] Aspect 23B, the apparatus according to aspect 22B, wherein the one or more processors are configured such that, as part of a block for generating the digital sample values in the residual data based on the coefficients, the one or more processors perform the following operations: performing an inverse quantization process to inverse quantize the coefficients; and performing a debinarization process to generate the residual data based on the coefficients.
[0275] Aspect 24B, the apparatus according to aspect 23B, wherein the value n is based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block.
[0276] Aspect 25B, the device according to any one of aspects 20B-24B, wherein the modem is further configured to: receive data indicating the spectral efficiency for the channel.
[0277] Aspect 26B, the device according to any one of aspects 20B-25B, wherein the device includes one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
[0278] Aspect 27B, an apparatus for encoding video data, the apparatus comprising: a unit for generating coefficients based on digital sample values of the video data; a unit for determining the spectral efficiency of a channel on which an analog signal is to be output; a unit for determining a value n based on the spectral efficiency of the channel; a unit for generating coefficient vectors, wherein each coefficient vector includes n coefficients; a unit for determining an amplitude value for each coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; a unit for modulating the analog signal based on the amplitude value for the coefficient vectors; and a unit for outputting the analog signal on the channel.
[0279] Aspect 28B, an apparatus for decoding video data, the apparatus comprising: a unit for receiving an analog signal transmitted via a channel; a unit for demodulating the analog signal to determine amplitude values for a plurality of coefficient vectors; a unit for determining a value n, wherein the value n is based on the spectral efficiency of the channel; a unit for determining coefficients in the coefficient vectors based on the amplitude values for the coefficient vectors and a mapping pattern for each coefficient vector, wherein, for each of the plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and a unit for generating the video data based on the coefficients in the coefficient vectors.
[0280] Aspect 29B, a computer-readable data storage medium having instructions stored thereon, which, when executed, cause one or more processors to: generate coefficients based on digital sample values of video data; determine the spectral efficiency of a channel on which an analog signal is to be output; determine a value n based on the spectral efficiency of the channel; generate a coefficient vector, wherein each coefficient vector includes n coefficients; for each coefficient vector, determine an amplitude value for the coefficient vector based on a mapping pattern, wherein, for each of a plurality of permitted coefficient vectors: the mapping pattern maps the corresponding permitted coefficient vector to a corresponding amplitude value among a plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; modulate the analog signal based on the amplitude value for the coefficient vector; and output the analog signal on the channel.
[0281] Aspect 30B, a computer-readable data storage medium having instructions stored thereon, which, when executed, cause one or more processors to: receive an analog signal transmitted via a channel; demodulate the analog signal to determine amplitude values for a plurality of coefficient vectors; determine a value n, wherein the value n is based on the spectral efficiency of the channel; for each of the coefficient vectors, determine a coefficient in the coefficient vector based on the amplitude values for the coefficient vector and a mapping pattern, wherein, for each of the plurality of allowed coefficient vectors, the mapping pattern maps the corresponding allowed coefficient vector to a corresponding amplitude value among the plurality of amplitude values, and the corresponding amplitude value is adjacent in n-dimensional space to at least one other amplitude value among the plurality of amplitude values, the at least one other amplitude value being adjacent to the corresponding amplitude value in a monotonic number axis of the amplitude values; and generate video data based on the coefficients in the coefficient vectors.
[0282] Aspect 1C, a method for encoding video data, the method comprising: generating prediction data for the video data; generating residual data based on the prediction data and digital sample values of the video data; generating coefficients based on the residual data; performing an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; generating digital values based on the prediction data; and outputting one or more analog signals modulated based on the interleaved amplitude values and the digital values.
[0283] Aspect 2C, the method according to aspect 1C, wherein: the method further comprises: performing a mapping process to map the interleaved amplitude values from an original number axis to mapping values in an alternative number axis including one or more gap ranges, wherein the gap ranges are located in the original number axis at positions relating to the effect of noise on bit flips in the interleaved amplitude values demodulated according to the analog signal, and the mapping process does not map any interleaved amplitude values to any value in any gap range of the one or more gap ranges, and outputting the one or more analog signals includes modulating the analog signal based on the mapping values.
[0284] Aspect 3C, the method according to aspect 1C or 2C, wherein the interleaving process interleaves bits of two or four coefficients of the coefficients.
[0285] Aspect 4C, the method according to any one of Aspects 1C-3C, wherein generating the coefficients based on the residual data comprises: performing a binarization process to generate the coefficients based on the residual data; and performing a quantization process to quantize the coefficients.
[0286] Aspect 5C, the method according to any one of Aspects 1C-4C, wherein generating the digital value based on the prediction data comprises: generating a quantized digital sample value based on digital sample values in the prediction data; and performing an entropy coding process to generate the digital value based on the quantized digital sample value.
[0287] Aspect 6C, the method according to any one of aspects 1C-5C, further includes: selecting the interleaving process from a plurality of interleaving processes based on the spectral efficiency of the channel through which the analog signal is transmitted.
[0288] Aspect 7C, the method according to aspect 6C, wherein each interleaving process in the interleaving process interleaves a different number of the coefficients.
[0289] Aspect 8C, a method for decoding video data, the method comprising: determining an interleaved amplitude value based on an analog signal; performing a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude value; generating residual data based on the two or more coefficients; obtaining digital values; generating prediction data based on the digital values; and reconstructing the video data based on the prediction data and the residual data.
[0290] Aspect 9C, the method according to Aspect 8C, wherein determining the interleaved amplitude value based on the analog signal comprises: demodulating the analog signal to determine a mapping value generated using a mapping process that maps the interleaved amplitude value in the original number line to a mapping value in an alternative number line including one or more gap ranges, wherein the gap ranges are located in the original number line at positions related to the effect of noise on bit flips in the interleaved amplitude value demodulated according to the analog signal, and the mapping process does not map any interleaved amplitude value in the interleaved amplitude value to any value in any gap range of the one or more gap ranges; and using the inverse process of the mapping process to map the mapping value to the interleaved amplitude value.
[0291] Aspect 10C, the method according to aspect 9C, wherein: the mapped value determined by demodulating the analog signal is in one gap range of the gap range, and the inverse process of the mapping process maps the mapped value in the gap range to a value in the original number line.
[0292] Aspect 11C, the method according to any one of Aspects 8C-10C, wherein the deinterleaving process deinterleaves bits of two or four of the coefficients.
[0293] Aspect 12C, the method according to any one of Aspects 8C-11C, wherein determining the interleaved amplitude value based on the analog signal comprises: determining an analog symbol corresponding to the phase shift and power of a symbol sampling instance for the analog signal, wherein the interleaved amplitude value is equal to the coordinates of the analog symbol in the IQ plane.
[0294] Aspect 13C, the method according to any one of Aspects 8C-12C, wherein generating the residual data based on the coefficients comprises: performing an inverse quantization process of inverse quantization of the coefficients; and performing a debinarization process of generating the residual data based on the coefficients.
[0295] Aspect 14C, the method according to any one of Aspects 8C-13C, wherein generating the prediction data based on the digital value comprises: performing an entropy decoding process to generate quantized digital sample values based on the digitized value; and performing an inverse quantization process to generate digital sample values in the prediction data based on the inverse quantized digital sample values.
[0296] Aspect 15C, the method according to any one of aspects 8C-13C, further includes: selecting the deinterleaving process from a plurality of deinterleaving processes based on the spectral efficiency of the channel through which the analog signal is transmitted.
[0297] Aspect 16C, the method according to aspect 15C, wherein each deinterleaving process in the deinterleaving process deinterleaves a different number of the coefficients.
[0298] Aspect 17C, an apparatus for encoding video data, the apparatus comprising: a memory configured to store the video data; one or more processors implemented in a circuit, the one or more processors configured to: generate prediction data for the video data; generate residual data based on the prediction data and digital sample values of the video data; generate coefficients based on the residual data; perform an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; and generate digital values based on the prediction data; and a modem configured to output one or more analog signals modulated based on the interleaved amplitude values and the digital values.
[0299] Aspect 18C, the apparatus according to aspect 17C, wherein: the one or more processors are further configured to: perform a mapping process that maps the interleaved amplitude values from an original number axis to mapped values in an alternative number axis including one or more gap ranges, wherein the gap ranges are located in the original number axis at positions relating to the effect of noise on bit flips in the interleaved amplitude values demodulated according to the analog signal, and the mapping process does not map any interleaved amplitude value to any value in any gap range of the one or more gap ranges; and the one or more processors are configured such that: as part of outputting the one or more analog signals, the modem modulates the analog signal based on the mapped values.
[0300] Aspect 19C, the apparatus according to aspect 17C or 18C, wherein the interleaving process interleaves bits of two or four of the coefficients.
[0301] According to aspect 20C, the apparatus according to any one of aspects 17C-19C, wherein the one or more processors are configured such that, as part of generating the coefficients based on the residual data, the one or more processors perform the following operations: performing a binarization process to generate the coefficients based on the residual data; and performing a quantization process to quantize the coefficients.
[0302] Aspect 21C, the apparatus according to any one of aspects 17C-20C, wherein the one or more processors are configured such that, as part of generating the digital value based on the prediction data, the one or more processors perform the following operations: generating quantized digital sample values based on digital sample values in the prediction data; and performing an entropy encoding process for generating the digital value based on the quantized digital sample values.
[0303] Aspect 22C, the apparatus according to any one of aspects 17C-21C, wherein the one or more processors are further configured to select the interleaving process from a plurality of interleaving processes based on the spectral efficiency of the channel through which the analog signal is transmitted.
[0304] Aspect 23C, the apparatus according to aspect 22C, wherein each interleaving process in the interleaving process interleaves a different number of the coefficients.
[0305] Aspect 24C, the device according to any one of aspects 17C-23C, wherein the device includes one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
[0306] Aspect 25C, an apparatus for decoding video data, the apparatus comprising: a modem configured to acquire an analog signal and digital values; and one or more processors implemented in a circuit, the one or more processors being configured to: determine interleaved amplitude values based on the analog signal; perform a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude values; generate residual data based on the two or more coefficients; acquire digital values; generate prediction data based on the digital values; and reconstruct the video data based on the prediction data and the residual data.
[0307] Aspect 26C, the apparatus according to aspect 25C, wherein the one or more processors are configured such that, as part of determining the interleaved amplitude value based on the analog signal, the one or more processors perform the following operations: demodulating the analog signal to determine a mapping value generated using a mapping process that maps the interleaved amplitude value in the original number line to a mapping value in an alternative number line including one or more gap ranges, wherein the gap ranges are located in the original number line at positions related to the effect of noise on bit flips in the interleaved amplitude value demodulated according to the analog signal, and the mapping process does not map any interleaved amplitude value in the interleaved amplitude value to any value in any gap range of the one or more gap ranges; and using the inverse process of the mapping process to map the mapping value to the interleaved amplitude value.
[0308] Aspect 27C, the apparatus according to aspect 26C, wherein: the mapped value determined by demodulating the analog signal is in one gap range of the gap range, and the inverse process of the mapping process maps the mapped value in the gap range to a value in the original number line.
[0309] Aspect 28C, the apparatus according to any one of aspects 25C-27C, wherein the deinterleaving process deinterleaves bits of two or four of the coefficients.
[0310] Aspect 29C, the apparatus according to any one of aspects 25C-28C, wherein the one or more processors are configured such that, as part of determining the interleaved amplitude value based on the analog signal, the one or more processors perform the following operation: determining an analog symbol corresponding to the phase shift and power of a symbol sampling instance for the analog signal, wherein the interleaved amplitude value is equal to the coordinates of the analog symbol in the IQ plane.
[0311] According to aspect 30C, the apparatus according to any one of aspects 25C-29C, wherein the one or more processors are configured such that, as part of generating the residual data based on the coefficients, the one or more processors perform the following operations: performing an inverse quantization process to inverse quantize the coefficients; and performing a debinarization process to generate the residual data based on the coefficients.
[0312] Aspect 31C, the apparatus according to any one of aspects 25C-30C, wherein the one or more processors are configured such that, as part of generating the prediction data based on the digital values, the one or more processors perform: an entropy decoding process to generate quantized digital sample values based on the digitized values; and an inverse quantization process to generate digital sample values in the prediction data based on the inverse quantized digital sample values.
[0313] Aspect 32C, the apparatus according to aspect 31C, wherein the one or more processors are further configured to: select the deinterleaving process from a plurality of deinterleaving processes based on the spectral efficiency of the channel through which the analog signal is transmitted.
[0314] Aspect 33C, the apparatus according to aspect 32C, wherein each deinterleaving process in the deinterleaving process deinterleaves a different number of the coefficients.
[0315] Aspect 34C, the device according to any one of aspects 27C-33C, wherein the device includes one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.
[0316] Aspect 35C, an apparatus for encoding video data, the apparatus comprising: a unit for generating prediction data for the video data; a unit for generating residual data based on the prediction data and digital sample values of the video data; a unit for generating coefficients based on the residual data; a unit for performing an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; a unit for modulating an analog signal based on the interleaved amplitude values; a unit for generating digital values based on the prediction data; and a unit for outputting the analog signal and the digital values based on the prediction blocks.
[0317] Aspect 36C, an apparatus for decoding video data, the apparatus comprising: a unit for determining interleaved amplitude values based on an analog signal; a unit for performing a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude values; a unit for generating residual data based on the two or more coefficients; a unit for obtaining digital values; a unit for generating prediction data based on the digital values; and a unit for reconstructing the video data based on the prediction data and the residual data.
[0318] Aspect 37C, a computer-readable data storage medium having instructions stored thereon, the instructions, when executed, causing one or more processors to: generate prediction data for video data; generate residual data based on the prediction data and digital sample values of the video data; generate coefficients based on the residual data; perform an interleaving process to generate interleaved amplitude values, wherein the interleaving process interleaves bits of two or more coefficients to generate the interleaved amplitude values; modulate an analog signal based on the interleaved amplitude values; generate digital values based on the prediction data; and output the analog signal and the digital values based on the prediction blocks.
[0319] Aspect 38C, a computer-readable data storage medium having instructions stored thereon, which, when executed, cause one or more processors to: determine an interleaved amplitude value based on an analog signal; perform a deinterleaving process to generate two or more coefficients, wherein bits of the two or more coefficients are interleaved in the interleaved amplitude value; generate residual data based on the two or more coefficients; obtain digital values; generate prediction data based on the digital values; and reconstruct the video data based on the prediction data and the residual data.
[0320] It should be recognized that, based on the examples, certain actions or events of any technique described herein may be performed in a different order, may be added, combined, or may be omitted entirely (e.g., not all of the actions or events described are necessary for practicing the technique). Furthermore, in some examples, actions or events may be performed concurrently rather than sequentially, for example, through multithreaded processing, interrupt handling, or multiple processors.
[0321] In one or more examples, the described functionality may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored or transmitted as one or more instructions or code on or through a computer-readable medium and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium, which corresponds to a tangible medium such as a data storage medium or a communication medium, including, for example, any medium that facilitates the transfer of a computer program from one place to another according to a communication protocol. In this way, a computer-readable medium may generally correspond to (1) a non-transitory tangible computer-readable storage medium or (2) a communication medium such as a signal or carrier wave. A data storage medium may be any available medium that can be accessed by one or more computers or one or more processors to obtain instructions, code, and / or data structures for implementing the techniques described in this disclosure. Computer program products may include computer-readable media.
[0322] For example, rather than limiting, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage, disk storage or other magnetic storage devices, flash memory, or any other medium capable of storing desired program code in the form of instructions or data structures and accessible by a computer. Furthermore, any connection is appropriately referred to as a computer-readable medium. For example, coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technology (e.g., infrared, radio, and microwave) is included in the definition of medium if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology (e.g., infrared, radio, and microwave). However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but rather refer instead to non-transient tangible storage media. As used herein, disks and optical discs include compact optical discs (CDs), laser optical discs, optical discs, digital versatile optical discs (DVDs), floppy disks, and Blu-ray discs, wherein disks typically magnetically copy data, while optical discs utilize lasers to optically copy data. Combinations of the above items should also be included within the scope of computer-readable media.
[0323] Instructions can be executed by one or more processors (e.g., programmable processors), such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, the terms "processor" and "processing circuitry" as used herein can refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Additionally, in some aspects, the functionality described herein can be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into combined codecs. Furthermore, the techniques can be implemented entirely within one or more circuit or logic elements.
[0324] The technologies disclosed herein can be implemented in a wide variety of devices or apparatuses, including wireless mobile phones, integrated circuits (ICs), or a set of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to emphasize functional aspects of a device configured to perform the disclosed technologies, but they do not necessarily need to be implemented through different hardware units. Rather, as described above, various units can be combined in a codec hardware unit, or provided by a collection of interoperable hardware units (including one or more processors as described above) combined with appropriate software and / or firmware.
[0325] Various examples have been described. These and other examples are within the scope of the appended claims.
Claims
1. A method for encoding video data, the method comprising: Coefficients are generated based on digital sample values of the video data; Determine the spectral efficiency of the channel on which analog signals will be transmitted; The value is determined based on the spectral efficiency of the channel. n ; Generate a coefficient vector, wherein each coefficient vector in the coefficient vector includes the coefficients. n One coefficient; For each of the coefficient vectors, an amplitude value for the coefficient vector is determined based on a mapping pattern, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and The analog signal is modulated based on the amplitude values used for the coefficient vector; and The analog signal is output on the channel.
2. The method according to claim 1, wherein, Determining the magnitude value for the coefficient vector includes: Determine the n The position in 3D space, wherein, the n The coordinates of the position in the dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern will... n Different positions in the dimensional space are mapped to different amplitude values among the plurality of amplitude values; and The magnitude value used for the coefficient vector is determined to be similar to the... n The amplitude value corresponding to the determined position in dimensional space.
3. The method according to claim 1, wherein: Generating the coefficients based on the video data includes: Generate prediction data for the video data; Residual data is generated based on the digital sample values of the predicted data and the video data; and The coefficients are generated based on blocks of digital sample values in the residual data, and The method further includes: Generate numerical values based on the predicted data; and Send the numerical value.
4. The method according to claim 3, wherein, Generating the coefficients based on the video data includes: Perform a binarization process to generate the coefficients based on the residual data; and Perform a quantization process to quantize the coefficients.
5. The method according to claim 4, wherein, Determine the value n This includes determining the value based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block. n .
6. The method according to claim 1, further comprising: The output indicates the spectral efficiency used for the channel.
7. A method for decoding video data, the method comprising: Receive analog signals transmitted via the channel; The analog signal is demodulated to determine the amplitude values for multiple coefficient vectors; Determined value n , where the value n It is determined based on the spectral efficiency of the channel; For each coefficient vector in the coefficient vector, a coefficient in the coefficient vector is determined based on the magnitude value and mapping pattern used for the coefficient vector, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and The video data is generated based on the coefficients in the coefficient vector.
8. The method according to claim 7, wherein, Determining the coefficients in the coefficient vector includes: The coefficients in the coefficient vector are determined as the... n The coordinates of the position corresponding to the amplitude value in dimensional space, wherein the mapping mode will... n Different positions in the dimensional space are mapped to different amplitude values among the multiple amplitude values.
9. The method according to claim 7, wherein: The method further includes: Receive digital values; Predictive data is generated based on the numerical values; and Generating the video data based on the coefficients in the coefficient vector includes: Based on the coefficients, generate blocks of numerical sample values in the residual data; and The digital sample values of the video data are generated based on the residual data and the predicted data.
10. The method according to claim 9, wherein, The blocks used to generate the numerical sample values in the residual data based on the coefficients include: Perform the inverse quantization process on the coefficients; and Perform a debinarization process to generate the residual data based on the coefficients.
11. The method according to claim 10, wherein, The value n It is based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block.
12. The method of claim 7, further comprising: Receive data indicating the spectral efficiency of the channel.
13. An apparatus for encoding video data, the apparatus comprising: A memory configured to store the video data; One or more processors implemented in a circuit, said one or more processors being configured to: Coefficients are generated based on digital sample values of the video data; Determine the spectral efficiency of the channel on which analog signals will be output; The value is determined based on the spectral efficiency of the channel. n ; Generate a coefficient vector, wherein each coefficient vector in the coefficient vector includes the coefficients. n One coefficient; For each of the coefficient vectors, an amplitude value for the coefficient vector is determined based on a mapping pattern, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and The analog signal is modulated based on the amplitude values used for the coefficient vector; and A modem configured to output the analog signal on the channel.
14. The device according to claim 13, wherein, The one or more processors are configured such that, as part of determining the magnitude value for the coefficient vector, the one or more processors perform the following operations: Determine the n The position in 3D space, wherein, the n The coordinates of the position in the dimensional space are based on the coefficients of the coefficient vector, and the mapping pattern will... n Different positions in the dimensional space are mapped to different amplitude values among the plurality of amplitude values; and The magnitude value used for the coefficient vector is determined to be similar to the... n The amplitude value corresponding to the determined position in dimensional space.
15. The device according to claim 13, wherein: The one or more processors are configured such that, as part of generating the coefficients based on the video data, the one or more processors perform the following operations: Generate prediction data for the video data; Residual data is generated based on the digital sample values of the predicted data and the video data; and The coefficients are generated based on blocks of digital sample values in the residual data, and The one or more processors are further configured to: generate numerical values based on the predicted data, and The modem is configured to transmit the digital value.
16. The device according to claim 15, wherein, The one or more processors are configured such that, as part of generating the coefficients based on the video data, the one or more processors perform the following operations: Perform a binarization process to generate the coefficients based on the residual data; as well as Perform a quantization process to quantize the coefficients.
17. The device according to claim 16, wherein, The one or more processors are configured such that: as determining the value n As part of the process, the one or more processors determine the value based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block. n .
18. The device according to claim 13, wherein, The modem is also configured to output data indicating the spectral efficiency of the channel.
19. The device according to claim 13, wherein, The device includes one or more of a camera, computer, mobile device, broadcast receiver device or set-top box.
20. An apparatus for decoding video data, the apparatus comprising: A modem, configured to receive analog signals transmitted via a channel; One or more processors implemented in a circuit, said one or more processors being configured to: The analog signal is demodulated to determine the amplitude values for multiple coefficient vectors; Determined value n , where the value n It is determined based on the spectral efficiency of the channel; For each coefficient vector in the coefficient vector, a coefficient in the coefficient vector is determined based on the magnitude value and mapping pattern used for the coefficient vector, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and The video data is generated based on the coefficients in the coefficient vector.
21. The device according to claim 20, wherein, The one or more processors are configured such that, as part of determining the coefficients in the coefficient vector, the one or more processors perform the following operations: The coefficients in the coefficient vector are determined as the... n The coordinates of the position corresponding to the amplitude value in dimensional space, wherein the mapping mode will... n Different positions in the dimensional space are mapped to different amplitude values among the multiple amplitude values.
22. The device according to claim 20, wherein: The modem is also configured to receive digital values; The one or more processors are further configured to generate predictive data based on the numerical values; and The one or more processors are configured such that, as part of generating the video data based on the coefficients in the coefficient vector, the one or more processors perform the following operations: Based on the coefficients, generate blocks of digital sample values in the residual data; as well as The digital sample values of the video data are generated based on the residual data and the predicted data.
23. The device according to claim 22, wherein, The one or more processors are configured such that, as part of a block for generating the numerical sample values in the residual data based on the coefficients, the one or more processors perform the following operations: Perform the inverse quantization process on the coefficients; as well as Perform a debinarization process to generate the residual data based on the coefficients.
24. The device according to claim 23, wherein, The value n It is based on the spectral efficiency of the channel and the number of bits in the quantized coefficients of the block.
25. The device according to claim 20, wherein, The modem is also configured to receive data indicating the spectral efficiency for the channel.
26. The device according to claim 20, wherein, The device includes one or more of a camera, computer, mobile device, broadcast receiver device or set-top box.
27. An apparatus for encoding video data, the apparatus comprising: A unit for generating coefficients based on digital sample values of the video data; A unit used to determine the spectral efficiency of a channel on which analog signals are to be output; Used to determine the value based on the spectral efficiency of the channel. n Units; A unit for generating coefficient vectors, wherein each coefficient vector in the coefficient vectors includes the coefficients. n One coefficient; A unit for determining the magnitude value for each coefficient vector in the coefficient vectors based on a mapping pattern, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and A unit for modulating the analog signal based on the amplitude value for the coefficient vector; and A unit for outputting the analog signal on the channel.
28. An apparatus for decoding video data, the apparatus comprising: A unit used to receive analog signals transmitted via a channel; A unit used to demodulate the analog signal to determine the amplitude values for multiple coefficient vectors; Used to determine values n The unit, wherein the value n It is determined based on the spectral efficiency of the channel; A unit for determining the coefficients in the coefficient vector based on the magnitude value and mapping pattern for each of the coefficient vectors, wherein, for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and A unit for generating the video data based on the coefficients in the coefficient vector.
29. A computer-readable data storage medium having instructions stored thereon, said instructions, when executed, causing one or more processors to perform the following operations: Coefficients are generated based on digital sample values from video data; Determine the spectral efficiency of the channel on which analog signals will be output; The value is determined based on the spectral efficiency of the channel. n ; Generate a coefficient vector, wherein each coefficient vector in the coefficient vector includes the coefficients. n One coefficient; For each of the coefficient vectors, an amplitude value for the coefficient vector is determined based on a mapping pattern, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value on the monotonic number axis of the amplitude values; and The analog signal is modulated based on the amplitude values used for the coefficient vector; and The analog signal is output on the channel.
30. A computer-readable data storage medium having instructions stored thereon, said instructions, when executed, causing one or more processors to perform the following operations: Receive analog signals transmitted via the channel; The analog signal is demodulated to determine the amplitude values for multiple coefficient vectors; Determined value n ,in, The value n It is determined based on the spectral efficiency of the channel; For each coefficient vector in the coefficient vector, a coefficient in the coefficient vector is determined based on the magnitude value and mapping pattern used for the coefficient vector, wherein for each corresponding allowed coefficient vector among a plurality of allowed coefficient vectors: The mapping mode maps the corresponding allowed coefficient vector to the corresponding amplitude value among multiple amplitude values, and The corresponding amplitude value is in n In the dimensional space, it is adjacent to at least one other amplitude value among the plurality of amplitude values, and the at least one other amplitude value is adjacent to the corresponding amplitude value in the monotonic number axis of the amplitude values; as well as Video data is generated based on the coefficients in the coefficient vector.