Generating motion vector predictor list
By generating a motion vector predictor candidate list and processing motion vector comparison operations according to a given criterion, the problem of a large number of comparison operations in the generation of motion vector predictor list in the prior art is solved, and a more friendly hardware implementation and reduced coding complexity are achieved.
Patent Information
- Application Number
- CN202411847727.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-12-28
- Filing Date
- 2019-12-19
- Publication Date
- 2025-03-14
AI Technical Summary
The existing video encoding technology generates a large number of comparison operations when generating a list of motion vector predictors, resulting in unfriendly hardware implementations and may increase encoding complexity in some cases.
By generating a motion vector predictor candidate list, a set of interblocks including a plurality of previously decoded interblocks is defined and the interblocks are scanned in a given scan order. For each interblock, the motion vector prediction candidate is derived using its motion vector and determine whether the given criterion is satisfied. When the criteria are met, it is directly added to the candidate list without comparison; when the criteria are not met, the motion vector comparison operation is performed.
Reduces the number of motion vector comparisons in the worst case, making hardware implementation more friendly and reducing coding complexity.
Smart Images

Figure CN119629362A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to video processing, and more particularly to video encoding and / or decoding and related methods and apparatus. Background Art
[0002] A video sequence may include a series of pictures. In video coding, a picture may be split into small blocks as a basic unit for prediction and residual coding. In the current test model (VTM) of the next video coding standard VVC, blocks may be square or rectangular and have sizes from 4×4 up to 128×128.
[0003] Intra prediction, also called spatial prediction, uses previously decoded blocks within the same picture to predict a block. A picture that includes only intra-predicted blocks may be referred to as an intra picture.
[0004] Inter prediction, also known as temporal prediction, uses blocks from previously decoded pictures to predict blocks of the current picture. Pictures that allow inter prediction of blocks may be referred to as inter pictures. Previously decoded pictures used for inter prediction may be referred to as reference pictures.
[0005] The position of a reference block within a reference picture may be indicated using a motion vector ("MV"). Each MV may include x and y components representing the displacement between the current block and the reference block in the x or y dimension. Figure 1 An example of the MV of the current block C is shown.
[0006] In some examples, the values of the components of the MV may have a resolution different from the integer positions. The resolution (or precision) may be finer than the integer positions. Those positions may be referred to as fractional positions, and filtering (e.g., interpolation) may be performed to calculate the values for prediction. In additional or alternative examples, the resolution may be coarser than the integer positions.
[0007] In the current VVC, the MV resolution can be 1 / 16-position, 1 / 4-position, integer position and 4-integer position. Figure 2 Several positions in the horizontal dimension are depicted. Solid boxes represent integer positions. Dashed boxes represent 4-integer positions. Circles represent 1 / 16-positions. Crosses represent 1 / 4-positions.
[0008] When converting a MV at one resolution to another target resolution, a MV resolution conversion process may be used. One way of converting is to round the MV position to the nearest target position.
[0009] Inter-pictures can use several reference pictures. Reference pictures can be put into two reference picture lists L0 and L1. The reference picture displayed before the current picture is usually the first picture in L0. The reference picture displayed after the current picture can be the first picture in L1.
[0010] Inter-prediction blocks can use one of two prediction types, uni-prediction and bi-prediction. Uni-prediction blocks are predicted from one reference picture using L0 or L1. Bi-prediction blocks are predicted from two reference pictures (one from L0 and the other from L1). Figure 3 Examples of prediction types are shown.
[0011] For an inter block within an inter picture, its inter prediction information may include the following three elements in the VTM: a reference picture list flag (RefPicListFlag), a reference picture index (RefPicInx) of each reference picture list used; and an MV of each reference picture used.
[0012] The flag signals which reference picture list to use. When the value of the flag is equal to 0, L0 is used. When the value of the flag is equal to 1, L1 is used. When the value of the flag is equal to 2, it means that both L0 and L1 are used. The reference picture index signals which reference picture inside the reference list to use. The MV signals the location inside the reference picture used to predict the current block.
[0013] The current VVC includes a process for signaling the motion vector of each block: AMVP ("Advanced Motion Vector Prediction"). The AMVP method generates a list of motion vector candidates. The motion vector candidates can be called motion vector predictors ("MVP"). The list can be called an MVP list. In the current VTM, the maximum size of the MVP list can be 2. After the list is generated, one of the candidates in the list can be selected to predict the current MV.
[0014] For the current MV to be encoded, the encoder selects an MVP from the list, encodes the index (mvp_flag) and the MV difference (MVD) between the MVP and the current MV in the bitstream to signal the decoder. The decoder receives the index and MVD, which follows the same MVP list derivation process as the encoder and uses the index to retrieve the correct candidate.
[0015] An example of the MVP candidate list generation process is described below. In this example, the current block has its MV at the 1 / 4 position. The process may include selecting the MVP candidate list from spatially adjacent blocks A0, A1, B0, B1, and B2 (e.g., Figure 4A-B) to derive up to 2 MV candidates (mvA and mvB). The process may also include comparing mvA and mvB. If they are different, both can be added to the MVP list. If they are the same, one (i.e., mvA or mvB) can be added to the MVP list. If the MVP list is not full, the temporal MV candidate mvC can be derived from the temporally juxtaposed blocks C0 and C1. The temporally juxtaposed blocks can be within a previously decoded picture. mvC can be compared with existing candidates in the MVP list, and if there is no existing candidate equal to mvC, mvC can be added to the list. If the MVP list is still not full, candidates from the HMVP table can be added in a predefined order. The order can be from the last entry to the first entry (i.e., the most recent HMVP candidate is checked first). When the maximum number of HMVP candidates checked reaches a threshold (=4 in VTM-3) or the MVP list is full, adding HMVP candidates can be stopped.
[0016] For each candidate in the HMVP table, its motion vector mvLx (x is 0 or 1) can be checked according to the following operations: (i) check whether mvLx uses the same reference picture as the current block; and (2) if so, compare mvLx with the existing candidates in the MVP list, and if there is no existing candidate equal to mvLx, add mvLx to the MVP list.
[0017] If the MVP list is still not full, zero MV candidates may be added until it is full.For each MV in the MVP list, the MV may be converted from 1 / 16-pixel precision to 1 / 4-pixel precision.
[0018] HMVP (history-based motion vector prediction) candidates are a newly adopted candidate generation method. During the encoding / decoding process, a first-in-first-out (FIFO) table with a limited number (=6) of slots for storing motion information can be maintained. The motion information stored in the FIFO table can be called an HMVP candidate.
[0019] Whenever there is an inter-coded block for encoding / decoding, the motion information of the inter-coded block can be added to the last entry of the FIFO table as a new HMVP candidate. If the same HMVP candidate already exists inside the table, the same candidate can be removed from the table and then all HMVP candidates are moved forward inside the table. If there is no same HMVP candidate and the table already contains 6 HMVP candidates, the first HMVP candidate in the table can be removed.
[0020] For simplicity, Figure 5An example of an HMVP table is shown, assuming that all HMVP candidates have the same RefPicListFlag and RefPicIdx. For example, when an inter block with MV=(1,0) is decoded, the MV can be added as the last entry in the table. Since there are identical HMVP candidates (HMVP 2) inside the table, the identical candidates can be removed. Fig. 6A -C shows the table update process. Fig. 6A Depicted from Figure 5 HMVP candidates and new decoding blocks. Figure 6B An update process is depicted, where a new decoding block is added and HMVP 2 is indicated as removed. Figure 6C Depicts an updated table of HMVP candidates. Those HMVP candidates inside the table are used as additional candidates for generating the MVP list. Summary of the invention
[0021] According to some embodiments, a method for generating a motion vector predictor list is provided. The method may include obtaining a current inter block and a plurality of previously decoded inter blocks. Each inter block may include a motion vector having a resolution. The method may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter block. Generating the list of motion vector predictor candidates may include defining a set of inter blocks including a given number of previously decoded inter blocks. Generating the list of motion vector predictor candidates may also include scanning the inter blocks in the set of inter blocks in a given scanning order. For each of the inter blocks in the set of inter blocks, generating the list of motion vector predictor candidates may also include deriving a motion vector prediction candidate using the motion vector of the inter block and determining whether a given criterion is met. In response to meeting the given criterion, the method may include adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. In response to not meeting the criterion, the method may also include performing a motion vector comparison operation to compare the motion vector prediction candidate with an existing motion vector prediction candidate in the list of motion vector prediction candidates corresponding to the current block.
[0022] According to other embodiments, a method performed by an encoder (or a processor circuit in an encoder) is provided. The method may include obtaining a current inter-block and a plurality of previously decoded inter-blocks. Each of the plurality of inter-blocks includes a motion vector having a resolution. The method may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include defining a set of inter-blocks including a plurality of previously decoded inter-blocks; scanning the inter-blocks in the set of inter-blocks in a scanning order; and for each of the inter-blocks in the set of inter-blocks, deriving a motion vector prediction candidate using the motion vector of the inter-block; and determining whether a criterion is met. In response to determining that the criterion is met, the method may also include adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. In response to determining that the criterion is not met, the method may also include performing a motion vector comparison operation to compare the motion vector prediction candidate with an existing motion vector prediction candidate in the list of motion vector prediction candidates corresponding to the current inter-block.
[0023] According to other embodiments, a decoder for a communication network is provided. The decoder may include a processor and a memory coupled to the processor. The memory may include instructions that, when executed by the processor, cause the processor to perform operations. The operations may include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include defining a set of inter-blocks including a plurality of previously decoded inter-blocks; scanning the inter-blocks in the set of inter-blocks in a scanning order; and for each of the inter-blocks in the set of inter-blocks: deriving a motion vector prediction candidate using the motion vector of the inter-block; and determining whether a criterion is met. In response to determining that the criterion is met, the operations may also include adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. In response to determining that the criterion is not met, the operations may also include performing a motion vector comparison operation to compare the motion vector prediction candidate with an existing motion vector prediction candidate in the list of motion vector prediction candidates corresponding to the current inter-block.
[0024] According to other embodiments, an encoder for a communication network is provided. The encoder may include a processor and a memory coupled to the processor. The memory may include instructions that, when executed by the processor, cause the processor to perform operations. The operations may include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include: defining a set of inter-blocks including a plurality of previously decoded inter-blocks; scanning the inter-blocks in the set of inter-blocks in a scanning order. Generating the list of motion vector predictor candidates may also include: for each of the inter-blocks in the set of inter-blocks, deriving a motion vector prediction candidate using the motion vector of the inter-block and determining whether a criterion is met. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is not satisfied, performing a motion vector comparison operation to compare the motion vector predictor candidate with an existing motion vector predictor candidate in the list of motion vector predictor candidates corresponding to the current inter block.
[0025] According to other embodiments, a computer program is provided. The computer program has computer executable instructions configured to cause the decoder to perform operations when the computer executable instructions are executed on a processor in a decoder. The operations may include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates includes defining a set of inter-blocks including a plurality of previously decoded inter-blocks and scanning the inter-blocks in the set of inter-blocks in a scanning order. Generating the list of motion vector predictor candidates may include, for each of the inter-blocks in the set of inter-blocks, deriving a motion vector prediction candidate using the motion vector of the inter-block; and determining whether a criterion is met. Generating the list of motion vector predictor candidates may include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may include, in response to determining that the criterion is not satisfied, performing a motion vector comparison operation to compare the motion vector predictor candidate with an existing motion vector predictor candidate in the list of motion vector predictor candidates corresponding to the current inter block.
[0026] According to other embodiments, a computer program is provided. The computer program has computer executable instructions, which are configured to cause the encoder to perform operations when the computer executable instructions are executed on a processor included in the encoder. The operations include obtaining a current inter block and a plurality of previously decoded inter blocks, each of the plurality of inter blocks including a motion vector having a resolution. The operations also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter block. Generating the list of motion vector predictor candidates includes defining a set of inter blocks including a plurality of previously decoded inter blocks and scanning the inter blocks in the set of inter blocks in a scanning order. Generating the list of motion vector predictor candidates may include, for each of the inter blocks in the set of inter blocks, deriving a motion vector prediction candidate using the motion vector of the inter block and determining whether a criterion is met. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may include, in response to determining that the criterion is not satisfied, performing a motion vector comparison operation to compare the motion vector predictor candidate with an existing motion vector predictor candidate in the list of motion vector predictor candidates corresponding to the current inter block.
[0027] According to other embodiments, a computer program product is provided. The computer program product includes a computer-readable storage medium having computer-executable instructions, which are configured to cause the decoder to perform operations when the computer-executable instructions are executed on a processor included in a decoder. The operations include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include defining a set of inter-blocks including a plurality of previously decoded inter-blocks and scanning the inter-blocks in the set of inter-blocks in a scanning order. Generating the list of motion vector predictor candidates may also include, for each of the inter-blocks in the set of inter-blocks: deriving a motion vector prediction candidate using the motion vector of the inter-block; and determining whether a criterion is met. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is not satisfied, performing a motion vector comparison operation to compare the motion vector predictor candidate with an existing motion vector predictor candidate in the list of motion vector predictor candidates corresponding to the current inter block.
[0028] According to other embodiments, a computer program product is provided. The computer program product may include a computer-readable storage medium having computer-executable instructions, which are configured to cause the encoder to perform operations when the computer-executable instructions are executed on a processor included in the encoder. The operations may include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include defining a set of inter-blocks including a plurality of previously decoded inter-blocks and scanning the inter-blocks in the set of inter-blocks in a scanning order. Generating the list of motion vector predictor candidates may also include, for each of the inter-blocks in the set of inter-blocks, deriving a motion vector prediction candidate using the motion vector of the inter-block and determining whether a criterion is met. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is not satisfied, performing (1334) a motion vector comparison operation to compare the motion vector prediction candidate with an existing motion vector prediction candidate in the list of motion vector prediction candidates corresponding to the current inter block.
[0029] According to other embodiments, a device is provided. The device may include at least one processor and a memory communicatively coupled to the at least one processor. The memory may include instructions executable by the processor, the instructions causing the processor to perform operations. The operations may include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include defining a set of inter-blocks including a plurality of previously decoded inter-blocks and scanning the inter-blocks in the set of inter-blocks in a scanning order. Generating the list of motion vector predictor candidates may also include, for each of the inter-blocks in the set of inter-blocks, deriving a motion vector prediction candidate using the motion vector of the inter-block and determining whether a criterion is met. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is not satisfied, performing a motion vector comparison operation to compare the motion vector predictor candidate with an existing motion vector predictor candidate in the list of motion vector predictor candidates corresponding to the current inter block.
[0030] According to other embodiments, a computer program product is provided. The computer program product includes a non-transitory computer-readable medium storing computer program code, which, when executed by at least one processor, causes the at least one processor to perform operations. The operations may include obtaining a current inter-block and a plurality of previously decoded inter-blocks, each of the plurality of inter-blocks including a motion vector having a resolution. The operations may also include generating a list of motion vector predictor candidates for predicting a motion vector associated with the current inter-block. Generating the list of motion vector predictor candidates may include defining a set of inter-blocks including a plurality of previously decoded inter-blocks and scanning the inter-blocks in the set of inter-blocks in a scanning order. Generating the list of motion vector predictor candidates may also include, for each of the inter-blocks in the set of inter-blocks, deriving a motion vector prediction candidate using the motion vector of the inter-block and determining whether a criterion is met. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is met, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates. Generating the list of motion vector predictor candidates may also include, in response to determining that the criterion is not satisfied, performing a motion vector comparison operation to compare the motion vector predictor candidate with an existing motion vector predictor candidate in the list of motion vector predictor candidates corresponding to the current inter block.
[0031] In some embodiments, generating a motion vector predictor list may reduce the worst-case number of MV comparisons and may be more hardware-implementation friendly than existing methods. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] The accompanying drawings, which are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this application, illustrate certain non-limiting embodiments of the inventive concept. In the drawings: Figure 1 is a schematic diagram showing an example of a motion vector ("MV"); Figure 2 is a schematic diagram showing an example of MV resolution; Figure 3 is a schematic diagram showing examples of single inter-frame prediction and double inter-frame prediction; Figure 4A -B is a schematic diagram showing an example of a block for extracting MV candidates; Figure 5 is a block diagram illustrating an example of a history-based motion vector prediction ("HMVP") candidate; Fig. 6A -C is a block diagram showing an example of an HMVP table update process; Figure 7is a table showing an example of random access main 10 according to some embodiments of the present disclosure; Figure 8 is a schematic diagram showing examples of non-adjacent blocks AX and BX according to some embodiments of the present disclosure; Fig. 9 is a block diagram illustrating an example of an electronic device (UE) for generating a motion vector predictor list according to some embodiments of the present disclosure; Fig.10 is a block diagram illustrating an example of encoder operation according to some embodiments of the present disclosure; Fig.11 is a block diagram illustrating an example of decoder operation according to some embodiments of the present disclosure; Fig.12 is a flowchart illustrating an example of a process according to some embodiments of the present disclosure; Fig.13 is a flowchart illustrating an example of a process for generating a list of motion vector predictor candidates according to some embodiments of the present disclosure; Fig.14 is a block diagram of a wireless network according to some embodiments; Fig.15 is a block diagram of a user equipment according to some embodiments; Fig.16 is a block diagram of a virtualization environment according to some embodiments; Fig.17 is a block diagram of a telecommunications network connected to a host computer via an intermediate network according to some embodiments; Fig.18 is a block diagram of a host computer communicating with a user device via a base station over a partially wireless connection according to some embodiments; Fig.19 is a block diagram of a method implemented in a communication system including a host computer, a base station, and a user equipment according to some embodiments; Fig. 20 is a block diagram of a method implemented in a communication system including a host computer, a base station, and a user equipment according to some embodiments; Fig.21 is a block diagram of a method implemented in a communication system including a host computer, a base station, and a user equipment according to some embodiments; and Fig. 22 is a block diagram of a method implemented in a communication system including a host computer, a base station, and a user equipment according to some embodiments. DETAILED DESCRIPTION
[0033] The inventive concept will now be described more fully below with reference to the accompanying drawings, in which examples of embodiments of the inventive concept are shown. However, the inventive concept can be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that the disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art. It should also be noted that these embodiments are not mutually exclusive. Components from one embodiment may be assumed by default to exist / use in another embodiment.
[0034] As described above, some current MVP list generation processes perform MV comparisons when new candidate MVs are added to the MVP list. In undesirable scenarios, the number of MV comparisons using this process can be 10. Various embodiments herein describe alternative processes for generating motion vector predictor lists for AMVPs that can have fewer MV comparisons. Some embodiments can avoid some MV comparisons when criteria are met. In some embodiments, this can be achieved by comparing only the first most likely possible list entry. Later possible entries are added without comparison, which may result in a small chance that two motion vectors in the list are duplicates, but this reduces complexity.
[0035] In some embodiments, the process described herein may reduce the number of worst-case MV comparisons and may be more hardware-implementation friendly than existing processes. Figure 7 Depicted is a table showing examples of target performance from implementations of various embodiments. Tests were performed atop the VVC test model VTM-3.0. The numbers in the table show the relative bit-cost for achieving video quality equivalent to that of a reference codec for the codec under test. The reference codec used here is VTM-3.0 as is, and the codec under test is VTM-3.0 modified according to the teachings described herein. In some embodiments, the process for generating a motion vector predictor ("MVP") list may be performed by an encoder or a decoder.
[0036] In some embodiments, a process is provided for decoding or encoding a current inter block (K) having its motion vector mvK at a resolution R. The process can derive an MVP list having MV candidates at resolution R for predicting mvK. A decoder or encoder can implement this process for MVP list generation including all or a subset of the following operations. (1) Define a set A consisting of multiple previously decoded inter blocks. The block can be in a current picture or in a previously decoded picture. (2) Scan the blocks included in the set A in sequence. (3) For each block S in the set A, (a) derive the MV candidate mvS using the MV of the block S; (b) if mvS is at a resolution different from R, perform a conversion of mvS to resolution R; (c) determine whether criterion C is met; (d) when criterion C is met, directly add mvS to the existing MVP list, that is, do not perform MV comparison relative to the existing MV candidates in the MVP list; and (e) when criterion C is not met, call the MV comparison process to compare mvS with the existing MV candidates in the MVP list. When there is no existing candidate equal to mvS, mvS is added to the existing MVP list. Otherwise, mvS is not added to the existing MVP list.
[0037] In an additional or alternative embodiment, the criterion C may determine whether the block S is not spatially adjacent to the current block K. Examples of adjacent blocks are Figure 4A -B is shown as A0, A1, B0, B1 and B2. Another example of non-adjacent blocks is Figure 8 Another alternative is to determine whether the spatial distance between block S and the current block K is greater than or not less than a certain threshold. The spatial distance can be measured by the distance between samples in blocks S and K.
[0038] In an additional or alternative embodiment, if the block S is from another picture, the criterion C is satisfied. Examples of blocks in another picture are C0 and C1 in FIG.
[0039] In an additional or alternative embodiment, criterion C is satisfied if the MV associated with block S is included in the HMVP table.
[0040] In additional or alternative embodiments, criterion C is satisfied if two or one of the components of the MVD associated with the current block K exceeds a certain threshold.
[0041] In additional or alternative embodiments, criterion C is satisfied if the resolution R exceeds a certain threshold. One example of a threshold is an integer position.
[0042] In additional or alternative embodiments, the MVP generation process may include a counter for counting how many times the MV comparison is called. The counter may be maintained during the MVP list generation process. Before starting a new MVP list generation, the counter may be set to an initial state, i.e., 0. During the MVP list generation process, each time the MV comparison process is called, the counter may be incremented by 1. If the counter is greater than or not less than a certain threshold, then criterion C is met. The threshold may be lower than the maximum size of the MVP list.
[0043] In additional or alternative embodiments, the scanning order may be to scan the blocks in their decoding order. In other words, the earliest decoded blocks among the blocks in A may be scanned first.
[0044] In additional or alternative embodiments, the motion information derivation process and the motion information storage process for an intra block may be improvements to the existing MVP list generation process.
[0045] Fig. 9 900 (which may be a wireless device, a 3GPP user equipment or a UE device, etc.) according to some embodiments disclosed herein. As shown, the electronic device 900 may include a processor 903 coupled to a communication interface 901, a memory 905, a camera 907, and a screen 909. The communication interface 901 may include one or more of a wired network interface (e.g., an Ethernet interface), a WiFi interface, a cellular radio access network (RAN) interface (also referred to as a RAN transceiver), and / or other wired / wireless network communication interfaces. The electronic device 900 may therefore provide wired / wireless communication with a remote storage system through one or more wired / radio links to transmit and / or receive encoded video sequences. The processor 903 (also referred to as a processor circuit or a processing circuit) may include one or more data processing circuits, such as general and / or special processors (e.g., a microprocessor and / or a digital signal processor). The processor 903 may be configured to execute computer program instructions from a functional module (described below as a computer-readable medium) in a memory 905 (also referred to as a memory circuit or a memory circuit system) to perform some or all of the operations and methods described herein for one or more of the embodiments. Furthermore, processor 903 may be defined to include memory so that separate memory 905 may not be required. Electronic device 900 including communication interface 901, processor 903 and / or camera 907 may thus perform operations such as discussed below with respect to the figures and / or example embodiments.
[0046] According to some embodiments, the electronic device 900 (e.g., a smart phone) may generate an encoded video sequence, which is stored in the memory 905 and / or transmitted to a remote device over a wired network and / or a wireless network through the communication interface 901. In such embodiments, the processor 903 may receive a video sequence from the camera 909, and the processor may encode the video sequence to provide an encoded video sequence, which may be stored in the memory 905 and / or transmitted to a remote device through the communication interface 901.
[0047] According to some other embodiments, the electronic device 900 may decode an encoded video sequence to provide a decoded video sequence, which is rendered on the display 909 for viewing by the user. The encoded video sequence may be received from a remote communication device via the communication interface 901 and stored in the memory 905 before being decoded and rendered by the processor 903, or the encoded video sequence may be generated by the processor 903 in response to a video sequence received from the camera 907 and stored in the memory 905 before being decoded and rendered by the processor 903. Accordingly, the same device may therefore encode a video sequence and then decode the video sequence. Reference will now be made to Figure 10-11 The encoding and decoding operations performed by processor 903 are discussed.
[0048] Fig.10 is a schematic block diagram of an encoder 1040 according to some embodiments of the inventive concept, which may be implemented by the processor 903 to encode pixel blocks in video images (also referred to as frames) of a video sequence.
[0049] The current pixel block is predicted by performing motion estimation from pixel blocks already provided in the same frame or a previous frame using a motion estimator 1050. In the case of inter-frame prediction, the result of the motion estimation is a motion or displacement vector associated with a reference block. The motion vector can be used by a motion compensator 1050 to output an inter-frame prediction of the pixel block.
[0050] Intra-frame predictor 1049 calculates the intra-frame prediction of the current pixel block. The output from motion estimator / compensator 1050 and intra-frame predictor 1049 is input to selector 1051, which selects intra-frame prediction or inter-frame prediction for the current pixel block. The output from selector 1051 is input to an error calculator in the form of adder 1041, which also receives the pixel value of the current pixel block. Adder 1041 calculates and outputs the residual error as the difference in pixel value between the pixel block and its prediction.
[0051] The error is transformed in a transformer 1042, for example by a discrete cosine transform, and quantized by a quantizer 1043 before being coded, for example by an entropy coder, in an encoder 1044. In inter-coding, the estimated motion vector is also brought to the encoder 1044 to generate a coded representation of the current pixel block.
[0052] The residual error of the transformation and quantization of the current pixel block is also provided to the inverse quantizer 1045 and the inverse transformer 1046 to retrieve the initial residual error. This error is added to the block prediction output from the motion compensator 1050 or the intra-frame predictor 1049 by the adder 1047 to create a reference pixel block that can be used in the prediction and decoding of the next pixel block. According to some embodiments, this new reference block is first processed by the deblocking filter 1000 to perform deblocking filtering to reduce / combat blocking artifacts. The processed new reference block is then temporarily stored in the frame buffer 1048, where it is available to the intra-frame predictor 1049 and the motion estimator / compensator 1050.
[0053] Fig.11 1 is a corresponding schematic block diagram of a decoder 1160 including a deblocking filter 1000 that can be implemented by a processor 503 according to some embodiments of the inventive concept. The decoder 1160 includes a decoder 1161, such as an entropy decoder, to decode an encoded representation of a pixel block to obtain a set of quantized and transformed residual errors. These residual errors are dequantized by an inverse quantizer 1162 and inversely transformed by an inverse transformer 1163 to provide a set of residual errors.
[0054] These residual errors are added to the pixel values of the reference pixel block by the adder 1164. Depending on whether inter-frame prediction or intra-frame prediction is performed, the reference block is determined by the motion estimator / compensator 1167 or the intra-frame predictor 1166. The selector 1168 is thus interconnected to the adder 1164 and the motion estimator / compensator 1167 and the intra-frame predictor 1166. According to some embodiments of the inventive concept, the resulting decoded pixel block output from the adder 1164 is input to the deblocking filter 1000 to provide deblocking filtering of block effects. The filtered pixel block is output from the decoder 1160 and can be temporarily provided to the frame buffer 1165 to be used as a reference pixel block for a subsequent pixel block to be decoded. The frame buffer 1165 is thus connected to the motion estimator / compensator 1167 to make the stored pixel block available to the motion estimator / compensator 1167.
[0055] The output from the adder 1164 may also be input to the intra predictor 1166 to be used as an unfiltered reference pixel block.
[0056] exist Figure 10-11In an embodiment of the decoder 1160, the deblocking filter 1000 may perform deblocking filtering, such as so-called in-loop filtering. In an alternative embodiment of the decoder 1160, the deblocking filter 1000 may be arranged to perform so-called post-processing filtering. In such cases, the deblocking filter 1000 operates on the output frame outside the loop formed by the adder 1164, the frame buffer 1165, the intra-frame predictor 1166, the motion estimator / compensator 1167 and the selector 1168. In such embodiments, deblocking filtering is typically not performed at the encoder. The operation of the deblocking filter 1000 will be discussed in more detail below.
[0057] According to some embodiments of the inventive concept, a deblocking filter may reduce blocking artifacts by interpolating boundary samples from a first side of a block boundary to a second side of the block boundary without significant modification of low-frequency components in a signal such as a ramp.
[0058] For both sides of the block boundary, interpolation can be performed using sample values determined as follows: sample values determined at a position farther from the block boundary than the sample farthest from the block boundary to be filtered or sample values determined at a position in the middle of all samples to be filtered or at a position between boundary samples.
[0059] For each side of a block boundary, interpolation of samples may be performed by interpolating between weighted averages of a first set of sample values centered halfway among all samples to be filtered or centered at a position between boundary samples and a second set of sample values determined at positions farther away than the farthest sample among the samples to be filtered.
[0060] Now some embodiments of the present invention will be referred to Figure 12-13 The flowchart of the electronic device 900 discusses the operation of the electronic device 900. For example, a module (also referred to as a unit) may be stored in Fig. 9 The memory 905 of the processor 903 may provide instructions so that when the instructions of the modules are executed by the processor 903, the processor 903 executes the instructions of the modules. Figure 12-13 The corresponding operations of the flowchart.
[0061] At box 1210, the processor 903 obtains the current inter-block and the previously decoded inter-block. In some examples, the processor 903 receives a bitstream via the communication interface 901. Each inter-block of the multiple previously decoded inter-blocks may include a motion vector with a resolution. In some embodiments, the electronic device 900 is a decoder. In additional or alternative embodiments, the electronic device 900 is an encoder. In some embodiments, a set of inter-blocks including a given number of previously decoded inter-blocks may include inter-blocks in the current picture. In additional or alternative embodiments, a set of inter-blocks including a given number of previously decoded inter-blocks may include inter-blocks in a previously decoded picture.
[0062] At block 1220 , processor 903 generates a list of motion vector predictor candidates. Fig.13 An example of a process for generating a list of motion vector predictor candidates is depicted. At block 1322, the processor 903 defines a set of inter blocks that includes a given number of previously decoded inter blocks. At block 1324, the processor 903 scans the inter blocks in the set of inter blocks in a given scanning order. In some embodiments, the given scanning order includes the order in which the inter blocks are decoded. At block 1326, the processor 903 derives a motion vector prediction candidate using the motion vector of the inter block. In some embodiments, the processor 903 may derive a motion vector prediction candidate for each of the inter blocks in the set of inter blocks.
[0063] At block 1330, the processor 903 determines whether a given criterion is satisfied. At block 1336, in response to satisfying the given criterion, the processor 903 may add the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with existing motion vector prediction candidates in the list of motion vector prediction candidates. In some embodiments, the given criterion is satisfied in response to the inter block being not spatially adjacent to the current block. In response to the inter block being not adjacent to the current block, the processor 903 may add the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with existing motion vector prediction candidates in the list of motion vector prediction candidates. In additional or alternative embodiments, the criterion is satisfied in response to the inter block having a spatial distance from the current inter block exceeding a spatial distance threshold. In response to the spatial distance between the inter block and the current block exceeding the spatial distance threshold, the processor 903 may add the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with existing motion vector prediction candidates in the list of motion vector prediction candidates. In additional or alternative embodiments, the given criterion is satisfied in response to the inter block being from a picture different from the picture including the current block. In an additional or alternative embodiment, the given criterion is satisfied in response to the motion vector prediction candidate of the inter block being included in the history-based motion vector prediction HMVP table. In an additional or alternative embodiment, the given criterion is satisfied in response to any of the components of the motion vector prediction of the current block exceeding a given motion vector prediction component threshold. In an additional or alternative embodiment, the given criterion is satisfied in response to the resolution of the motion vector prediction candidate exceeding a resolution threshold.
[0064] In additional or alternative embodiments, the processor 903 may increment the comparison count value for each occurrence of the motion vector prediction candidate comparison. A given criterion may be met in response to the comparison count value exceeding the comparison count value threshold. In some examples, the comparison count value threshold is less than the size of the list of motion vector prediction candidates.
[0065] At block 1334, in response to the criteria not being met, the processor 903 performs a motion vector comparison operation to compare the motion vector prediction candidate with an existing motion vector prediction candidate in the list of motion vector prediction candidates corresponding to the current block. In some embodiments, in response to performing the motion vector comparison operation and determining that the motion vector prediction candidate does not match any of the existing motion vector prediction candidates in the list of motion vector prediction candidates, the processor 903 adds the motion vector prediction candidate to the list of motion vector prediction candidates. In additional or alternative embodiments, in response to performing the motion vector comparison operation and determining that the motion vector prediction candidate matches one of the existing motion vector prediction candidates in the list of motion vector prediction candidates, the processor 903 may not add the motion vector prediction candidate to the list of motion vector prediction candidates.
[0066] In some embodiments, the processor 903 may determine a resolution of the inter block. In response to the resolution of the inter block being different from the resolution of the motion vector prediction candidate, the processor 903 may perform a conversion of the motion vector prediction candidate to match the resolution of the inter block. The processor 903 may decode video data of a video sequence including pictures based on generating a list of motion vector predictor candidates for predicting a motion vector associated with a corresponding inter block.
[0067] Figure 12-13 Various operations may be optional with respect to some embodiments.
[0068] An explanation of the abbreviations from the above disclosure is provided below.
[0069] Abbreviation Explanation MV motion vector 3GPP 3rd Generation Partnership Project 5G 5th Generation Wireless System NG Next Generation IoT AKA Authentication and Key Agreement UICC Universal Integrated Circuit Card SA2 3GPP Architecture Working Group SA3 3GPP Security Group UP User Plane LTE Long Term Evolution (4th generation wireless system) CP Control Plane AS Access Level eNB Evolved Node B UE User Equipment or End User Device SMC Safe Mode Commands RRC Radio Resource Control PDCP Packet Data Convergence Protocol RAN Radio Access Network CN Core Network PDU Packet Data Unit DRB Data Radio Bearer RAN Access Network (R)AN Both 3GPP and non-3GPP access networks NAS Network Access Level AMF Access and Mobility Management Function NF Network Function UDM Unified Data Management PCF Policy Control Function DRB-IP Data Radio Bearer Integrity Protection IE Information Elements QoS Quality of Service gNB 5G base station NEF Network Exposure Function NWDAF network data analysis function PCF Policy Control Function UDM Unified Data Management UPF User Plane Function DL Downlink UL Uplink LLS Lower level split LLS-U Split user plane from lower layer LLS-C Split control plane from lower layer LLS-CU Lower Split Central Unit PHY Physical Layer MP Management Plane SSM Sync Status Messages TRX Transceiver Additional definitions and embodiments are discussed below: In the above description of various embodiments of the inventive concept, it is to be understood that the terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the inventive concept. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as those commonly understood by those of ordinary skill in the art to which the inventive concept belongs. It will be further understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of this specification and the related art, and will not be interpreted in an idealized or overly formal sense unless clearly defined as such herein.
[0070] When an element is referred to as "connected", "coupled", "responsive" or a variation thereof to another element, it may be directly connected, coupled or responsive to another element, or there may be an intermediate element. On the contrary, when an element is referred to as "directly connected", "directly coupled", "directly responsive" or a variation thereof to another element, there is no intermediate element. Throughout this disclosure, similar reference numerals refer to similar elements. In addition, "coupled", "connected", "responsive" or a variation thereof as used in this article may include wireless coupling, connection or response. As used herein, unless the context clearly indicates otherwise, the singular forms "one", "an" and "the" are intended to also include plural forms. For simplicity and / or clarity, well-known functions or configurations may not be described in detail. The term "and / or" includes any and all combinations of one or more of the items listed in association.
[0071] It will be understood that although the terms first, second, third, etc. can be used to describe various elements / operations herein, these elements / operations should not be limited by these terms. These terms are only used to distinguish one element / operation from another element / operation. Therefore, the first element / operation in some embodiments can be termed as the second element / operation in other embodiments without departing from the teaching of the present invention concept. The same figure mark or the same reference designator represents the same or similar element throughout the specification.
[0072] As used herein, the terms "comprise, comprising, comprises," "include, including, includes," "have, has, having," or variations thereof are expansive and include one or more stated features, integers, elements, steps, components, or functions, but do not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions, or groups thereof. Furthermore, as used herein, the commonly used abbreviation "eg," derived from the Latin phrase "exempli gratia," may be used to introduce or specify one or more general examples of previously mentioned items, and is not intended to limit such items. The commonly used abbreviation "ie," derived from the Latin phrase "id est," may be used to specify a specific item from a more general statement.
[0073] Example embodiments are described herein with reference to block diagrams and / or flowchart illustrations of computer-implemented methods, devices (systems and / or apparatuses), and / or computer program products. It is to be understood that the blocks of the block diagrams and / or flowchart illustrations and the combination of the blocks of the block diagrams and / or flowchart illustrations can be implemented by computer program instructions executed by one or more computer circuits. These computer program instructions can be provided to processor circuits of general-purpose computer circuits, special-purpose computer circuits, and / or other programmable data processing circuits to produce a machine, so that instructions executed by processors of computers and / or other programmable data processing devices transform and control transistors, values stored in memory locations, and other hardware components within such circuits to implement the functions / actions specified in the block diagrams and / or one or more flowchart boxes, and thereby create components (functionality) and / or structures for implementing the functions / actions specified in the block diagrams and / or (one or more) flowchart boxes.
[0074] These computer program instructions may also be stored in a tangible computer-readable medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture, the article of manufacture including instructions for implementing the functions / actions specified in the block diagram and / or one or more flow chart blocks. Accordingly, embodiments of the inventive concept may be embodied in hardware and / or in software (including firmware, resident software, microcode, etc.), the software running on a processor such as a digital signal processor, which may be collectively referred to as a "circuit," "module," or variations thereof.
[0075] It should also be noted that in some alternative implementations, the function / action mentioned in the frame may not occur in the order mentioned in the flow chart. For example, depending on the functionality / action involved, the two frames shown continuously can actually be performed concurrently in fact, or the frame can sometimes be performed in reverse order. In addition, the functionality of the given frame of flow chart and / or block diagram can be separated into multiple frames, and / or the functionality of two or more frames of flow chart and / or block diagram can be integrated at least in part. Finally, other frames can be added / inserted between the shown frames, and / or frame / operation can be ignored and not break away from the scope of the inventive concept. In addition, although some in the figure include arrows on the communication path to illustrate the main direction of communication, it is to be understood that communication can occur in the opposite direction of the arrows depicted.
[0076] Many changes and modifications can be made to the embodiments without substantially departing from the principles of the inventive concept. All such changes and modifications are intended to be included in the scope of the inventive concept herein. Accordingly, the subject matter disclosed above is to be considered illustrative and not restrictive, and the examples of the embodiments are intended to cover all such modifications, enhancements and other embodiments that fall within the spirit and scope of the inventive concept. Therefore, to the maximum extent permitted by law, the scope of the inventive concept is to be determined by the broadest permissible interpretation of the present disclosure including the examples of the embodiments and their equivalents, and should not be constrained or limited by the above detailed description.
[0077] Additional explanation is provided below.
[0078] Generally, all terms used herein will be interpreted according to their common meaning in the relevant technical field, unless clearly given and / or different meanings are implied from the context of using it.Unless otherwise clearly stated, all references to one / one / this element, equipment, assembly, parts, step, etc. will be openly interpreted as referring to at least one example of this element, equipment, assembly, parts, step, etc.The steps of any method disclosed herein do not have to be performed in the accurate order disclosed, unless a certain step is clearly described as after or before another step and / or a certain step must be after or before another step when it is implicit.In any appropriate case, any any feature of the embodiment disclosed herein can be applied to any other embodiment.Similarly, any any advantage in the embodiment can be applied to any other embodiment, and vice versa.From the following description, other purposes, features and advantages of the attached embodiment will be clear.
[0079] Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. However, other embodiments are included within the scope of the subject matter disclosed herein, and the disclosed subject matter should not be construed as being limited to the embodiments set forth herein; rather, these embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art.
[0080] Fig.14 : A wireless network according to some embodiments.
[0081] Although the subject matter described herein may be implemented in any suitable type of system using any suitable components, the embodiments disclosed herein are directed to wireless networks such as Fig.14 For simplicity, Fig.14 The wireless network of FIG. 1 depicts only the network QQ106, the network nodes QQ160 and QQ160b, and the WDs QQ110, QQ110b, and QQ110c (also referred to as mobile terminals). In practice, the wireless network may also include any additional elements suitable for supporting communication between wireless devices or between a wireless device and another communication device, such as a landline telephone, a service provider, or any other network node or end device. In the illustrated components, the network node QQ160 and the wireless device (WD) QQ110 are depicted in additional detail. The wireless network may provide communication and other types of services to one or more wireless devices to facilitate access by the wireless device and / or use of services provided by or via the wireless network.
[0082] A wireless network may include and / or interface with any type of communication, telecommunication, data, cellular and / or radio network or other similar type of system. In some embodiments, a wireless network may be configured to operate according to a specific standard or other type of predefined rules or procedures. Thus, specific embodiments of a wireless network may implement communication standards such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, or 5G standards; wireless local area network (WLAN) standards such as IEEE 802.11 standards; and / or any other suitable wireless communication standards such as Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, and / or ZigBee standards.
[0083] The network QQ106 may include one or more backhaul networks, core networks, IP networks, public switched telephone networks (PSTN), packet data networks, optical networks, wide area networks (WANs), local area networks (LANs), wireless local area networks (WLANs), wired networks, wireless networks, metropolitan area networks, and other networks to enable communication between devices.
[0084] The network node QQ160 and WD QQ110 include various components described in more detail below. These components work together to provide network node and / or wireless device functionality, such as providing wireless connections in a wireless network. In different embodiments, the wireless network may include any number of wired or wireless networks, network nodes, base stations, controllers, wireless devices, relay stations, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals, whether via a wired connection or via a wireless connection.
[0085] As used herein, a network node refers to a device that is capable of, configured, arranged and / or operable to communicate directly or indirectly with a wireless device and / or with other network nodes or devices in a wireless network to enable and / or provide wireless access to the wireless device and / or perform other functions (e.g., management) in the wireless network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, node Bs, evolved nodes (eNBs), and NR NodeBs (gNBs)). Base stations may be classified based on the amount of coverage they provide (or, in other words, their transmit power levels), and may then also be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node that controls a relay. A network node may also include one or more (or all) parts of a distributed radio base station, such as a centralized digital unit and / or a remote radio unit (RRU), sometimes referred to as a remote radio head (RRH). Such a remote radio unit may or may not be integrated with an antenna as an antenna-integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS). Further examples of network nodes include multi-standard radio (MSR) equipment such as an MSR BS, a network controller such as a radio network controller (RNC) or a base station controller (BSC), a base transceiver station (BTS), a transmission point, a transmission node, a multi-cell / multicast coordination entity (MCE), a core network node (e.g., MSC, MME, O&M node, OSS node, SON node, a positioning node (e.g., E-SMLC) and / or an MDT. As another example, the network node may be a virtual network node as described in more detail below. However, more generally, a network node may represent any suitable device (or group of devices) that is capable of, configured, arranged and / or operable to enable and / or provide a wireless device with access to a wireless network or provide a certain service to a wireless device that has access to a wireless network.
[0086] exist Fig.14 In the embodiment, the network node QQ160 includes a processing circuit QQ170, a device readable medium QQ180, an interface QQ190, an auxiliary device QQ184, a power supply QQ186, a power circuit QQ187 and an antenna QQ162. Fig.14The network node QQ160 illustrated in the example wireless network of may represent a device including the illustrated combination of hardware components, but other embodiments may include network nodes with different combinations of components. It is to be understood that the network node includes any suitable combination of hardware and / or software required to perform the tasks, features, functions, and methods disclosed herein. In addition, although the components of the network node QQ160 are depicted as a single box located within a larger box or nested within multiple boxes, in practice, the network node may include multiple different physical components that make up a single illustrated component (for example, the device readable medium QQ180 may include multiple separate hard drives and multiple RAM modules).
[0087] Similarly, the network node QQ160 may be composed of multiple physically separated components (e.g., NodeB components and RNC components or BTS components and BSC components, etc.), each of which may have its own corresponding components. In certain scenarios where the network node QQ160 includes multiple individual components (e.g., BTS and BSC components), one or more of the individual components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such scenarios, each unique NodeB and RNC pair may be considered as a single individual network node in some instances. In some embodiments, the network node QQ160 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be replicated (e.g., separate device readable media QQ180 for different RATs), and some components may be reused (e.g., the same antenna QQ162 may be shared by the RATs). The network node QQ160 may also include multiple sets of various illustrated components for different wireless technologies (such as, for example, GSM, WCDMA, LTE, NR, WiFi, or Bluetooth wireless technologies) integrated into the network node QQ160. These wireless technologies may be integrated into the same or different chips or chipsets and other components within network node QQ 160 .
[0088] The processing circuit QQ170 is configured to perform any determination, calculation, or similar operation (e.g., certain obtaining operations) described herein as being provided by the network node. Such operations performed by the processing circuit QQ170 may include, for example, processing information obtained by the processing circuit QQ170 by converting the obtained information into other information, comparing the obtained information or the converted information with information stored in the network node, and / or performing one or more operations based on the obtained information or the converted information, and making determinations as a result of the processing.
[0089] The processing circuit QQ170 may include a combination of one or more of a microprocessor, a controller, a microcontroller, a central processing unit, a digital signal processor, an application specific integrated circuit, a field programmable gate array, or any other suitable computing device, resource, or combination of coded logic, software, and / or hardware operable to provide network node QQ160 functionality alone or in conjunction with other network node QQ160 components (such as, device readable medium QQ180). For example, the processing circuit QQ170 may execute instructions stored in the device readable medium QQ180 or in a memory within the processing circuit QQ170. Such functionality may include providing any of the various wireless features, functions, or benefits discussed herein. In some embodiments, the processing circuit QQ170 may include a system on a chip (SOC).
[0090] In some embodiments, the processing circuitry QQ170 may include one or more of a radio frequency (RF) transceiver circuitry QQ172 and a baseband processing circuitry QQ174. In some embodiments, the radio frequency (RF) transceiver circuitry QQ172 and the baseband processing circuitry QQ174 may be on separate chips (or chipsets), boards, or units (such as a radio unit and a digital unit). In alternative embodiments, some or all of the RF transceiver circuitry QQ172 and the baseband processing circuitry QQ174 may be on the same chip or chipset, board, or unit.
[0091] In certain embodiments, some or all of the functionality described herein as being provided by a network node, base station, eNB, or other such network device may be performed by processing circuit QQ170 executing instructions stored on a memory or device-readable medium QQ180 within processing circuit QQ170. In alternative embodiments, some or all of the functionality may be provided by processing circuit QQ170 (such as in a hardwired manner) without executing instructions stored on a separate or discrete device-readable medium. In any of those embodiments, processing circuit QQ170 can be configured to perform the described functionality, whether or not executing instructions stored on a device-readable storage medium. The benefits provided by such functionality are not limited to processing circuit QQ170 alone or to other components of network node QQ160, but are enjoyed by network node QQ160 as a whole, and / or generally by end users and wireless networks.
[0092] The device-readable medium QQ180 may include any form of volatile or non-volatile computer-readable memory, including but not limited to permanent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (e.g., hard disk), removable storage media (e.g., flash drive, compact disk (CD) or digital video disk (DVD)), and / or any other volatile or non-volatile, non-transitory device-readable and / or computer-executable memory device that stores information, data and / or instructions that can be used by the processing circuit QQ170. The device-readable medium QQ180 may store any suitable instructions, data or information, including computer programs, software, applications including one or more of logic, rules, codes, tables, etc., and / or other instructions that can be executed by the processing circuit QQ170 and utilized by the network node QQ160. The device-readable medium QQ180 may be used to store any calculations performed by the processing circuit QQ170 and / or any data received via the interface QQ190. In some embodiments, processing circuitry QQ170 and device readable medium QQ180 may be considered integrated.
[0093] Interface QQ190 is used in wired or wireless communication of signaling and / or data between network node QQ160, network QQ106 and / or WD QQ110. As illustrated, interface QQ190 includes (one or more) ports / (one or more) terminals QQ194 to send and receive data to and from network QQ106, for example, via a wired connection. Interface QQ190 also includes a radio front-end circuit QQ192, which may be coupled to antenna QQ162, or in some embodiments is a part of antenna QQ162. Radio front-end circuit QQ192 includes filter QQ198 and amplifier QQ196. Radio front-end circuit QQ192 may be connected to antenna QQ162 and processing circuit QQ170. The radio front-end circuit may be configured to adjust the signal transmitted between antenna QQ162 and processing circuit QQ170. Radio front-end circuit QQ192 may receive digital data to be sent out to other network nodes or WDs via a wireless connection. The radio front end circuit QQ192 may convert the digital data into a radio signal having appropriate channel and bandwidth parameters using a combination of filters QQ198 and / or amplifiers QQ196. The radio signal may then be transmitted via antenna QQ162. Similarly, when receiving data, antenna QQ162 may collect the radio signal, which is then converted into digital data by the radio front end circuit QQ192. The digital data may be passed to the processing circuit QQ170. In other embodiments, the interface may include different components and / or a combination of different components.
[0094] In certain alternative embodiments, the network node QQ160 may not include a separate radio front end circuit QQ192, and instead, the processing circuit QQ170 may include the radio front end circuit and may be connected to the antenna QQ162 without the separate radio front end circuit QQ192. Similarly, in some embodiments, all or some of the RF transceiver circuit QQ172 may be considered part of the interface QQ190. In still other embodiments, the interface QQ190 may include one or more ports or terminals QQ194, the radio front end circuit QQ192, and the RF transceiver circuit QQ172 as part of a radio unit (not shown), and the interface QQ190 may communicate with the baseband processing circuit QQ174, which is part of the digital unit (not shown).
[0095] Antenna QQ162 may include one or more antennas or antenna arrays configured to send and / or receive wireless signals. Antenna QQ162 may be coupled to the radio front-end circuit QQ190 and may be any type of antenna capable of wirelessly transmitting and receiving data and / or signals. In some embodiments, antenna QQ162 may include one or more omnidirectional, sector or flat panel antennas that are operable to transmit / receive, for example, radio signals between 2 GHz and 66 GHz. Omnidirectional antennas may be used to transmit / receive radio signals in any direction, sector antennas may be used to transmit / receive radio signals from devices within a specific area, and flat panel antennas may be line-of-sight antennas for transmitting / receiving radio signals in a relatively straight line. In some instances, the use of more than one antenna may be referred to as MIMO. In certain embodiments, antenna QQ162 may be separated from network node QQ160 and may be connected to network node QQ160 via an interface or port.
[0096] Antenna QQ162, interface QQ190 and / or processing circuit QQ170 may be configured to perform any receiving operation and / or certain obtaining operations described herein as being performed by a network node. Any information, data and / or signal may be received from a wireless device, another network node and / or any other network equipment. Similarly, antenna QQ162, interface QQ190 and / or processing circuit QQ170 may be configured to perform any transmitting operation described herein as being performed by a network node. Any information, data and / or signal may be transmitted to a wireless device, another network node and / or any other network equipment.
[0097] The power circuit QQ187 may include or be coupled to a power management circuit, and is configured to supply power for performing the functionality described herein to the components of the network node QQ160. The power circuit QQ187 may receive power from a power source QQ186. The power source QQ186 and / or the power circuit QQ187 may be configured to provide power to the various components of the network node QQ160 in a form suitable for the respective components (e.g., at the voltage and current levels required by each respective component). The power source QQ186 may be included in the power circuit QQ187 and / or the network node QQ160, or outside the power circuit QQ187 and / or the network node QQ160. For example, the network node QQ160 may be connected to an external power source (e.g., an electrical outlet) via an input circuit or interface (such as a cable), whereby the external power source supplies power to the power circuit QQ187. As another example, the power source QQ186 may include a power source in the form of a battery or a battery pack, which is connected to or integrated in the power circuit QQ187. If the external power source fails, the battery may provide backup power. Other types of power sources, such as photovoltaic devices, may also be used.
[0098] Alternative embodiments of network node QQ 160 may include, in addition to Fig.14 , which may be responsible for providing certain aspects of the functionality of the network node, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node QQ 160 may include a user interface device to allow information to be input into the network node QQ 160 and to allow information to be output from the network node QQ 160. This may allow a user to perform diagnostics, maintenance, repair, and other management functions on the network node QQ 160.
[0099] As used herein, a wireless device (WD) refers to a device capable of, configured to, arranged to, and / or operable to wirelessly communicate with a network node and / or other wireless devices. Unless otherwise noted, the term WD may be used interchangeably with a user equipment (UE) in this article. Wireless communication may involve the use of electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for transmitting information through the air to transmit and / or receive wireless signals. In some embodiments, a WD may be configured to transmit and / or receive information without direct human interaction. For example, a WD may be designed to transmit information to the network on a predetermined schedule when triggered by an internal or external event or in response to a request from the network. Examples of WD include, but are not limited to, smart phones, mobile phones, cellular phones, voice over IP (VoIP) phones, wireless local loop phones, desktop computers, personal digital assistants (PDAs), wireless cameras, game consoles or devices, music storage devices, playback devices, wearable terminal devices, wireless endpoints, mobile stations, tablets, laptop computers, laptop embedded devices (LEEs), laptop mounted equipment (LMEs), smart devices, wireless customer premises equipment (CPEs), wireless terminal devices installed on vehicles, etc. WDs may support device-to-device (D2D) communications, for example, by implementing 3GPP standards for sidelink communications, vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), and vehicle-to-everything (V2X), and in this case may be referred to as D2D communication devices. As yet another specific example, in an Internet of Things (IoT) scenario, a WD may represent a machine or other device that performs monitoring and / or measurement and transmits the results of such monitoring and / or measurement to another WD and / or a network node. In this case, a WD may be a machine-to-machine (M2M) device, which may be referred to as an MTC device in the 3GPP context. As a specific example, a WD may be a UE that implements the 3GPP Narrowband Internet of Things (NB-IoT) standard. Specific examples of such machines or devices are sensors, metering devices (such as power meters), industrial machinery or household or personal appliances (e.g., refrigerators, televisions, etc.), personal wearable devices (e.g., watches, fitness trackers, etc.). In other scenarios, a WD may represent a vehicle or other device that is capable of monitoring and / or reporting its operating status or other functions associated with its operation. A WD as described above may represent an endpoint of a wireless connection, in which case the device may be referred to as a wireless terminal. In addition, a WD as described above may be mobile, in which case it may also be referred to as a mobile device or a mobile terminal.
[0100] As shown, wireless device QQ110 includes antenna QQ111, interface QQ114, processing circuit QQ120, device readable medium QQ130, user interface device QQ132, auxiliary device QQ134, power supply QQ136, and power circuit QQ137. WD QQ110 may include multiple sets of one or more of the illustrated components for different wireless technologies supported by WD QQ110, such as, for example, GSM, WCDMA, LTE, NR, WiFi, WiMax, or Bluetooth wireless technologies, to mention just a few examples. These wireless technologies may be integrated into the same or different chips or chipsets as other components within WD QQ110.
[0101] Antenna QQ111 may include one or more antennas or antenna arrays configured to send and / or receive wireless signals, and is connected to interface QQ114. In certain alternative embodiments, antenna QQ111 may be separated from WD QQ110 and may be connected to WD QQ110 via an interface or port. Antenna QQ111, interface QQ114, and / or processing circuit QQ120 may be configured to perform any receiving or transmitting operation described herein as being performed by a WD. Any information, data, and / or signal may be received from a network node and / or another WD. In some embodiments, the radio front-end circuit and / or antenna QQ111 may be considered an interface.
[0102] As shown, the interface QQ114 includes a radio front-end circuit QQ112 and an antenna QQ111. The radio front-end circuit QQ112 includes one or more filters QQ118 and an amplifier QQ116. The radio front-end circuit QQ114 is connected to the antenna QQ111 and the processing circuit QQ120, and is configured to adjust the signal transmitted between the antenna QQ111 and the processing circuit QQ120. The radio front-end circuit QQ112 may be coupled to the antenna QQ111 or may be part of the antenna QQ111. In some embodiments, the WD QQ110 may not include a separate radio front-end circuit QQ112; instead, the processing circuit QQ120 may include a radio front-end circuit and may be connected to the antenna QQ111. Similarly, in some embodiments, some or all of the RF transceiver circuit QQ122 may be considered as part of the interface QQ114. The radio front-end circuit QQ112 may receive digital data to be sent to other network nodes or WDs via a wireless connection. The radio front-end circuit QQ112 may use a combination of filters QQ118 and / or amplifiers QQ116 to convert the digital data into a radio signal with appropriate channel and bandwidth parameters. The radio signal may then be transmitted via antenna QQ111. Similarly, when data is received, antenna QQ111 may collect the radio signal, which is then converted into digital data by radio front end circuit QQ112. The digital data may be passed to processing circuit QQ120. In other embodiments, the interface may include different components and / or different combinations of components.
[0103] The processing circuit QQ120 may include a combination of one or more of the following: a microprocessor, a controller, a microcontroller, a central processing unit, a digital signal processor, an application specific integrated circuit, a field programmable gate array, or any other suitable computing device, resource, or combination of encoded logic, software, and / or hardware operable to provide WD QQ110 functionality alone or in conjunction with other WD QQ110 components (such as, device readable medium QQ130). Such functionality may include providing any of the various wireless features or benefits discussed herein. For example, the processing circuit QQ120 may execute instructions stored in the device readable medium QQ130 or in a memory within the processing circuit QQ120 to provide the functionality disclosed herein.
[0104] As shown, the processing circuit QQ120 includes one or more of the following: RF transceiver circuit QQ122, baseband processing circuit QQ124, and application processing circuit QQ126. In other embodiments, the processing circuit may include different components and / or different combinations of components. In certain embodiments, the processing circuit QQ120 of WD QQ110 may include a SOC. In some embodiments, the RF transceiver circuit QQ122, the baseband processing circuit QQ124, and the application processing circuit QQ126 may be on a separate chip or chipset. In an alternative embodiment, part or all of the baseband processing circuit QQ124 and the application processing circuit QQ126 may be combined into one chip or chipset, and the RF transceiver circuit QQ122 may be on a separate chip or chipset. In another alternative embodiment, part or all of the RF transceiver circuit QQ122 and the baseband processing circuit QQ124 may be on the same chip or chipset, and the application processing circuit QQ126 may be on a separate chip or chipset. In yet other alternative embodiments, part or all of the RF transceiver circuit QQ122, baseband processing circuit QQ124, and application processing circuit QQ126 may be combined in the same chip or chipset. In some embodiments, the RF transceiver circuit QQ122 may be part of the interface QQ114. The RF transceiver circuit QQ122 may condition the RF signal of the processing circuit QQ120.
[0105] In certain embodiments, some or all of the functionality described herein as being performed by the WD may be provided by processing circuit QQ120 executing instructions stored on a device-readable medium QQ130, which in certain embodiments may be a computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by processing circuit QQ120 (such as, in a hardwired manner) without executing instructions stored on a separate or discrete device-readable storage medium. In any of those specific embodiments, processing circuit QQ120 can be configured to perform the described functionality, whether or not instructions stored on a device-readable storage medium are executed. The benefits provided by such functionality are not limited to processing circuit QQ120 alone or to other components of WD QQ110, but are enjoyed by WD QQ110 as a whole, and / or generally by end users and wireless networks.
[0106] Processing circuit QQ120 may be configured to perform any determination, calculation, or similar operation described herein as being performed by the WD (e.g., certain obtaining operations). Such operations as performed by processing circuit QQ120 may include, for example, processing information obtained by processing circuit QQ120 by converting the obtained information into other information, comparing the obtained information or the converted information with information stored by WD QQ110, and / or performing one or more operations based on the obtained information or the converted information, and making determinations as a result of the processing.
[0107] The device-readable medium QQ130 may be operable to store computer programs, software, applications including one or more of logic, rules, codes, tables, etc., and / or other instructions that can be executed by the processing circuit QQ120. The device-readable medium QQ130 may include computer memory (e.g., random access memory (RAM) or read-only memory (ROM)), mass storage media (e.g., hard disk), removable storage media (e.g., compact disk (CD) or digital video disk (DVD)), and / or any other volatile or non-volatile, non-transitory device-readable and / or computer-executable memory device that stores information, data, and / or instructions that can be used by the processing circuit QQ120. In some embodiments, the processing circuit QQ120 and the device-readable medium QQ130 may be considered integrated. The user interface device QQ132 may provide components that allow for human users to interact with the WD QQ110. Such interactions may have a variety of forms, such as visual, auditory, tactile, etc. The user interface device QQ132 may be operable to generate output to the user and allow the user to provide input to the WD QQ110. The type of interaction may vary depending on the type of user interface device QQ132 installed in WD QQ110. For example, if WD QQ110 is a smart phone, the interaction may be performed via a touch screen; if WD QQ110 is a smart meter, the interaction may be performed through a screen that provides usage (e.g., the number of gallons used) or a speaker that provides an audible alarm (e.g., if smoke is detected). The user interface device QQ132 may include input interfaces, devices, and circuits, as well as output interfaces, devices, and circuits. The user interface device QQ132 is configured to allow information to be input into the WD QQ110, and is connected to the processing circuit QQ120 to allow the processing circuit QQ120 to process the input information. The user interface device QQ132 may include, for example, a microphone, a proximity sensor or other sensor, a key / button, a touch display, one or more cameras, a USB port, or other input circuits. The user interface device QQ132 is also configured to allow information to be output from the WD QQ110, and allows the processing circuit QQ120 to output information from the WD QQ110. The user interface device QQ132 may include, for example, a speaker, a display, a vibration circuit, a USB port, a headphone jack, or other output circuits. Using one or more input and output interfaces, devices, and circuits of the user interface device QQ132, the WD QQ110 may communicate with end users and / or wireless networks and allow them to benefit from the functionality described herein.
[0108] Auxiliary device QQ134 is operable to provide more specific functionality that may not normally be performed by a WD. This may include specialized sensors for taking measurements for various purposes, interfaces for additional types of communications such as wired communications, etc. The inclusion and types of components of auxiliary device QQ134 may vary depending on the embodiment and / or scenario.
[0109] In some embodiments, the power source QQ136 may take the form of a battery or battery pack. Other types of power sources may also be used, such as an external power source (e.g., an electrical outlet), a photovoltaic device, or a power cell. WD QQ110 may also include a power circuit QQ137 for delivering power from the power source QQ136 to various parts of WD QQ110 that require power from the power source QQ136 to implement any functionality described or indicated herein. The power circuit QQ137 may include a power management circuit in some embodiments. The power circuit QQ137 may additionally or alternatively be operable to receive power from an external power source; in this case, the WD QQ110 may be connected to an external power source (such as an electrical outlet) via an input circuit or interface (such as a power cable). The power circuit QQ137 may also be operable in some embodiments to deliver power from an external power source to the power source QQ136. For example, this can be used for charging the power source QQ136. The power circuit QQ137 may perform any formatting, conversion, or other modification on the power from the power source QQ136 to make the power suitable for the corresponding components of the WD QQ110 to which the power is supplied.
[0110] Fig.15 : User equipment according to some embodiments Fig.15 An embodiment of a UE according to various aspects described herein is illustrated. As used herein, a user equipment or UE may not necessarily have a user in the sense of a human user who owns and / or operates the associated device. Conversely, a UE may represent a device that is intended to be sold to or operated by a human user, but that may not, or may not initially, be associated with a particular human user (e.g., a smart sprinkler controller). Alternatively, a UE may represent a device that is not intended to be sold to or operated by an end user, but that may be associated with or operated for the benefit of a user (e.g., a smart meter). UE QQ2200 may be any UE identified by the Third Generation Partnership Project (3GPP), including a NB-IoT UE, a Machine Type Communication (MTC) UE, and / or an enhanced MTC (eMTC) UE. As Fig.15UE QQ200 illustrated in FIG. 1 is an example of a WD configured to communicate according to one or more communication standards promulgated by the Third Generation Partnership Project (3GPP), such as 3GPP's GSM, UMTS, LTE, and / or 5G standards. As previously mentioned, the terms WD and UE may be used interchangeably. Therefore, although Fig.15 It is a UE, but the components discussed in this article are also applicable to WD, and vice versa.
[0111] exist Fig.15 In the embodiment, UE QQ200 includes a processing circuit QQ201, which is operably coupled to an input / output interface QQ205, a radio frequency (RF) interface QQ209, a network connection interface QQ211, a memory QQ215 including a random access memory (RAM) QQ217, a read-only memory (ROM) QQ219, and a storage medium QQ221, a communication subsystem QQ231, a power supply QQ233, and / or any other components or any combination thereof. The storage medium QQ221 includes an operating system QQ223, an application QQ225, and data QQ227. In other embodiments, the storage medium QQ221 may include other similar types of information. Some UEs may utilize Fig.15 All of the components shown in the , or only a subset of the components may be utilized. The level of integration between components may vary from one UE to another UE. In addition, some UEs may contain multiple instances of components, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0112] exist Fig.15 In the embodiment of the present invention, the processing circuit QQ201 can be configured to process computer instructions and data. The processing circuit QQ201 can be configured to implement any sequential state machine operable to execute machine instructions stored in a memory as a machine-readable computer program, such as one or more hardware-implemented state machines (e.g., in discrete logic, FPGA, ASIC, etc.); programmable logic together with appropriate firmware; one or more stored programs, general-purpose processors (such as, microprocessors or digital signal processors (DSPs)) together with appropriate software; or any combination of the above. For example, the processing circuit QQ201 may include two central processing units (CPUs). The data may be information in a form suitable for use by a computer.
[0113] In the depicted embodiment, the input / output interface QQ205 may be configured to provide a communication interface to an input device, an output device, or an input and output device. The UE QQ200 may be configured to use an output device via the input / output interface QQ205. The output device may use an interface port of the same type as the input device. For example, a USB port may be used to provide input to the UE QQ200 and output from the UE QQ200. The output device may be a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, a transmitter, a smart card, another output device, or any combination thereof. The UE QQ200 may be configured to use an input device via the input / output interface QQ205 to allow the user to capture information into the UE QQ200. The input device may include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a roller, a smart card, etc. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from the user. The sensor can be, for example, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, a light sensor, a proximity sensor, another similar sensor, or any combination thereof. For example, the input device can be an accelerometer, a magnetometer, a digital camera, a microphone, and a light sensor.
[0114] exist Fig.15 In the embodiment of the present invention, the RF interface QQ209 can be configured to provide a communication interface to the RF components (such as transmitters, receivers and antennas). The network connection interface QQ211 can be configured to provide a communication interface to the network QQ243a. The network QQ243a can cover wired and / or wireless networks, such as local area networks (LANs), wide area networks (WANs), computer networks, wireless networks, telecommunication networks, another similar network or any combination thereof. For example, the network QQ243a can include a WiFi network. The network connection interface QQ211 can be configured to include a receiver and a transmitter interface for communicating with one or more other devices through a communication network according to one or more communication protocols (such as Ethernet, TCP / IP, SONET, ATM, etc.). The network connection interface QQ211 can implement receiver and transmitter functionality suitable for communication network links (e.g., optical, electrical, etc.). The transmitter and receiver functions can share circuit components, software or firmware, or alternatively can be implemented separately.
[0115] RAM QQ217 may be configured to interface with processing circuit QQ201 via bus QQ202 to provide storage or caching of data or computer instructions during execution of software programs such as operating systems, applications, and device drivers. ROM QQ219 may be configured to provide computer instructions or data to processing circuit QQ201. For example, ROM QQ219 may be configured to store unchanged low-level system code or data of basic system functions stored in non-volatile memory, such as basic input and output (I / O), booting, or receiving keystrokes from a keyboard. Storage medium QQ221 may be configured to include memory such as RAM, ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disk, optical disk, floppy disk, hard disk, removable cassette, or flash drive. In one example, the storage medium QQ221 may be configured to include an operating system QQ223, an application QQ225 (such as a web browser application, a widget or gadget engine, or another application), and a data file QQ227. The storage medium QQ221 may store any of a variety of operating systems or combinations of operating systems for use by the UE QQ200.
[0116] The storage medium QQ221 may be configured to include multiple physical drive units, such as a redundant array of independent disks (RAID), a floppy disk drive, a flash memory, a USB flash drive, an external hard drive, a thumb drive, a pen drive, a key drive, a high-density digital versatile disk (HD-DVD) optical drive, an internal hard drive, a Blu-ray optical drive, a holographic digital data storage (HDDS) optical drive, an external mini dual in-line memory module (DIMM), a synchronous dynamic random access memory (SDRAM), an external micro-DIMM SDRAM, a smart card memory (such as a subscriber identity module or a removable user identity (SIM / RUIM) module), other memories, or any combination thereof. The storage medium QQ221 may allow the UE QQ200 to access computer executable instructions, applications, etc. stored on a temporary or non-temporary storage medium to unload data or upload data. An article (such as an article utilizing a communication system) may be tangibly embodied in the storage medium QQ221, which may include a device-readable medium.
[0117] exist Fig.15In the embodiment of the present invention, the processing circuit QQ201 can be configured to communicate with the network QQ243b using the communication subsystem QQ231. The network QQ243a and the network QQ243b can be the same network or multiple networks or one or more different networks. The communication subsystem QQ231 can be configured to include one or more transceivers for communicating with the network QQ243b. For example, the communication subsystem QQ231 can be configured to include one or more transceivers for communicating with the network QQ243b. For example, the communication subsystem QQ231 can be configured to include one or more transceivers for communicating with one or more remote transceivers of another device (such as another WD, UE or base station of a radio access network (RAN)) capable of wireless communication according to one or more communication protocols, such as IEEE 802.10, CDMA, WCDMA, GSM, LTE, UTRAN, WiMax, etc. Each transceiver may include a transmitter QQ233 and / or a receiver QQ235 to respectively implement the transmitter or receiver functionality (e.g., frequency allocation, etc.) suitable for the RAN link. Additionally, the transmitter QQ 233 and receiver QQ 235 of each transceiver may share circuit components, software, or firmware, or alternatively may be implemented separately.
[0118] In the illustrated embodiment, the communication functions of the communication subsystem QQ231 may include data communication, voice communication, multimedia communication, short-range communication such as Bluetooth, near-field communication, location-based communication such as using a global positioning system (GPS) to determine the location, another similar communication function, or any combination thereof. For example, the communication subsystem QQ231 may include cellular communication, WiFi communication, Bluetooth communication, and GPS communication. The network QQ243b may cover wired and / or wireless networks, such as a local area network (LAN), a wide area network (WAN), a computer network, a wireless network, a telecommunications network, another similar network, or any combination thereof. For example, the network QQ243b may be a cellular network, a WiFi network, and / or a near-field network. The power supply QQ213 may be configured to provide alternating current (AC) or direct current (DC) power to the components of the UE QQ200.
[0119] The features, benefits and / or functions described herein may be implemented in one of the components of UE QQ200, or may be divided across multiple components of UE QQ200. In addition, the features, benefits and / or functions described herein may be implemented in any combination of hardware, software or firmware. In one example, the communication subsystem QQ231 may be configured to include any of the components described herein. In addition, the processing circuit QQ201 may be configured to communicate with any of such components via the bus QQ202. In another example, any of such components may be represented by a program instruction stored in a memory, and the program instruction performs the corresponding function described herein when executed by the processing circuit QQ201. In another example, the functionality of any of such components may be divided between the processing circuit QQ201 and the communication subsystem QQ231. In another example, the non-computationally intensive functions of any of such components may be implemented in software or firmware, and the computationally intensive functions may be implemented in hardware.
[0120] Fig.16 : Virtualized environment according to some embodiments Fig.16 It is a schematic block diagram illustrating a virtualization environment QQ300 in which functions implemented by some embodiments can be virtualized. In this context, virtualization means creating a virtual version of a device or apparatus, which may include a virtualized hardware platform, storage device, and networking resources. As used herein, virtualization can be applied to a node (e.g., a virtualized base station or a virtualized radio access node) or a device (e.g., a UE, a wireless device, or any other type of communication device) or a component thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components (e.g., via one or more applications, components, functions, virtual machines, or containers executed on one or more physical processing nodes in one or more networks).
[0121] In some embodiments, some or all of the functionality described herein may be implemented as virtual components executed by one or more virtual machines implemented in one or more virtual environments QQ300 hosted by one or more of the hardware nodes QQ330. Additionally, in embodiments where the virtual nodes are not radio access nodes or do not require radio connectivity (e.g., core network nodes), then the network nodes may be fully virtualized.
[0122] Functionality may be implemented by one or more applications QQ320 (alternatively they may be referred to as software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) that operate to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein. Applications QQ320 run in a virtualization environment QQ300 that provides hardware QQ330 including processing circuitry QQ360 and memory QQ390. Memory QQ390 contains instructions QQ395 executable by processing circuitry QQ360, whereby applications QQ320 may operate to provide one or more of the features, benefits, and / or functions disclosed herein.
[0123] The virtualized environment QQ300 includes a general or special purpose network hardware device QQ330, which includes a collection of one or more processors or processing circuits QQ360, which may be commercial off-the-shelf (COTS) processors, specialized application-specific integrated circuits (ASICs), or any other type of processing circuit including digital or analog hardware components or special purpose processors. Each hardware device may include a memory QQ390-1, which may be a non-permanent memory for temporarily storing software or instructions QQ395 executed by the processing circuit QQ360. Each hardware device may include one or more network interface controllers (NICs) QQ370 (also known as network interface cards), which include a physical network interface QQ380. Each hardware device may also include a non-transitory, permanent, machine-readable storage medium QQ390-2 in which instructions and / or software QQ395 executable by the processing circuit QQ360 are stored. Software QQ395 may include any type of software, including software for instantiating one or more virtualization layers QQ350 (also known as hypervisors), software for executing virtual machines QQ340, and software that enables them to perform the functions, features and / or benefits described in conjunction with some of the embodiments described herein.
[0124] The virtual machine QQ340 includes virtual processing, virtual memory, virtual networking or interfaces, and virtual storage, and can be run by a corresponding virtualization layer QQ350 or hypervisor. Different embodiments of instances of the virtual device QQ320 can be implemented on one or more of the virtual machines QQ340, and the implementation can be carried out in different ways.
[0125] During operation, processing circuit QQ360 executes software QQ395 to instantiate a hypervisor or virtualization layer QQ350, which may sometimes be referred to as a virtual machine monitor (VMM). Virtualization layer QQ350 may present a virtual operating platform that appears to the networked hardware to virtual machine QQ340.
[0126] like Fig.16As shown in , hardware QQ330 can be an independent network node with common or specific components. Hardware QQ330 may include antenna QQ3225, and some functions may be implemented via virtualization. Alternatively, hardware QQ330 may be part of a larger hardware cluster (e.g., such as in a data center or customer premises equipment (CPE)), where many hardware nodes work together and are managed via management and orchestration (MANO) QQ3100, which also oversees the life cycle management of application QQ320.
[0127] Hardware virtualization is referred to in some contexts as network function virtualization (NFV). NFV can be used to consolidate many network equipment types onto industry-standard high-volume server hardware, physical switches, and physical storage devices, which can be located in data centers and customer premises equipment.
[0128] In the context of NFV, virtual machines QQ340 may be software implementations of physical machines that execute programs as if they were executing on a physical, non-virtualized machine. Each of the virtual machines QQ340 and the portion of the hardware QQ330 on which it executes (whether it is hardware dedicated to that virtual machine and / or hardware shared by that virtual machine and other virtual machines in virtual machines QQ340) form a separate virtual network element (VNE).
[0129] Still in the context of NFV, a virtual network function (VNF) is responsible for handling a specific network function running in one or more virtual machines QQ340 on top of the hardware networking infrastructure QQ330 and corresponds to Fig.16 Application QQ320.
[0130] In some embodiments, one or more radio units QQ3200, each including one or more transmitters QQ3220 and one or more receivers QQ3210, may be coupled to one or more antennas QQ3225. The radio unit QQ3200 may communicate directly with the hardware node QQ330 via one or more appropriate network interfaces, and may be used in combination with virtual components to provide radio capabilities to a virtual node, such as a radio access node or base station.
[0131] In some embodiments, some signaling may be accomplished using a control system QQ3230 which may alternatively be used for communications between the hardware node QQ330 and the radio unit QQ3200 .
[0132] Fig.17 : A telecommunications network connected to a host computer via an intermediate network according to some embodiments.
[0133] refer to Fig.17According to an embodiment, a communication system includes a telecommunication network QQ410, such as a 3GPP type cellular network, which includes an access network QQ411 such as a radio access network, and a core network QQ414. The access network QQ411 includes a plurality of base stations QQ412a, QQ412b, QQ412c, such as NB, eNB, gNB or other types of wireless access points, each defining a corresponding coverage area QQ413a, QQ413b, QQ413c. Each base station QQ412a, QQ412b, QQ412c is connectable to the core network QQ414 via a wired or wireless connection QQ415. A first UE QQ491 located in the coverage area QQ413c is configured to be wirelessly connected to or paged by the corresponding base station QQ412c. A second UE QQ492 in the coverage area QQ413a is wirelessly connectable to the corresponding base station QQ412a. Although multiple UEs QQ491 , QQ492 are illustrated in this example, the disclosed embodiments are equally applicable to situations where a single UE is in the coverage area or where a single UE is connecting to the corresponding base station QQ412 .
[0134] The telecommunications network QQ410 itself is connected to a host computer QQ430, which may be embodied in the hardware and / or software of a stand-alone server, a cloud-implemented server, a distributed server, or as processing resources in a server farm. The host computer QQ430 may be under the ownership or control of a service provider, or may be operated by or on behalf of the service provider. The connections QQ421 and QQ422 between the telecommunications network QQ410 and the host computer QQ430 may extend directly from the core network QQ414 to the host computer QQ430, or may proceed via an optional intermediate network QQ420. The intermediate network QQ420 may be one or a combination of more than one of a public, private, or managed network; the intermediate network QQ420 (if any) may be a backbone network or the Internet; in particular, the intermediate network QQ420 may include two or more sub-networks (not shown).
[0135] Fig.17The communication system as a whole enables connectivity between connected UEs QQ491, QQ492 and a host computer QQ430. Connectivity may be described as an over-the-top (OTT) connection QQ450. The host computer QQ430 and the connected UEs QQ491, QQ492 are configured to use the access network QQ411, the core network QQ414, any intermediate network QQ420, and possible additional infrastructure (not shown) as intermediaries to pass data and / or signaling via the OTT connection QQ450. The OTT connection QQ450 may be transparent in the sense that the participating communication devices through which the OTT connection QQ450 passes do not know the routes of the uplink and downlink communications. For example, the base station QQ412 may not or need not be informed of the past routes of incoming downlink communications, which have data originating from the host computer QQ430 to be forwarded (e.g., handed over) to the connected UE QQ491. Similarly, base station QQ412 need not be aware of the future routing of outgoing uplink communications originating from UE QQ491 toward host computer QQ430.
[0136] Fig.18 : A host computer in communication with a user device via a base station over a partially wireless connection according to some embodiments.
[0137] According to the embodiment, reference will now be made to Fig.18 Describe the example implementation of the UE, base station and host computer discussed in the previous paragraph. In the communication system QQ500, the host computer QQ510 includes hardware QQ515, which includes a communication interface QQ516, which is configured to establish and maintain a wired or wireless connection with the interface of different communication devices of the communication system QQ500. The host computer QQ510 also includes a processing circuit QQ518, which may have storage and / or processing capabilities. In particular, the processing circuit QQ518 may include one or more programmable processors, application specific integrated circuits, field programmable gate arrays, or a combination of these (not shown) suitable for executing instructions. The host computer QQ510 also includes software QQ511, which is stored in the host computer QQ510 or accessible by the host computer QQ510 and executable by the processing circuit QQ518. The software QQ511 includes a host application QQ512. The host application QQ512 may be operable to provide services to a remote user, such as a UE QQ530 connected via an OTT connection QQ550 terminating at the UE QQ530 and the host computer QQ510. In providing services to the remote user, the host application QQ512 may provide user data transmitted using the OTT connection QQ550.
[0138] The communication system QQ500 also includes a base station QQ520, which is provided in the telecommunication system and includes hardware QQ525 enabling it to communicate with the host computer QQ510 and with the UE QQ530. The hardware QQ525 may include a communication interface QQ526 for establishing and maintaining wired or wireless connections with different communication devices of the communication system QQ500, and for establishing and maintaining connections with at least the communication devices located in the coverage area ( Fig.18 The communication interface QQ526 may be configured to facilitate a connection QQ560 to the host computer QQ510. The connection QQ560 may be direct, or it may be through a core network (e.g., a telecommunications system) of the telecommunications system. Fig.18 ) and / or through one or more intermediate networks external to the telecommunications system. In the illustrated embodiment, the hardware QQ525 of the base station QQ520 also includes processing circuitry QQ528, which may include one or more programmable processors, application specific integrated circuits, field programmable gate arrays, or a combination of these (not shown) suitable for executing instructions. The base station QQ520 also has software QQ521 stored internally or accessible via an external connection.
[0139] The communication system QQ500 also includes the UE QQ530 already mentioned. Its hardware QQ535 may include a radio interface QQ537, which is configured to establish and maintain a wireless connection QQ570 with a base station serving the coverage area in which the UE QQ530 is currently located. The hardware QQ535 of the UE QQ530 also includes a processing circuit QQ538, which may include one or more programmable processors, application specific integrated circuits, field programmable gate arrays, or a combination of these (not shown) suitable for executing instructions. The UE QQ530 also includes software QQ531, which is stored in the UE QQ530 or accessible by the UE QQ530 and executable by the processing circuit QQ538. The software QQ531 includes a client application QQ532. The client application QQ532 may be operable to provide services to human or non-human users via the UE QQ530 with the support of the host computer QQ510. In the host computer QQ510, the executing host application QQ512 can communicate with the executing client application QQ532 via the OTT connection QQ550 that terminates at the UE QQ530 and the host computer QQ510. When providing services to users, the client application QQ532 can receive request data from the host application QQ512 and provide user data in response to the request data. The OTT connection QQ550 can transmit both the request data and the user data. The client application QQ532 can interact with the user to generate the user data it provides.
[0140] Notice, Fig.18 The host computer QQ510, base station QQ520 and UE QQ530 shown in FIG. 5 may be similar to or identical to Fig.17 The host computer QQ430, one of the base stations QQ412a, QQ412b, QQ412c and one of the UEs QQ491, QQ492. That is, the internal workings of these entities can be as follows Fig.18 shown, and independently, the surrounding network topology can be Fig.17 network topology.
[0141] exist Fig.18 , OTT connection QQ550 has been abstractly drawn to illustrate communication between host computer QQ510 and UE QQ530 via base station QQ520, without explicit reference to any intermediate devices and the precise routing of messages via these devices. The network infrastructure can determine the routing, which can be configured to be hidden from UE QQ530 or from the service provider operating host computer QQ510, or from both. When OTT connection QQ550 is active, the network infrastructure can further make decisions by which it dynamically changes the routing (e.g., based on network reconfiguration or load balancing considerations).
[0142] The wireless connection QQ570 between the UE QQ530 and the base station QQ520 is in accordance with the teachings of the embodiments described throughout this disclosure. One or more of the various embodiments improves the performance of an OTT service provided to the UE QQ530 using the OTT connection QQ550, in which the wireless connection QQ570 forms the last segment. More precisely, the teachings of these embodiments can improve deblocking filtering for video processing and thereby provide benefits such as improved video encoding and / or decoding.
[0143] A measurement process may be provided for the purpose of monitoring data rate, latency, and other factors improved by one or more embodiments. There may also be optional network functionality for reconfiguring the OTT connection QQ550 between the host computer QQ510 and the UE QQ530 in response to changes in the measurement results. The measurement process and / or network functionality for reconfiguring the OTT connection QQ550 may be implemented in the software QQ511 and hardware QQ515 of the host computer QQ510 or in the software QQ531 and hardware QQ535 of the UE QQ530, or in both. In an embodiment, a sensor (not shown) may be deployed in or associated with a communication device through which the OTT connection QQ550 passes; the sensor may participate in the measurement process by providing the values of the monitoring quantities exemplified above or by providing the values of other physical quantities from which the software QQ511, QQ531 can calculate or estimate the monitoring quantities. The reconfiguration of the OTT connection QQ550 may include message formats, retransmission settings, preferred routes, etc.; the reconfiguration does not need to affect the base station QQ520 and may be unknown or imperceptible to the base station QQ520. Such processes and functionality may be known and practiced in the art. In some embodiments, the measurements may involve proprietary UE signaling, thereby facilitating the host computer QQ510 to measure throughput, propagation time, latency, etc. The measurements may be achieved by the software QQ511 and QQ531 using the OTT connection QQ550 to cause the transmission of messages, particularly empty messages or "dummy" messages, while it monitors propagation time, errors, etc.
[0144] Fig.19 : A method implemented in a communication system including a host computer, a base station and a user equipment according to some embodiments.
[0145] Fig.19 FIG. 1 is a flow chart showing a method implemented in a communication system according to one embodiment. The communication system includes a host computer, a base station and a UE, which may be those described with reference to FIG. QQ4 and FIG. QQ5. In order to simplify the present disclosure, only the description of FIG. 1 will be included in this section. Fig.19 . In step QQ610, the host computer provides user data. In sub-step QQ611 of step QQ610 (which may be optional), the host computer provides user data by executing a host application. In step QQ620, the host computer initiates a transmission that carries the user data to the UE. In step QQ630 (which may be optional), in accordance with the teachings of the embodiments described throughout the present disclosure, the base station transmits to the UE the user data carried in the transmission initiated by the host computer. In step QQ640 (which may also be optional), the UE executes a client application associated with the host application executed by the host computer.
[0146] Fig. 20 : A method implemented in a communication system including a host computer, a base station and a user equipment according to some embodiments.
[0147] Fig. 20 FIG. 1 is a flow chart showing a method implemented in a communication system according to one embodiment. The communication system includes a host computer, a base station and a UE, which may be those described with reference to FIG. QQ4 and FIG. QQ5. In order to simplify the present disclosure, only the description of FIG. 1 will be included in this section. Fig. 20 . In step QQ710 of the method, the host computer provides user data. In an optional sub-step (not shown), the host computer provides the user data by executing a host application. In step QQ720, the host computer initiates a transmission that carries the user data to the UE. According to the teachings of the embodiments described throughout the present disclosure, the transmission may be through a base station. In step QQ730 (which may be optional), the UE receives the user data carried in the transmission.
[0148] Fig.21 : A method implemented in a communication system including a host computer, a base station and a user equipment according to some embodiments.
[0149] Fig.21 FIG. 1 is a flow chart showing a method implemented in a communication system according to one embodiment. The communication system includes a host computer, a base station and a UE, which may be those described with reference to FIG. QQ4 and FIG. QQ5. In order to simplify the present disclosure, only the description of FIG. 1 will be included in this section. Fig.21 Reference to the accompanying drawings. In step QQ810 (which may be optional), the UE receives input data provided by the host computer. Additionally or alternatively, in step QQ820, the UE provides user data. In sub-step QQ821 of step QQ820 (which may be optional), the UE provides user data by executing a client application. In sub-step QQ811 of step QQ810 (which may be optional), the UE executes a client application that provides user data in response to received input data provided by the host computer. When providing user data, the executed client application may further consider user input received from the user. Regardless of the specific manner in which the user data was provided, in sub-step QQ830 (which may be optional), the UE initiates transmission of user data to the host computer. In step QQ840 of the method, in accordance with the teachings of the embodiments described throughout the present disclosure, the host computer receives user data transmitted from the UE.
[0150] Fig. 22 : A method implemented in a communication system including a host computer, a base station and a user equipment according to some embodiments.
[0151] Fig. 22FIG. 1 is a flow chart showing a method implemented in a communication system according to one embodiment. The communication system includes a host computer, a base station and a UE, which may be those described with reference to FIG. QQ4 and FIG. QQ5. In order to simplify the present disclosure, only the description of FIG. 1 will be included in this section. Fig. 22 In step QQ910 (which may be optional), according to the teachings of the embodiments described throughout the present disclosure, the base station receives user data from the UE. In step QQ920 (which may be optional), the base station initiates transmission of the received user data to the host computer. In step QQ930 (which may be optional), the host computer receives the user data carried in the transmission initiated by the base station.
[0152] Any suitable steps, methods, features, functions or benefits disclosed herein may be performed by one or more functional units or modules of one or more virtual devices. Each virtual device may include a plurality of these functional units. These functional units may be implemented via processing circuits and other digital hardware, and the processing circuits may include one or more microprocessors or microcontrollers, and the other digital hardware may include digital signal processors (DSPs), dedicated digital logic, etc. The processing circuit may be configured to execute program codes stored in a memory, and the memory may include one or more types of memory, such as read-only memory (ROM), random access memory (RAM), cache memory, flash memory device, optical storage device, etc. The program code stored in the memory includes program instructions for executing one or more telecommunications and / or data communication protocols and instructions for executing one or more technologies described herein. In some embodiments, the processing circuit may be used to cause the corresponding functional unit to perform the corresponding function according to one or more embodiments.
[0153] The term unit may have its conventional meaning in the field of electronics, electrical devices and / or electronic devices, and may include, for example, electrical and / or electronic circuits, devices, modules, processors, memories, logical solid-state and / or discrete devices, computer programs or instructions for performing corresponding tasks, processes, calculations, output and / or display functions, etc., such as those described in this document.
Claims
1. A method performed by a decoder, the method comprising: obtaining (1210) a current inter-block and a plurality of previously decoded inter-blocks, each inter-block of the plurality of inter-blocks comprising a motion vector having a resolution; as well as generating (1220) a list of motion vector predictor candidates for predicting the motion vector associated with the current inter block, wherein generating the list of motion vector predictor candidates comprises: defining (1322) a set of inter-blocks comprising a plurality of previously decoded inter-blocks; scanning (1324) the inter blocks in the set of inter blocks in a scan order; and For each of the inter-blocks in the set of inter-blocks: deriving (1326) a motion vector prediction candidate using the motion vector of the inter block; and Determining (1330) whether a criterion is satisfied, wherein in response to determining that the criterion is satisfied, the motion vector prediction candidate is added (1336) to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates, and Wherein in response to determining that the criterion is not satisfied, performing (1334) a motion vector comparison operation to compare the motion vector prediction candidate with an existing motion vector prediction candidate in the list of motion vector prediction candidates corresponding to the current inter block.
2. The method according to claim 1, further comprising: in response to performing the motion vector comparison operation, determining that the motion vector prediction candidate does not match any of the existing motion vector prediction candidates in the list of motion vector prediction candidates; as well as In response to determining that the motion vector prediction candidate does not match any of the existing motion vector prediction candidates in the list of motion vector prediction candidates, the motion vector prediction candidate is added to the list of motion vector prediction candidates.
3. The method according to any one of claims 1 to 2, further comprising: in response to performing the motion vector comparison operation, determining that the motion vector prediction candidate matches one of the existing motion vector prediction candidates in the list of motion vector prediction candidates; as well as In response to determining that the motion vector prediction candidate matches one of the existing motion vector prediction candidates in the list of motion vector prediction candidates, the motion vector prediction candidate is not added to the list of motion vector prediction candidates.
4. The method according to any one of claims 1 to 3, wherein: The set of inter blocks including the plurality of previously decoded inter blocks includes inter blocks in a current picture.
5. The method according to any one of claims 1 to 3, wherein: The set of inter blocks including the plurality of previously decoded inter blocks includes inter blocks in previously decoded pictures.
6. The method according to any one of claims 1 to 5, further comprising: Determining a resolution of the current block; as well as In response to the resolution of the current inter block being different from a resolution of the motion vector prediction candidate, a conversion of the motion vector prediction candidate is performed to match the resolution of the current inter block.
7. The method according to any one of claims 1-6 further includes, in response to generating the list of motion vector predictor candidates, decoding video data of a video sequence including multiple pictures based on generating the list of motion vector predictor candidates for predicting the motion vector associated with the current inter-block.
8. The method according to any one of claims 1 to 7, wherein: The criterion is satisfied in response to the resolution of the current inter block exceeding a resolution threshold.
9. The method according to any one of claims 1 to 7, wherein: In response to the inter-block being not spatially adjacent to the current inter-block, the criterion is satisfied, The method also includes, in response to determining that the criterion is satisfied based on the inter block not being adjacent to the current inter block, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with an existing motion vector prediction candidate in the list of motion vector prediction candidates.
10. The method according to any one of claims 1 to 7, wherein: In response to the inter block having a spatial distance from the current inter block exceeding a spatial distance threshold and satisfying the criterion, The method also includes, in response to determining that the criterion is satisfied based on the spatial distance between the inter block and the current inter block exceeding a spatial distance threshold, adding the motion vector prediction candidate to the list of motion vector prediction candidates without performing a comparison with existing motion vector prediction candidates in the list of motion vector prediction candidates.