Method for inter prediction and method for transmitting bitstream
Patent Information
- Application Number
- CN202411901797.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-03
- Filing Date
- 2019-06-05
- Publication Date
- 2025-02-11
AI Technical Summary
When existing video encoding technologies process high-resolution and high frame rate video data, the encoding efficiency and quality are insufficient, making it difficult to meet the growing demand for video data.
By performing the inter prediction method in the video decoding device, the reference sample of the current block is derived using the motion vector, and by replacing the external area outside the reference picture with the corresponding inner area, the accuracy and efficiency of prediction are improved.
This method can efficiently estimate the motion information of a 360-degree image, improve the accuracy and encoding efficiency of inter-frame prediction, and reduce the need for bit count.
Smart Images

Figure CN119420944A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the original application number 201980047008.4 (International application number: PCT / KR2019 / 006796, application date: June 5, 2019, invention name: Inter-frame prediction method and image decoding device). Technical Field
[0002] The present disclosure relates to encoding and decoding of a video, and to an inter-frame prediction method and a video decoding apparatus with improved encoding and decoding efficiency. Background Art
[0003] Since the amount of video data is larger than that of voice data or still image data, storing or transmitting the video data without compression processing requires a large amount of hardware resources including memory.
[0004] Therefore, when storing or transmitting video data, an encoder is usually used to compress the video data for storage or transmission. Then, a decoder receives the compressed video data and decompresses and reproduces the video data. Compression technologies used for such videos include H.264 / AVC and High Efficiency Video Coding (HEVC), which has an approximately 40% improvement in coding efficiency compared to H.264 / AVC.
[0005] However, as the size, resolution, and frame rate of videos gradually increase, the amount of data to be encoded also increases. Therefore, a new compression technology with better encoding efficiency and higher quality than existing compression technologies is needed. Summary of the invention
[0006] Technical issues
[0007] An object of the present disclosure designed to meet such a need is to provide an improved video encoding and decoding technique. In particular, one aspect of the present disclosure relates to a technique for reducing the number of bits required to express motion information to improve encoding and decoding.
[0008] Technical Solution
[0009] According to one aspect of the present disclosure, a method for inter-frame prediction performed by a video decoding device is provided, the method comprising: deriving a motion vector of a current block based on motion information decoded from a bitstream; obtaining a reference sample of a first reference block by using the motion vector, wherein a reference sample of an external area of the first reference block located outside a reference picture is obtained from a corresponding area within the reference picture corresponding to the external area; and predicting the current block based on the obtained reference sample.
[0010] According to another aspect of the present disclosure, a video decoding device is provided, which includes: a motion exporter, which is configured to export a motion vector of a current block based on motion information decoded from a bitstream; and a sample acquirer, which is configured to acquire reference samples of a first reference block by using the motion vector, wherein reference samples of an external area of the first reference block located outside a reference picture are acquired from a corresponding area within the reference picture corresponding to the external area; and a prediction executor, which is configured to predict the current block based on the acquired reference samples.
[0011] Beneficial Effects
[0012] As is apparent from the above description, according to an embodiment of the present disclosure, a specific area outside a reference picture may be replaced with another area within the reference picture, and thus motion information about a 360-degree image may be efficiently estimated.
[0013] Furthermore, according to another embodiment of the present disclosure, another region in the reference picture corresponds to the same region as the specific region outside the reference picture, and thus the accuracy of prediction can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 is an exemplary block diagram of a video encoding device capable of implementing the technology of the present disclosure.
[0015] Figure 2 is a diagram showing block partitioning using the QTBTTT structure.
[0016] Figure 3 is a diagram showing a plurality of intra prediction modes.
[0017] Figure 4 is an exemplary block diagram of a video decoding device capable of implementing the technology of the present disclosure.
[0018] Figure 5 is an exemplary block diagram of an inter-frame predictor capable of implementing the techniques of this disclosure.
[0019] Figure 6 is a flow chart illustrating an example of the present disclosure related to prediction of a current block.
[0020] Figure 7 is a diagram illustrating an example of the present disclosure related to prediction of a current block.
[0021] Figure 8 is a diagram illustrating another example of the present disclosure related to prediction of a current block.
[0022] Fig. 9 is a diagram showing an embodiment of the present disclosure related to adjustment of a motion vector.
[0023] Figures 10 to 12 is a diagram illustrating various embodiments of the present disclosure for acquiring reference samples based on a directional relationship between reference blocks.
[0024] Fig.13 is a diagram showing an embodiment in which the present disclosure is applied to reference pictures having different formats. DETAILED DESCRIPTION
[0025] Hereinafter, some embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. It should be noted that although elements are shown in different drawings, when reference numerals are added to the constituent elements in each drawing, the same reference numerals represent the same elements. In addition, in the following description of the present disclosure, the detailed description of the known functions and configurations incorporated herein will be omitted to avoid obscuring the subject matter of the present disclosure.
[0026] Figure 1 is an exemplary block diagram of a video encoding device capable of implementing the technology of the present disclosure. Figure 1 A video encoding apparatus and elements of the apparatus are described.
[0027] The video encoding apparatus includes a blocker 110 , a predictor 120 , a subtractor 130 , a transformer 140 , a quantizer 145 , an encoder 150 , an inverse quantizer 160 , an inverse transformer 165 , an adder 170 , a filter unit 180 , and a memory 190 .
[0028] Each element of the video encoding device may be implemented in hardware or software, or a combination of hardware and software. The functions of each element may be implemented in software, and a microprocessor may be implemented to execute the software functions corresponding to each element.
[0029] A video consists of multiple pictures. Each picture is divided into multiple regions, and encoding is performed on each region. For example, a picture is divided into one or more tiles and / or slices. Here, one or more tiles can be defined as a tile group. Each tile or slice is divided into one or more coding tree units (CTUs). Each CTU is divided into one or more coding units (CUs) through a tree structure. The information applied to each CU is encoded as the syntax of the CU, and the information applied to the CUs included in a CTU is encoded as the syntax of the CTU. In addition, the information commonly applied to all blocks in a tile is encoded as the syntax of the tile, or as the syntax of the tile group, which is a set of multiple tiles, and the information applied to all blocks constituting a picture is encoded in a picture parameter set (PPS) or a picture header. In addition, information commonly referenced by multiple pictures is encoded in a sequence parameter set (SPS). In addition, information commonly referenced by one or more SPSs is encoded in a video parameter set (VPS).
[0030] The blocker 110 determines the size of a coding tree unit (CTU). Information on the size of the CTU (CTU size) is encoded as a syntax of an SPS or a PPS and transmitted to a video decoding apparatus.
[0031] The blocker 110 divides each picture constituting a video into a plurality of CTUs having a predetermined size, and then recursively divides the CTUs using a tree structure. In the tree structure, a leaf node is used as a coding unit (CU), which is a basic unit of encoding.
[0032] The tree structure may be a quadtree (QT), a binary tree (BT), a ternary tree (TT), or a structure formed by a combination of two or more of a QT structure, a BT structure, and a TT structure, wherein in the quadtree (QT), a node (or a parent node) is split into four child nodes (or child nodes) of the same size; in the binary tree (BT), a node is split into two child nodes; in the ternary tree (TT), a node is split into three child nodes at a ratio of 1:2:1. For example, a QTBT (quadtree plus binary tree) structure or a QTBTTT (quadtree plus binary tree ternary tree) structure may be used. Here, BTTT may be collectively referred to as a multi-type tree (MTT).
[0033] Figure 2 The QTBTTT segmentation tree structure is shown. Figure 2 As shown, the CTU can be initially split in a QT structure. The QT splitting can be repeated until the size of the split block reaches the minimum block size (MinQTSize) of the leaf node allowed in the QT. The first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of a lower layer is encoded by the encoder 150 and sent to the video decoding device with a signal. When the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in the BT, the leaf node can be further split into one or more of the BT structure or the TT structure. In the BT structure and / or the TT structure, there can be multiple splitting directions. For example, there can be two directions, which are the horizontal splitting and vertical splitting of the blocks of the node. As Figure 2 As shown, when MTT splitting starts, a second flag (mtt_split_flag) indicating whether a node is split, a flag indicating a splitting direction (vertical or horizontal) and / or a flag indicating a splitting type (binary tree or ternary tree) are encoded by the encoder 150 and sent to the video decoding device using a signal.
[0034] As another example of a tree structure, when a block is partitioned using a QTBTTT structure, information about a CU partition flag (split_cu_flag) indicating that the block has been partitioned and a QT partition flag (split_qt_flag) indicating whether the partition type is QT partitioning is encoded by the encoder 150 and sent to the video decoding device with a signal. When the value of split_cu_flag indicates that the block has not been partitioned, the block of the node becomes a leaf node in the partition tree structure, and it is used as a coding unit (CU), which is a basic unit of encoding. When the value of split_cu_flag indicates that the block has not been partitioned, whether the partition type is QT or MTT is distinguished by the value of split_qt_flag. When the partition type is QT, there is no additional information. When the partition type is MTT, a flag (mtt_split_cu_vertical_flag) indicating the MTT partition direction (vertical or horizontal) and / or a flag (mtt_split_cu_binary_flag) indicating the MTT partition type (binary tree or ternary tree) is encoded by the encoder 150 and signaled to the video decoding apparatus.
[0035] As another example of a tree structure, when using QTBT, there may be two types of segmentation, which are horizontal segmentation (i.e., symmetric horizontal segmentation) and vertical segmentation (i.e., symmetric vertical segmentation) of a block of a node into two blocks of the same size. A segmentation flag (split_flag) indicating whether each node of the BT structure is segmented into blocks of a lower layer and segmentation type information indicating the segmentation type are encoded by the encoder 150 and sent to the video decoding device. There may be an additional type that segments the block of a node into two asymmetric blocks. Asymmetric segmentation types may include a type that segments a block into two rectangular blocks at a size ratio of 1:3, and a type that diagonally segments the block of a node.
[0036] According to the QTBT or QTBTTT partitioning of the CTU, the CU may have various sizes. Hereinafter, a block corresponding to a CU to be encoded or decoded (ie, a leaf node of the QTBTTT) is referred to as a 'current block'.
[0037] The predictor 120 predicts the current block to generate a predicted block. The predictor 120 includes an intra predictor 122 and an inter predictor 124.
[0038] Typically, each current block in a picture can be predictively encoded. The prediction of the current block can be performed using an intra-frame prediction technique (intra-frame prediction technique is performed based on data from a picture containing the current block) or an inter-frame prediction technique (inter-frame prediction technique is performed based on data from a picture encoded before the picture containing the current block). Inter-frame prediction includes unidirectional prediction and bidirectional prediction.
[0039] The intra-frame predictor 122 uses pixels (reference pixels) located around the current block in the current picture including the current block to predict the pixels in the current block. There are multiple intra-frame prediction modes according to the prediction direction. For example, Figure 3 As shown, the plurality of intra prediction modes may include: a non-directional mode including a planar mode and a DC mode; and a directional mode. For each prediction mode, an equation to be used and neighboring pixels are defined differently.
[0040] The intra-frame predictor 122 may determine an intra-frame prediction mode to be used when encoding the current block. In some examples, the intra-frame predictor 122 may encode the current block using several intra-frame prediction modes and select an appropriate intra-frame prediction mode to use from the tested modes. For example, the intra-frame predictor 122 may calculate a rate-distortion value using a rate-distortion analysis of several tested intra-frame prediction modes and may select an intra-frame prediction mode having the best rate-distortion characteristic among the tested modes.
[0041] The intra predictor 122 selects one intra prediction mode from among a plurality of intra prediction modes and predicts the current block using adjacent pixels (reference pixels) and an equation determined according to the selected intra prediction mode. Information on the selected intra prediction mode is encoded by the encoder 150 and transmitted to the video decoding apparatus.
[0042] The inter-frame predictor 124 generates a prediction block for the current block through motion compensation processing. The inter-frame predictor searches for a block most similar to the current block in a reference picture that is encoded and decoded earlier than the current picture, and generates a prediction block for the current block based on the searched block. Then, the inter-frame predictor generates a motion vector corresponding to the displacement between the current block in the current picture and the prediction block in the reference picture. Generally, motion estimation is performed on the luminance component, and the motion vector calculated based on the luminance component is used for both the luminance component and the chrominance component. Motion information including information about the reference picture used to predict the current block and information about the motion vector is encoded by the encoder 150 and sent to the video decoding device.
[0043] The subtractor 130 generates a residual block by subtracting a prediction block generated by the intra predictor 122 or the inter predictor 124 from the current block.
[0044] The transformer 140 transforms the residual signal in the residual block having pixel values in the spatial domain into a transform coefficient in the frequency domain. The transformer 140 may transform the residual signal in the residual block using the total size of the current block as a transform unit. Alternatively, the transformer may divide the residual block into sub-blocks of a transform region and a non-transform region, and transform the residual signal using only the sub-blocks of the transform region as transform units. Here, the transform region sub-block may be one of two rectangular blocks having a size ratio of 1:1 based on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag), direction (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag) indicating that only the sub-block has been transformed are encoded by the encoder 150 and sent to the video decoding device by a signal. In addition, the size of the transform region sub-block may have a size ratio of 1:3 based on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_quad_flag) for distinguishing the segmentation is additionally encoded by the encoder 150 and sent to the video decoding device by a signal.
[0045] The quantizer 145 quantizes the transform coefficient output from the transformer 140 , and outputs the quantized transform coefficient to the encoder 150 .
[0046] The encoder 150 generates a bitstream by encoding the quantized transform coefficients using a coding method such as context-based adaptive binary arithmetic code (CABAC). The encoder 150 encodes information related to block partitioning such as CTU size, CU partition flag, QT partition flag, MTT partition direction, and MTT partition type so that the video decoding device partitions the block in the same manner as the video encoding device.
[0047] In addition, the encoder 150 encodes information about a prediction type indicating whether the current block is encoded by intra-frame prediction or inter-frame prediction, and encodes intra-frame prediction information (i.e., information about an intra-frame prediction mode) or inter-frame prediction information (information about a reference picture and a motion vector) according to the prediction type.
[0048] The inverse quantizer 160 inversely quantizes the quantized transform coefficient output from the quantizer 145 to generate a transform coefficient. The inverse transformer 165 transforms the transform coefficient output from the inverse quantizer 160 from the frequency domain to the spatial domain and reconstructs a residual block.
[0049] The adder 170 reconstructs the current block by adding the reconstructed residual block to the prediction block generated by the predictor 120. Pixels in the reconstructed current block are used as reference pixels for intra prediction of the next block.
[0050] The filter unit 180 filters the reconstructed pixels to reduce blurring artifacts, blocking artifacts, and ringing artifacts due to block-based prediction and transform / quantization. The filter unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.
[0051] The deblocking filter 182 filters the boundary between the reconstructed blocks to remove the block artifacts caused by block-by-block encoding / decoding, and the SAO filter 184 additionally filters the deblocking filtered video. The SAO filter 184 is a filter for compensating for the difference between the reconstructed pixels and the original pixels caused by lossy encoding.
[0052] The reconstructed blocks filtered by the deblocking filter 182 and the SAO filter 184 are stored in the memory 190. Once all blocks in one picture are reconstructed, the reconstructed picture is used as a reference picture for inter prediction of blocks in the next picture to be encoded.
[0053] Figure 4 is an exemplary functional block diagram of a video decoding device capable of implementing the technology of the present disclosure. Figure 4 A video decoding apparatus and elements of the apparatus are described.
[0054] The video decoding apparatus may include a decoder 410 , an inverse quantizer 420 , an inverse transformer 430 , a predictor 440 , an adder 450 , a filter unit 460 , and a memory 470 .
[0055] Similar to Figure 1 Each element of the video encoding device and the video decoding device can be implemented as hardware or software, or can be implemented as a combination of hardware and software. In addition, the function of each element can be implemented as software, and the microprocessor can be implemented to execute the function of the software corresponding to each element.
[0056] The decoder 410 determines a current block to be decoded by decoding a bit stream received from a video encoding apparatus and extracting information about block partitioning, and extracts prediction information and information about a residual signal required to reconstruct the current block.
[0057] The decoder 410 extracts information about the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), determines the size of the CTU, and partitions the picture into CTUs of the determined size. Then, the decoder determines the CTU as the uppermost layer, that is, the root node of the tree structure, and extracts partition information related to the CTU to partition the CTU using the tree structure.
[0058] For example, when a CTU is segmented using a QTBTTT structure, a first flag (QT_split_flag) related to QT segmentation is first extracted, and each node is segmented into four nodes of a lower layer. Then, for a node corresponding to a leaf node of QT, a second flag (MTT_split_flag) related to MTT segmentation and information related to the segmentation direction (vertical / horizontal) and / or segmentation type (binary tree / ternary tree) are extracted, and the leaf node is segmented in an MTT structure. In this way, each node below the leaf node of QT is recursively segmented in a BT or TT structure.
[0059] As another example, when a CTU is segmented using a QTBTTT structure, a CU segmentation flag (split_cu_flag) indicating whether the CU is segmented is first extracted. If the corresponding block is segmented, the QT segmentation flag (split_qt_flag) is extracted. When the segmentation type is not QT but MTT, a flag (mtt_split_cu_vertical_flag) indicating the MTT segmentation direction (vertical or horizontal) and / or a flag (mtt_split_cu_binary_flag) indicating the MTT segmentation type (binary tree or ternary tree) are additionally extracted. During the segmentation process, each node may undergo zero or more recursive QT segmentations and then zero or more recursive MTTs. For example, a CTU may be segmented by MTT immediately, or may be segmented by QT only multiple times.
[0060] As another example, when a CTU is partitioned using a QTBT structure, the first flag (QT_split_flag) is related to QT partitioning, and each node is partitioned into four nodes of a lower layer. For a node corresponding to a leaf node of QT, the split_flag indicating whether the node is further partitioned by BT and the partition direction information are extracted.
[0061] When determining the current block to be decoded through tree structure partitioning, the decoder 410 extracts information about the prediction type indicating whether the current block is subjected to intra prediction or inter prediction. When the prediction type information indicates intra prediction, the decoder 410 extracts syntax elements for intra prediction information (intra prediction mode) for the current block. When the prediction type information indicates inter prediction, the decoder 410 extracts syntax elements of inter prediction information (i.e., information indicating a motion vector and a reference picture to which the motion vector refers).
[0062] The decoder 410 extracts information about the quantized transform coefficient of the current block as information about the residual signal.
[0063] The inverse quantizer 420 inversely quantizes the quantized transform coefficients and inversely transforms the inversely quantized transform coefficients from the frequency domain to the spatial domain, thereby reconstructing a residual signal to generate a residual block of the current block.
[0064] In addition, when the inverse transformer 430 inversely transforms only a partial area (sub-block) of the transform block, a flag (cu_sbt_flag) indicating that only the sub-block of the transform block has been transformed and direction information (vertical / horizontal) (cu_sbt_horizontal_flag) and / or sub-block position information (cu_sbt_pos_flag) related to the sub-block are extracted. Then, the residual signal is reconstructed by inversely transforming the transform coefficients of the sub-block from the frequency domain to the spatial domain. For the area that is not inversely transformed, the residual signal is filled with "0". Thus, the final residual block of the current block is created.
[0065] The predictor 440 may include an intra predictor 442 and an inter predictor 444. When the prediction type of the current block is intra prediction, the intra predictor 442 is activated, and when the prediction type of the current block is inter prediction, the inter predictor 444 is activated.
[0066] The intra predictor 442 determines an intra prediction mode of a current block among a plurality of intra prediction modes based on a syntax element for the intra prediction mode extracted from the decoder 410 , and predicts the current block based on reference pixels around the current block according to the intra prediction mode.
[0067] The inter predictor 444 determines a motion vector of a current block and a reference picture referred to by the motion vector based on a syntax element of the inter prediction mode extracted from the decoder 410 , and predicts the current block based on the motion vector and the reference picture.
[0068] The adder 450 reconstructs the current block by adding the residual block output from the inverse transformer to the prediction block output from the inter predictor or the intra predictor. Pixels in the reconstructed current block are used as reference pixels to perform intra prediction on a block to be decoded later.
[0069] The filter unit 460 may include a deblocking filter 462 and an SAO filter 464. The deblocking filter 462 performs deblocking filtering on the boundaries between the reconstructed blocks to remove block artifacts caused by block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed blocks after deblocking filtering to compensate for the difference between the reconstructed pixels and the original pixels caused by lossy encoding. The reconstructed blocks filtered by the deblocking filter 462 and the SAO filter 464 are stored in the memory 470. When reconstructing all blocks in a picture, the reconstructed picture is used as a reference picture to perform inter-frame prediction on the blocks in the picture to be encoded thereafter.
[0070] Figure 5is an exemplary block diagram of an inter-frame predictor 444 capable of implementing the techniques of the present disclosure, Figure 6 is a flowchart showing a method of predicting a current block by the inter-frame predictor 444, and Figure 7 4 is a diagram showing an example of the present disclosure in which the inter-frame predictor 444 predicts the current block. Figures 5 to 7 The technical features of the present disclosure are described in detail, which more accurately and efficiently achieve the prediction of the current block for a 360-degree image.
[0071] The inter-picture prediction encoding method (inter-frame prediction method) may include a skip mode, a merge mode, and an adaptive (or advanced) motion vector predictor (AMVP) mode. In the skip mode, only the motion information of one of the motion information candidates of the adjacent blocks is sent by signal. In the merge mode, the motion information of one of the motion information candidates of the adjacent blocks and the information obtained by encoding the residual after the prediction are sent by signal. In the AMVP mode, the motion information related to the current block and the information obtained by encoding the residual after the prediction are sent by signal.
[0072] The motion information in skip mode and merge mode may correspond to an index value indicating one of the candidates. In standard HEVC, the index value may be expressed by the merge_idx syntax. The motion information in AMVP mode may correspond to the difference (mv difference (MVD)) between the motion information about the adjacent block and the motion information about the current block. In standard HEVC, the value of MVD may be expressed by various syntaxes, as shown in Table 1 below.
[0073] [Table 1]
[0074]
[0075] In the above Table 1, [0] represents the horizontal axis component x, and [1] represents the vertical axis component y.
[0076] In skip mode and merge mode, the motion vector of the current block can be derived by the motion information about the neighboring block indicated by the signal value of merge_idx. In AMVP mode, the motion vector of the current block can be derived by summing the motion vector predictor (MVP) value obtained by the motion information about the neighboring block and the signal value of MVD.
[0077] In the conventional method, when part or the entire area of a reference block indicated by a motion vector of a current block (hereinafter referred to as an "external area") is located outside a reference picture, reference samples are obtained by filling the samples of the external area with samples that are closest to the external area among samples at the boundary or outermost area of the reference picture.
[0078] For example, in the conventional method, when the sum of the horizontal axis position (x coordinate) of the current block and the horizontal value (x coordinate) of the motion vector deviates from the reference picture, it is replaced with the value at the nearest end of the reference picture. This example is represented by the following equation 1.
[0079] [Formula 1]
[0080] xInt L =xPb+(mvLX[0]>2)+x L
[0081] xA i =Clip3(0,pic_width_in_luma_samples-1,xInt L +i)
[0082] In the above Equation 1, xPb represents the horizontal axis position (x coordinate) of the current block, and mvLX[0] represents the horizontal value (x coordinate) of the quarter-pixel motion vector. L Represents a range from 0 to (width-1), where "width" corresponds to the width of the current block. L represents the position of the integer pixel represented by the motion vector in the reference picture. i Represents the k-tap interpolation filter by dividing the relative positions of the adjacent integer pixels (i) required by xInt L The position of the final integer sample obtained by summing. That is, xA i represents the xInt required in the k-tap interpolation filter L The integer pixel positions around xInt are arranged along the horizontal axis. L , when the motion vector value mvLX[0] is one quarter (1 / 4) pixel, an operation corresponding to 4 times the motion vector value expressed in Formula 1 may be performed (mvLX[0]>>2). When mvLX[0] is 1 / 16 pixel, an operation corresponding to 16 times the motion vector value may be performed (mvLX[0]>>4).
[0083] As shown in formula 1, when xInt L When the position of +i is outside the reference image, use the crop function to move xA i The value of is replaced with the value of the left or right position in the reference image.
[0084] As another example, in the conventional method, when the sum of the position of the current block on the vertical axis (y coordinate) and the value of the motion vector along the vertical axis (y coordinate) deviates from the reference picture, it is replaced with the value of the nearest end in the reference picture. This example is represented by the following equation 2.
[0085] [Formula 2]
[0086] yInt L =yPb+(mvLX[1]>>2)+y L
[0087] y i =Clip3(0,pic_height_in_luma_samples-1,yInt L +i)
[0088] In the above equation 2, yPb represents the vertical axis position (y coordinate) of the current block, and mvLX[1] represents the vertical value (y coordinate) of the quarter-pixel motion vector. L Represents the range from 0 to (height-1), where "height" corresponds to the height of the current block. yInt L represents the position of the integer pixel indicated by the motion vector in the reference picture. i Represents the k-tap interpolation filter by dividing the relative positions of the adjacent integer pixels (i) required by yInt L The position of the final integer sample obtained by summing. That is, yInt L represents the yInt required in the k-tap interpolation filter L The integer pixel positions around it along the vertical axis. L , when the motion vector value mvLX[1] is one quarter (1 / 4) pixel, an operation corresponding to 4 times the motion vector value (mvLX[1]>>2) may be performed, as represented in Formula 2. When mvLX[1] is 1 / 16 pixel, an operation corresponding to 16 times the motion vector value (mvLX[1]>>4) may be performed.
[0089] As shown in Formula 2, when yInt L When the position of +i deviates from the reference image, use the cropping function to move yA i The value of is replaced with the value of the upper or lower position in the reference image.
[0090] Such a conventional method operating as described above requires additional storage resources to expand the area of the reference picture to the outer area, and approximate the samples of the outer area based on the outermost samples located in the reference picture. Therefore, it may reduce the accuracy of motion compensation.
[0091] Based on the 3D structure of the 360-degree image, the boundaries of the 360-degree image projected onto the 2D image may touch each other (be connected to each other). For example, in the 3D structure, the left and right sides of the 360-degree image projected onto the 2D image touch each other, the upper left side and the upper right side touch each other based on the center vertical line, and the lower left side and the lower right side touch each other based on the center vertical line. Based on this characteristic of the 360-degree image, the present disclosure proposes a more efficient inter-frame prediction method for an external area outside a reference picture.
[0092] The current picture and the reference picture mentioned in the present disclosure may be pictures obtained by transforming a 360-degree image of a 3D structure into various types of 2D formats such as equirectangular projection (ERP), cube map projection (CMP), and icosahedral projection (ISP). Hereinafter, the present disclosure will be described around the current picture and the reference picture obtained by transforming a 360-degree image of a 3D structure into a 2D format ERP.
[0093] The video encoding device searches for a first reference block, which is a reference block corresponding to the current block to be encoded. Here, the first reference block may be a block most similar to the current block. In addition, the video encoding device may obtain a reference sample from the first reference block to predict the current block. The reference sample of the external area of the first reference block located outside the reference picture may be obtained from a corresponding area corresponding to the external area. The corresponding area may be located in the reference picture. In addition, the video encoding device may predict the current block based on the obtained reference sample.
[0094] Each of the first reference block, the external area, and the corresponding area described in relation to the video encoding apparatus may have the same meaning as each of the first reference block 740, the external area 742, and the corresponding area 752 to be described below in relation to the video decoding apparatus. The operations described below, which are performed by the video decoding apparatus, may be similarly performed by the video encoding apparatus.
[0095] like Figure 5 As shown, the inter predictor 444 may include a motion deriver 510 , a sample fetcher 520 , a prediction performer 530 , a motion adjuster 540 , and a relationship indicator 550 .
[0096] First, regarding the current block 720 included in the current picture 710 to be decoded, the motion deriver 510 derives a motion vector of the current block 720 based on motion information transmitted from the video encoding device (decoded from a bitstream) (S610).
[0097] In the case of skip mode or merge mode, the motion deriver 510 may derive the motion vector of the current block 720 (given by Figure 7 In the case of the AMVP mode, the motion deriver 510 may derive a motion vector of the current block 720 by summing a motion vector predictor (MVP) obtained via motion information values of neighboring blocks and a motion vector difference (MVD) decoded by the decoder 410 (and transmitted from the video encoding device).
[0098] Once the motion vector is derived, the sample acquirer 520 acquires reference samples of the first reference block 740, which is a reference block derived using the derived motion vector (S640). Specifically, when the integer samples obtained by the position of the motion vector and the position / size of the current block 720 deviate from the reference picture, the sample acquirer 520 acquires the corresponding integer samples from the appropriate position in the reference picture (S640). Here, the first reference block 740 includes integer samples.
[0099] Regarding the position of the first reference block 740, only a portion of the first reference block 740 may be located outside the reference picture 730 ( Figure 7 , or the entire first reference block 740 may be located outside the reference picture 730 ( Figure 7 (B)).
[0100] like Figure 7 As shown in (b) and (c) of (A), when only a portion of the first reference block 740 is located outside the reference picture 730, the first reference block 740 may be composed of an external area 742 located outside the reference picture 730 and an internal area 744 located inside the reference picture 730. That is, the first reference block 740 may include samples located outside the reference picture 730 and samples located inside the reference picture 730.
[0101] In this case, considering that the right boundary of the reference picture 730 contacts the left boundary of the reference picture 730 in the 360-degree image, the sample acquirer 520 may be configured to acquire a reference sample corresponding to the external area 742 from another area within the reference picture 730. Specifically, the sample acquirer 520 may acquire a reference sample corresponding to the internal area 744 from the internal area 744, and acquire a reference sample corresponding to the external area 742 from the corresponding area 752 (which is an area corresponding to the external area 742 in the reference picture 730). Here, from the perspective of the 360-degree image, the correspondence relationship between the external area 742 and the corresponding area 752 may mean that the external area 742 and the corresponding area 752 are the same area.
[0102] The location of acquiring the reference sample based on the reference picture 730 can be described as follows: The reference sample corresponding to the inner area 744 can be acquired from the right of the reference picture 730 , and the reference sample corresponding to the outer area 742 can be acquired from the left of the reference picture 730 .
[0103] like Figure 7 As shown in (b) and (c) of (B), when the entire first reference block 740 is located outside the reference picture 730, the first reference block 740 may consist of only an external area 742 located outside the picture 730. That is, the first reference block 740 may consist of only samples located outside the reference picture 730.
[0104] In this case, the sample acquirer 520 may acquire a reference sample corresponding to the external area 742 from the corresponding area 752 within the reference picture 730. Here, from the perspective of the 360-degree image, the external area 742 and the corresponding area 752 are the same area.
[0105] When the present disclosure adopts a k-tap interpolation filter (where k is a natural number) for motion compensation, the corresponding area 752 and / or the internal area 744 for which reference samples are obtained may be obtained by Figure 8 The area represented by the solid line in is an area (indicated by the dotted line) formed by expanding k in the horizontal direction (k / 2 to the left and k / 2 to the right) and expanding k in the vertical direction (k / 2 upward and k / 2 downward).
[0106] When acquiring reference samples from the inner region 744, the sample acquirer 520 may Figure 8 The internal area 744 shown in FIG. 5 is expanded to the left, upward, and downward by k / 2 to obtain reference samples in the area formed. When obtaining reference samples from the corresponding area 752, the sample acquirer 520 can obtain reference samples by Figure 8 The corresponding area 752 shown in FIG. 7 is expanded rightward, upward, and downward by k / 2 to obtain reference samples.
[0107] Whether to expand the inner area 744 and the corresponding area 752 may be determined by the resolution of the motion vector. For example, when the decimal part of the motion vector is 0, the inner area 744 and the corresponding area 752 may not be expanded. When the decimal part of the motion vector is not 0, the inner area 744 and the corresponding area 752 may be expanded.
[0108] The following description of acquiring reference samples from the inner region 744 or the corresponding region 752 should be understood to include acquiring reference samples from the inner region 744 or the corresponding region 752 and acquiring reference samples from a region formed by extending the inner region 744 or the corresponding region 752 by k.
[0109] By shifting the first reference block 740 to the left or right by the ERP width or the width of the reference picture 730, and selecting an area (corresponding area) that belongs to the reference block 750 (hereinafter referred to as the "second reference block") at the shifted position and is located within the reference picture 730, the corresponding area 752 can be searched. This operation is represented by the following Equation 3.
[0110] [Formula 3]
[0111]
[0112] In the above Equation 3, xPb represents the horizontal axis position (x coordinate) of the current block 720, and mvLX[0] represents the horizontal value (x coordinate) of the sub-pixel motion vector. L Represents the range from 0 to (width-1), where 'width' corresponds to the width of the current block 720. xInt L represents the position of the integer pixel represented by the motion vector in the reference picture 730, and picWidth can have various meanings, such as the width of the reference picture 730, the width of the unfilled ERP, the width of the filled ERP, and the offset. i Represents the k-tap interpolation filter by dividing the relative positions of the adjacent integer pixels (i) required by xInt L The position of the final integer sample obtained by summing. That is, xA i represents the xInt required in the k-tap interpolation filter L The integer pixel positions around xInt are arranged along the horizontal axis. L , when the motion vector value mvLX[0] is one quarter (1 / 4) pixel, an operation corresponding to 4 times the motion vector value may be performed (mvLX[0]>>2). When mvLX[0] is 1 / 16 pixel, an operation corresponding to 16 times the motion vector value represented in Formula 3 may be performed (mvLX[0]>>4).
[0113] As shown in Equation 3, when the integer sample indicated by the motion vector is located outside the left side of the reference picture 730 (xInt L +i<0), the corresponding final integer sample xA can be selected by adding picWidth to the horizontal axis coordinate of the integer sample i When the integer sample indicated by the motion vector is located outside the right side of the reference picture 730 (xInt L +i>picWidth-1), the corresponding final integer sample xA can be selected by subtracting picWidth from the horizontal axis coordinate of the integer sample i .
[0114] Generally, picWidth may be equal to the width of the reference picture 730, the width of the reconstructed picture, or the width of the picture to be decoded. However, when encoding is performed by padding a specific area α to the width w of the original ERP picture, picWidth may be equal to the width w of the original ERP picture (unpadded reference picture), and the width of the picture to be encoded, the width of the reconstructed picture, and the width of the reference picture 730 may be equal to (w+α). Here, α represents the width of the padded area.
[0115] In this case, the corresponding area 752 can be searched by shifting the first reference block 740 to the left by w instead of the width (w+α) of the padded reference image 730 and selecting an area (corresponding area) belonging to the second reference block 750 at the shifted position and located within the reference image 730.
[0116] In short, when the original picture is not filled, the width used to search for the corresponding area 752 may be the width w of the original picture or the width of the reference picture 730. When the original picture is filled, the width used to search may be the width w of the original picture. Therefore, in the case of filling the original picture and in the case of not filling the original picture, the width used to search for the corresponding area 752 may be equal to the width w of the original picture.
[0117] picWidth may represent an offset. The offset is a value used to determine (calculate) the position of the corresponding area 752 and may be identified or indicated by information (offset information) signaled from the video encoding device. The offset may be equal to the width w of the original picture or the width of the reference picture 730.
[0118] The video decoding device can obtain the width w information or offset information related to the original picture from the bitstream, and derive or derive the width w or offset of the original picture based on the width w information or offset information related to the original picture. Thereafter, the device can shift the external area 742 (the reference sample in the external area) by the derived width w or offset of the original picture to identify the corresponding area 752 (the reference sample of the corresponding area).
[0119] Once reference samples of the first reference block 740 are acquired from the corresponding region 752 and / or the internal region 744 , the prediction executor 530 may predict the current block 720 (may generate a prediction block for the current block) based on the acquired reference samples ( S650 ).
[0120] As described above, the present disclosure is configured to acquire reference samples of the external area 742 from the same area (corresponding area) as the external area 742 rather than an area approximate to the external area 742, so the prediction accuracy of the current block 720 may be improved.
[0121] Fig. 9 7 is a diagram showing an embodiment of the present disclosure related to adjustment of a motion vector. Hereinafter, a description will be given of a technical feature of the present disclosure that enables more efficient search of a corresponding area 752 by adjusting a motion vector.
[0122] like Fig. 9 As shown in (A), when the motion vector of the current block 720 points to the outside of the right side of the reference picture 730, the entire area of the first reference block 740 derived using the motion vector is located outside the reference picture 730. That is, when the motion vector points to the outside of the right side of the reference picture 730, the first reference block 740 consists of only the outer area 742, and there is no inner area 744.
[0123] The inter-frame predictor 444 may be configured to further perform a process of adjusting the motion vector (MV wrapping) so that the motion vector points to an appropriate position within the reference picture 730 (S620). The MV wrapping process may be performed by the motion adjuster 540, which is an element included in the inter-frame predictor 444. In this case, the resolution of the reference picture 730 may be the same as the resolution of the reconstructed picture or the same as the resolution of the reconstructed picture including the specific padded area.
[0124] An example of the MV wrapping procedure is represented by Equation 4 below.
[0125] [Formula 4]
[0126]
[0127] In the above formula 4, xPb represents the horizontal axis position (x coordinate) of the current block 720, and mvLX[0] represents the horizontal value (x coordinate) of the sub-pixel motion vector. picWidth may have the same meaning as described in formula 3. Here, when the motion vector value mvLX[0] is a quarter (1 / 4) pixel, an operation corresponding to 4 times the motion vector value may be performed (mvLX[0]>>2). When mvLX[0] is 1 / 16 pixel, an operation corresponding to 16 times the motion vector value expressed in formula 4 may be performed (mvLX[0]>>4).
[0128] As shown in Formula 4, when the motion vector points to the left outside of the reference picture 730 (xPb+(mvLX[0]>>4<0), the x coordinate of the motion vector is shifted rightward by picWidth(picWidth+(mvLX[0]>>4)) to adjust the motion vector to point to the inside of the reference picture 730. When the motion vector points to the right outside of the reference picture 730 (xPb+(mvLX[0]>>4)>picWidth-1), the x coordinate of the motion vector is shifted by picWidth((mvLX[0]]>>4)-picWidth) to adjust the motion vector to point to the inside of the reference picture 730.
[0129] Hereinafter, in order to distinguish the motion vector used to derive the first reference block 740 from the motion vector adjusted by the MV wrapping process, the motion vector used to derive the first reference block 740 is referred to as a “first motion vector” (in Fig. 9 ), and the motion vector adjusted by the MV wrapping process is referred to as the “second motion vector” (indicated by a solid arrow in Fig. 9 Indicated by dot-dash arrows).
[0130] From the perspective of the 360-degree image, the external point pointed to by the first motion vector (a specific point of the first reference block) and the internal point pointed to by the second motion vector (a specific point of the second reference block) are the same point. In addition, from the perspective of the 360-degree image, the second reference block 750 pointed to by the second motion vector (derived using the second motion vector) is the same area as the first reference block 740.
[0131] like Fig. 9 As shown in (A), since the entire first reference block 740 is located outside the reference image 730 (the first reference block consists of only the external area), the entire second reference block 750 is located inside the reference image 730 (the second reference block consists of only the corresponding area).
[0132] The sample acquirer 520 acquires a reference sample corresponding to the first reference block 740 from the second reference block 750 (S640). In this way, the inter-frame predictor 444 can replace the external area 742 located outside the reference picture 730 with the corresponding area 752 corresponding to the same area as the external area 742 in the 360 structure through the MV wrapping process.
[0133] According to an embodiment, the video encoding device may directly encode the second motion vector and signal the second motion vector. However, due to the relationship between the values of the x-axis coordinates of the first motion vector and the second motion vector, a smaller number of bits are required to encode the first motion vector than the second motion vector. Therefore, in terms of the encoding efficiency of the motion vector, encoding the first motion vector may be more efficient.
[0134] Therefore, when the motion vector (first motion vector) encoded by the video encoding device points outside the reference image 730, the video decoding device can obtain the motion vector (second motion vector) pointing to the reference image 730 through the above-mentioned MV wrapping process, and also obtain the reference block pointed to by the second motion vector, that is, the second reference block 750.
[0135] like Fig. 9 As shown in (B), when the first motion vector points to the outside of the left side of the reference picture 730, all or part of the area of the first reference block 740 derived using the first motion vector is located outside the reference picture 730. That is, when the first motion vector points to the outside of the left side of the reference picture 730, the entire first reference block 740 may be composed of the outer area 742, or may be composed of the inner area 744 and the outer area 742, each having an area of a predetermined size.
[0136] The motion adjuster 540 may adjust the first motion vector to a second motion vector pointing to the reference picture 730 by performing the above-mentioned MV wrapping process ( S620 ).
[0137] From the perspective of the 360-degree image, the external point of the reference picture 730 pointed to by the first motion vector (a specific point of the first reference block) and the internal point of the reference picture 730 pointed to by the second motion vector (a specific point of the second reference block) are the same point. In addition, from the perspective of the 360-degree image, the second reference block 750 (which is a reference block derived using the second motion vector) corresponds to the same area as the first reference block 740, and the corresponding area 752 is located within the reference block 750.
[0138] When the first reference block 740 is composed of an outer region 742 and an inner region 744 each having a specific area ( Fig. 9 When (B)), the second reference block 750 is composed of a corresponding region 752 and a remaining region 754, each of which has a specific area. Hereinafter, the remaining region 754 constituting the second reference block 750 is referred to as a non-corresponding region 754.
[0139] In this state, the sample acquirer 520 acquires a reference sample corresponding to the external area 742 from the corresponding area 752 of the second reference block 750 (S640). In other words, the inter-frame predictor 444 can replace the external area 742 located outside the reference picture 730 with the corresponding area 752 corresponding to the same area as the external area 742 through the MV wrapping process.
[0140] Regarding the positions for obtaining reference samples, from the perspective of reference picture 730 , reference samples corresponding to inner area 744 may be obtained from the left of reference picture 730 , and reference samples corresponding to outer area 742 may be obtained from the left of reference picture 730 .
[0141] When encoding is performed by padding the specific area α to the width w of the original ERP picture, the width of the reference picture 730 is extended to (w+α) instead of the ERP width w, and thus the non-corresponding area 754 of the second reference block 750 may be located within the reference picture 730, rather than outside the reference picture. In this case, the sample acquirer 520 may acquire a reference sample corresponding to the outer area 742 of the first reference block 740 from the corresponding area 752 of the second reference block 750, and acquire a reference sample corresponding to the inner area 744 of the first reference block 740 from the non-corresponding area 754 located within the reference picture 730.
[0142] In this way, when the inter-frame predictor 444 is configured to further perform the MV wrapping process, the position of the corresponding area 752 can be indicated by a single process of motion vector adjustment, and thus the time required for inter-frame prediction and the efficiency related to memory resources can be further improved.
[0143] In the above-mentioned embodiment, it has been described that the MV wrapping process is performed only when the first motion vector points to the outside of the reference picture 730. However, according to an embodiment, the MV wrapping process may be performed even when the first motion vector points to the inside of the reference picture 730.
[0144] Figures 10 to 12 is a diagram illustrating various embodiments of the present disclosure, wherein reference samples are acquired based on a directional relationship between a first reference block 740 and a second reference block 750. Figures 10 to 12 The technical features of the present disclosure related to indicating a directional relationship between a first reference block 740 and a second reference block 750 and acquiring a reference sample based on the indicated directional relationship are described.
[0145] The reference samples (second reference samples) in the second reference block 750 corresponding to the reference samples (first reference samples) in the first reference block 740 may be arranged in a direction different from that of the first reference samples. The directional relationship between the first reference block 740 and the second reference block 750 refers to the direction in which the second reference samples are arranged compared to the arrangement of the first reference samples.
[0146] when Fig.10 When the 360-degree image of the 3D sphere shape shown in (a) is segmented, it can be transformed into a Fig.10(b) shows a reference picture 730 in a 2D ERP format. From the perspective of the 3D spherical shape, the upper sides of the reference picture 730 are in contact with each other, and therefore the solid line pixels 1 to 8 corresponding to the row y3 are the same pixels as the solid line pixels 5 to 4 corresponding to the row y2. In addition, the dotted line pixels 1 to 8 corresponding to the row y4 are the same pixels as the dotted line pixels 5 to 4 corresponding to the row y1. The lower side of the reference picture 730 also has the same features or characteristics.
[0147] In this state, the first reference block 740 is composed of row y1 of dotted line pixels 5 to 7, row y2 of solid line pixels 5 to 7, row y3 of solid line pixels 1 to 3, and row 4 of dotted line pixels 1 to 3, the dotted line pixels 5 to 7 in row y1 and the solid line pixels 5 to 7 in row y2 correspond to the external area 742, and the corresponding area 752 corresponding thereto can be composed of solid line pixels 5 to 7 in row y3 and dotted line pixels 5 to 7 in row 4.
[0148] In addition, the first reference block 740 including the external area 742 and the second reference block 750 including the corresponding area 752 face opposite directions with respect to the vertical direction of the reference picture 730. In other words, the arrangement direction of the reference samples included in the external area 742 is opposite to the arrangement direction of the reference samples included in the corresponding area 752 with respect to the vertical direction of the reference picture 730.
[0149] Therefore, when acquiring reference samples of the external area 742 located outside the top or bottom of the reference image 730, the reference samples must be acquired in a direction opposite to the direction of the first reference block 740 (the direction in which the reference samples included in the external area are arranged).
[0150] In view of this, the present disclosure may further include a relationship indicator 550 indicating a directional relationship between the first reference block 740 and the second reference block 750 , so as to acquire a reference sample from the corresponding area 752 according to the indicated directional relationship.
[0151] Fig.11 (A) shows a case where a portion (external area) of the first reference block 740 is located outside the upper end of the reference picture 730, and Fig.11 (B) shows a case where the entirety (external area) of the first reference block 740 is located outside the upper end of the reference picture 730 .
[0152] In both cases, the first motion vector may be adjusted to point outside the reference picture 730, and the relationship indicator 550 may indicate that the second reference block 750 derived using the adjusted motion vector (second motion vector) and the first reference block 740 have a relationship in the opposite direction.
[0153] The sample acquirer 520 may acquire a reference sample of the inner region 744 from the inner region 744 (S640). In addition, according to the directional relationship indicated by the relationship indicator 550, the sample acquirer 520 may acquire a reference sample from the corresponding region 752 in a direction opposite to the direction in which the reference samples of the outer region 742 are arranged with respect to the vertical direction of the reference picture 730 (S640).
[0154] In the above-mentioned embodiment where the MV wrapping process is not performed, the relationship indicator 550 can be configured to indicate a directional relationship between a first reference block 740 in the 360 structure and a second reference block 750 corresponding to the same area as the first reference block 740, and the sample acquirer 520 can be configured to acquire a reference sample corresponding to the external area 742 from the corresponding area 752.
[0155] Fig.12 (A) shows a case where a portion (external area) of the first reference block 740 is located outside the lower end of the reference picture 730, and Fig.12 (B) shows a case where the entirety (external area) of the first reference block 740 is located outside the lower end of the reference picture 730 .
[0156] In both cases, the first motion vector may be adjusted to point to the second reference block 750 , and the relationship indicator 550 may indicate that the second reference block 750 is opposite to the first reference block 740 in terms of the directional relationship.
[0157] The sample acquirer 520 may acquire a reference sample of the inner region 744 from the inner region 744 (S640). In addition, according to the directional relationship indicated by the relationship indicator 550, the sample acquirer 520 may acquire a reference sample from the corresponding region 752 in a direction opposite to the direction in which the reference samples of the outer region 742 are arranged with respect to the vertical direction of the reference picture 730.
[0158] In the above-mentioned embodiment where the MV wrapping process is not performed, the relationship indicator 550 can be configured to indicate the directional relationship between the first reference block 740 and the second reference block 750, and the sample acquirer 520 can be configured to acquire a reference sample corresponding to the external area 742 from the corresponding area 752.
[0159] Fig.13 is a diagram showing an embodiment in which the present disclosure is applied to a reference picture 730 having a different format.
[0160] As described above, the reference picture 730 may correspond to a picture obtained by converting a 360-degree image of a 3D structure into various types of 2D formats such as ERP, CMP, and ISP. Fig.13A picture obtained by converting a 360-degree image into a CMP format is shown in FIG.
[0161] The reference picture 730 in CMP format may be composed of six faces, namely, right face, front face, left face, bottom face, back face and top face. Fig.13 As shown, group 1 consisting of the right, front and left surfaces and group 2 consisting of the bottom, back and top surfaces are arranged in different directions, and the reference samples included in the respective surfaces are also arranged in different directions according to the above arrangement relationship.
[0162] First, the motion exporter 510 can derive the motion vector of the current block 720 (the first motion vector represented by the solid arrow) based on the motion information sent from the video encoding device, and the sample acquirer 520 can acquire the reference sample of the first reference block 740 from the first reference block 740 and / or the second reference block 750.
[0163] According to an embodiment, before acquiring the reference sample, the first motion vector may be adjusted to point to the second reference block 750 corresponding to the same area as the first reference block 740 based on the 360-degree image.
[0164] The sample acquirer 520 acquires a reference sample corresponding to the inner region 744 of the first reference block 740 from the inner region 744 , and acquires a reference sample corresponding to the outer region 742 from a corresponding region 752 included in the second reference block 750 .
[0165] According to an embodiment, when the relationship indicator 550 indicates the directional relationship between group 1 and group 2, the sample acquirer 520 may acquire reference samples corresponding to the external area 742 from the corresponding area 752 according to the indicated directional relationship. Here, the directional relationship may include the positional relationship and the rotational relationship between the respective surfaces.
[0166] exist Fig.13 , the pixels in the outer area 742 are arranged downward with respect to the vertical direction of the reference image 730. The solid line pixels and the dotted line pixels in the outer area 742 are arranged in the right direction with respect to the horizontal direction of the reference image 730. In contrast, the pixels of the corresponding area 752 are arranged in the right direction with respect to the horizontal direction of the reference image 730. The solid line pixels and the dotted line pixels of the corresponding area 752 are arranged downward with respect to the vertical direction of the reference image 730. In addition, the directional relationship between the pixels configured as described above may be reflected in or applied to the directional relationship between the outer area 742 and the corresponding area 752, and may also be reflected in or applied to the directional relationship between the first reference block 740 and the second reference block 750.
[0167] Therefore, as described above, the relationship indicator 550 can indicate the directional relationship between the external area (first reference block) and the corresponding area (second reference block), and the sample acquirer 520 can acquire pixels of the corresponding area 752 according to the indicated directional relationship.
[0168] In this way, the technical features of the present disclosure involving obtaining reference samples of the external area 742 from the corresponding area 752, adjusting the motion vector, and obtaining reference samples according to the directional relationship between the reference blocks 740 and 750 are not limited to a specific projection format, but can be applied to various projection formats. Therefore, in terms of applicability, the present disclosure can have sufficiently wide versatility.
[0169] Although it has been mentioned in all the embodiments of the present disclosure that one prediction block is generated according to unidirectional prediction, those skilled in the art to which the embodiments of the present disclosure pertain will appreciate that prediction may be performed in two directions to generate two prediction blocks.
[0170] The above description is only an example of the technical idea of the present disclosure, and a person of ordinary skill in the art to which the present disclosure belongs will understand that various modifications and changes can be made without departing from the essential features of the present disclosure. Therefore, the embodiments are not intended to limit the technical ideas of the exemplary embodiments, but are exemplary, and the scope of the technical ideas of the present disclosure is not limited by these embodiments. The scope of protection sought by the present disclosure should be interpreted by the attached claims, and all technical ideas within the scope equivalent to the claims should be interpreted as included within the scope of the present disclosure.
[0171] CROSS-REFERENCE TO RELATED APPLICATIONS
[0172] This application claims priority to Patent Application No. 10-2018-0066694 filed in Korea on June 11, 2018, Patent Application No. 10-2018-0142487 filed in Korea on November 19, 2018, and Patent Application No. 10-2019-0065415 filed in Korea on June 3, 2019, the entire contents of which are incorporated herein by reference.
Claims
1. A method for inter-frame prediction performed by a video decoding device, the method comprising the following steps: Decoding offset information and motion information from a bitstream; deriving a motion vector of a current block based on the motion information; Acquire a reference sample of a first reference block by using the motion vector, wherein a reference sample of an external area of the first reference block located outside a reference picture is acquired from a reference sample of a corresponding area in the reference picture corresponding to the external area; Predicting the current block based on the acquired reference sample to generate a prediction block for the current block; Obtaining a residual block for the current block; and reconstructing the current block based on the prediction block and the residual block, The reference sample of the corresponding area in the reference picture is determined by shifting the sample position in the external area toward the inside of the reference picture by an offset determined based on the offset information.
2. The method according to claim 1, further comprising the steps of: After deriving the motion vector, adjusting the motion vector to point to a second reference block corresponding to the first reference block, The corresponding area is an area included in the second reference block.
3. The method according to claim 2, wherein: When the motion vector points outside the reference picture, an adjustment of the motion vector is performed.
4. The method according to claim 1, further comprising the steps of: After deriving the motion vector, indicating a directional relationship between the first reference block and the second reference block, wherein the second reference block corresponds to the first reference block and includes the corresponding area, The step of obtaining the reference sample includes: A reference sample is acquired from the corresponding area according to the indicated directional relationship.
5. The method according to claim 4, wherein: For 360-degree images, the reference image is in equirectangular projection format. The step of indicating the direction relationship between the first reference block and the second reference block comprises: When the external area is located outside the upper end or the lower end of the reference picture, it indicates that the first reference block and the second reference block are opposite to each other in terms of a directional relationship with respect to the vertical direction of the reference picture, The step of obtaining the reference sample includes: The reference samples of the corresponding area are acquired in a direction opposite to a direction in which the reference samples of the external area are arranged with respect to the vertical direction of the reference picture.
6. The method according to claim 1, wherein: The corresponding area is an area obtained by shifting the outer area in the horizontal direction by the offset amount.
7. The method according to claim 6, wherein: When the external area is located outside the left side of the reference picture, the corresponding area is obtained by shifting the external area in a right direction by the offset amount, and When the external area is located outside the right side of the reference picture, the corresponding area is obtained by shifting the external area in a left direction by the offset.
8. A method for inter-frame prediction performed by a video encoding device, the method comprising the following steps: Export the motion vector of the current block; Acquire a reference sample of a first reference block by using the motion vector, wherein a reference sample of an external area of the first reference block located outside a reference picture is acquired from a reference sample of a corresponding area in the reference picture corresponding to the external area; generating a prediction block by predicting the current block based on the acquired reference sample; and encoding information about the motion vector into a bitstream, The reference sample of the corresponding area in the reference picture is determined by shifting the sample position in the external area toward the inside of the reference picture by an offset, The offset information is encoded into the bit stream to indicate the offset.
9. A method for transmitting a bitstream containing encoded video data, the method comprising the steps of: Generate the bitstream by encoding video data; as well as sending the bit stream to a video decoding device, The step of generating the bit stream comprises the following steps: Export the motion vector of the current block; Acquire reference samples of a first reference block, wherein reference samples of an external area of the first reference block located outside a reference picture are acquired from reference samples of a corresponding area in the reference picture corresponding to the external area; generating a prediction block by predicting the current block based on the acquired reference sample; and encoding information about the motion vector into the bitstream, The reference sample of the corresponding area in the reference picture is determined by shifting the sample position in the external area toward the inside of the reference picture by an offset, The offset information is encoded into the bit stream to indicate the offset.