Method for parallel video decoding
3 claims: 1 independent, 2 dependent
- 1非一時的なコンピュータ読み取り可能な記録媒体を備えた装置であって、 上記非一時的なコンピュータ読み取り可能な記録媒体には、1又は複数のプロセッサによって 実行 される場合に、当該1又は複数のプロセッサに、動画像フレームを表す符号化画像データにおける複数の再構成スライスを生成 する処理を行わせるための指示 が格納されており、 上記複数の再構成スライスのうち、ある再構成スライスは、複数のエントロピースライスを含んでおり、 上記複数のエントロピースライスは、複数のマクロブロックを含んでおり、 1つの再構成スライスに含まれるマクロブロックは、2つの異なるエントロピースライスに含まれることはなく、 第1の再構成スライスにおける第1のエントロピースライスは、当該第1の再構成スライスにおける残りのエントロピースライスとは独立にエントロピー符号化され、 上記第1のエントロピースライスは、上記動画像フレームの第1の部分を表しており、 上記第1の再構成スライスにおける第2のエントロピースライスは、上記動画像フレームの第2の部分を表しており、上記動画像フレームにおける上記第1の部分を用いて符号化され、 上記第1のエントロピースライスと、上記第2のエントロピースライスとは、それぞれヘッダを含んでおり、 上記第1のエントロピースライスのヘッダと、上記第2のエントロピースライスのヘッダとは、それぞれフラグを含んでおり、 上記ヘッダにおける上記フラグが第1の所定値である場合、上記それぞれのエントロピースライスは、上記第1の再構成スライスの上記第1のエントロピースライスであり、 上記ヘッダにおける上記フラグが第2の所定値である場合、上記それぞれのエントロピースライスは、上記第1の再構成スライスの上記第1のエントロピースライスではなく、 上記第2のエントロピースライスの上記ヘッダは、上記第1のエントロピースライスの上記ヘッダよりも小さく、 上記複数のエントロピースライスは、残差データを含んでいることを特徴とする装置。
- 2上記第1の所定値は、0であることを特徴とする請求項1に記載の装置。
- 3上記第2の所定値は、1であることを特徴とする請求項2に記載の装置。
Independent claims3
69 paragraphs, as filed
Embodiments of the present invention generally relate to moving image coding.
The latest video coding methods and standards, such as H.264 / MPEG-4 AVC (H.264 / AVC), have higher codes than traditional methods and standards at the cost of increased complexity. Provides efficiency. Increasing demands on image quality and resolution in moving image coding methods and standards are also factors that increase complexity. In a decoder that supports parallel decoding processing, the decoding speed is improved and the amount of memory required is reduced. In addition, advances in multi-core processors have made encoders and decoders that support parallel decoding processing desirable.
H.264 / MPEG-4 AVC (Non-Patent Document 1) is a specification for a video codec (the entire specification shall be incorporated in this specification), and in the specification, the specification shall be incorporated. Macroblock prediction, which reduces temporal and spatial redundancy, followed by residual coding is used in the sequence of moving images for efficient compression.
<p><nplcit num="1"><text>"H.264: Advanced video coding for generic audiovisual services," Joint Video Team of ITU-T VCEG and ISO / IEC MPEG, ITU-T Rec. H.264 and ISO / IEC 14496-10 (MPEG4-Part 10), November 2007</text></nplcit></p>
<p> However, in the H.264 / AVC decoder, the entropy decoding needs to be performed prior to all the processing in the decoder. Therefore, entropy decoding is a potential bottleneck in the decoding process.</p><p> The present invention has been made in view of the above problems, and a main object thereof is to solve the above problems.</p>
<p> Further, the device according to the present invention is a device including a non-temporary computer-readable recording medium, and the non-temporary computer-readable recording medium is executed by one or more processors. In this case, an instruction for causing the one or more processors to perform a process of generating a plurality of reconstructed slices in the encoded image data representing the moving image frame is stored, and among the above-mentioned plurality of reconstructed slices. , A reconstruction slice contains multiple entropy slices, the plurality of entropy slices contain multiple macroblocks, and the macroblocks contained in one reconstruction slice are divided into two different entropy slices. Not included, the first entropy slice in the first reconstituted slice is entropy-encoded independently of the remaining entropy slices in the first reconstructed slice, and the first entropy slice is described above. The first part of the moving image frame, the second entropy slice in the first reconstructed slice represents the second part of the moving image frame, and the first part in the moving image frame. The first entropy slice and the second entropy slice contain headers, respectively, and the header of the first entropy slice and the second entropy slice of the second entropy slice. Each header contains a flag, and when the flag in the header has a first predetermined value, each of the entropy slices is the first entropy slice of the first reconstructed slice. When the flag in the header is the second predetermined value, each of the entropy slices is not the first entropy slice of the first reconstituted slice, but the header of the second entropy slice is It is smaller than the header of the first entropy slice, and the plurality of entropy slices are characterized by containing residual data.</p><p> According to the above configuration, the above problems are solved.</p><p> The above-mentioned or other purposes, properties, and advantages of the present invention will be more easily understood by considering the following detailed description of the present invention in conjunction with the accompanying drawings.</p>
<p> In H.264 / AVC, entropy decoding is a potential bottleneck in the decoding process. The configuration in one embodiment of the present invention makes it possible to perform the entropy decoding processing required for reconstructing an image in parallel. Therefore, according to the method according to the present invention, the above problem can be solved.</p>
<figref num="1">It is a figure which shows the H.264 / AVC moving image encoder (the prior art).</figref><figref num="2">It is a figure which shows the H.264 / AVC moving image decoder (the prior art).</figref><figref num="3">It is a figure which shows the structure of an exemplary slice (the prior art).</figref><figref num="4">It is a figure which shows the structure (the prior art) of an exemplary slice group.</figref><figref num="5">Demonstrating an exemplary slice division according to an embodiment of the present invention, one picture is divided into at least one reconstructed slice, and one reconstructed slice is divided into more than one entropy slice. It is a figure which shows that it is done.</figref><figref num="6">It is a flowchart which shows the exemplary embodiment of this invention including the entropy slice.</figref><figref num="7">FIG. 5 is a flow chart illustrating an exemplary embodiment of the invention comprising parallel entropy decoding of a plurality of entropy slices following slice reconstruction.</figref><figref num="8">It is a flowchart which shows an exemplary embodiment of the present invention including multiplexing of prediction data / residual data at a picture level performed to construct an entropy slice.</figref><figref num="9">It is a flowchart which shows the exemplary embodiment of the present invention including the multiplexing of the color plane at the picture level performed for constructing an entropy slice.</figref><figref num="10">FIG. 5 is a flow chart illustrating an exemplary embodiment of the invention comprising entropy decoding, entropy slice formation, and transcoding of a bitstream performed by entropy coding.</figref>
Embodiments of the present invention will be best understood by reference to the drawings. In the drawings, the same parts will be numbered in the same way. Also, the above drawings are explicitly incorporated as part of the detailed description.
It will be readily appreciated that each element of the invention can be arranged and designed in a variety of configurations, as is generally described and described in the drawings herein. Therefore, the more detailed description of the methods, devices, and embodiments of the invention described below does not limit the scope of the invention, but merely refers to preferred embodiments at this stage. It's just an expression.
Each element in the embodiments of the present invention may be implemented by hardware, firmware, and / or software. The embodiments exemplifiedly disclosed herein describe only one of these embodiments, and those skilled in the art can use each element within the scope of the present invention to describe these embodiments. It shall be understood that it can be realized in any of the above.
Any coder / decoder (codec) that uses entropy encoding / decoding is included in embodiments of the present invention, while exemplary embodiments of the invention are H.264 / AVC. It will be explained in relation to the encoder of H.264 / AVC and the decoder of H.264 / AVC. This is for the purpose of explaining the present invention and does not limit the present invention.
The latest video coding methods and standards, such as H.264 / MPEG-4 AVC (H.264 / AVC), have higher codes than traditional methods and standards at the cost of increased complexity. Provides efficiency. Increasing demands on image quality and resolution in moving image coding methods and standards are also factors that increase complexity. In a decoder that supports parallel decoding processing, the decoding speed is improved and the amount of memory required is reduced. In addition, advances in multi-core processors have made encoders and decoders that support parallel decoding processing desirable.
H.264 / AVC, and many other video coding standards and methods, are based on a block-based hybrid video coding approach. In them, the source-coding algorithms are: (a) inter-image (also called inter-picture) prediction, (b) intra-image (intra-picture, intra-frame) prediction. It is a hybrid of (intra-frame) prediction and (c) prediction-residual transform coding. Interframe prediction utilizes temporal redundancy, and transform coding of intraframe and predicted residuals utilizes spatial redundancy.
FIG. 1 is a block diagram of an exemplary H.264 / AVC video encoder 2. An input picture (input picture) 4, which can be regarded as an input frame, exists as an object of coding. A predicted signal 6 and a residual signal 8 are generated. Here, the prediction signal 6 is an inter-frame prediction 10 or an intra-frame prediction. It is based on any of prediction) 12. The inter-frame prediction 10 includes (1) the accumulated reference image 16 (also referred to as a reference frame), and (2) the motion detection 18 between the input frame (input image) 4 and the reference frame (reference image) 16. It is determined by motion compensation (part) 14 using motion information 19 determined by processing. The in-frame prediction 12 is determined by the in-frame prediction (part) 20 using the decoded signal 22. The residual signal 8 is determined by subtracting the prediction (prediction image) 6 from the input frame 4. The residual signal 8 is transformed, scaled, and quantized 24, which produces a quantized conversion factor of 26. The decoding signal 22 is generated by adding the prediction signal 6 to the signal 28 generated by inversely transforming, scaling, and inversely quantizing the quantized conversion factor 26. The motion information 19 and the quantized conversion coefficient 26 are entropy-encoded 32 and written to the bitstream 34 of the compressed moving image. The output image area 38 (for example, a part of the reference frame) is generated by acting the filter 36 on the reconstructed unfiltered signal (decoded signal) 22 in the encoder 2.
FIG. 2 is a block diagram of an exemplary 264 / AVC video decoder 50. The input signal 52, which can be regarded as a bit stream, exists as a target for decoding. The received symbol is entropy-decoded 54, which produces (1) motion information 56 and (2) quantized and scaled conversion factor 58. The motion information 56 is combined with a part of the reference frame 84 in the frame memory 64 by the motion compensation 60 to generate an inter-frame prediction 68. The quantized and scaled conversion factor 58 is inversely quantized, (inversely) scaled, and inversely transformed 62, which produces a decoded residual signal 70. The residual signal 70 is added to the prediction signal 78. Here, the prediction signal 78 is either an inter-frame prediction signal 68 or an intra-frame prediction signal 76. The in-frame prediction signal 76 is predicted by the in-frame prediction 74 from the information 72 already decoded in the current frame. The added signal 72 is filtered by the deblocking filter 80, and the filtered signal 82 is written to the frame memory 64.
In H.264 / AVC, the input picture is divided into fixed size macroblocks, each macroblock having a rectangular shape with 16x16 samples for the luminance component and 8x8 samples for each of the two color difference components. Covers the image area of. Decryption processing in the H.264 / AVC standard is a specification that performs processing in units of macroblocks. The entropy decoder 54 parses the syntax elements of the compressed video bitstream 52 and demultiplexes them. H.264 / AVC is a specification that uses two different methods for entropy decoding. One is a less complex technique called CAVLC, which is based on the use of a set of variable-length codes that adaptively switch contexts, and the other is a context-based adaptive binary called CABAC. It is an algorithm that requires a larger amount of calculation to perform arithmetic coding. In both entropy decoding methods, the decoding process of the current symbol depends on the previously correctly decoded symbol and the adaptively updated context model. In addition, for example, predictive data information, residual data information, and different data information such as different color planes are multiplexed together. Demultiplexing does not end until each element is entropy decoded.
After entropy decoding, the macroblock obtains (1) a residual signal that has undergone inverse quantization and inverse transformation, and (2) a prediction signal that is either an intra-frame prediction signal or an inter-frame prediction signal. Reconstructed. Block distortion is reduced by applying a deblocking filter to each decoded macroblock. No processing is started until the input signal is entropy-decoded. Therefore, entropy decoding is a potential bottleneck in the decoding process.
Similarly, in codecs that allow different prediction mechanisms, such as inter-layer prediction in H.264 / AVC and inter-layer prediction in other scalable codecs, entropy decoding is used for all processing in the decoder. Must be done in advance. Therefore, entropy decoding is a potential bottleneck in the decoding process.
In H.264 / AVC, an input picture containing multiple macroblocks is divided into one or more slices. Assuming that the reference images used in the encoder and decoder are the same, the values of the sample in the area of the image shown by one slice are correctly decoded without using the data of the other slices. Therefore, the entropy decoding for one slice and the reconstruction of the macroblock do not depend on other slices. In particular, at the beginning of each slice, the state of entropy encoding is reset. Data from other slices is marked as unavailable when defining neighborhood availability for both entropy decoding and reconstruction. In H.264 / AVC, slices are entropy-decoded and reconstructed in parallel. Intra (in-screen) prediction and motion vector prediction across slice boundaries are prohibited. The deblocking filter can use information across slice boundaries.
FIG. 3 shows an exemplary video image (video picture) 90. Video image 90 contains 11 horizontal macroblocks and 9 vertical macroblocks (9 exemplary macroblocks numbered 91-99). Figure 3 shows three exemplary slices: the first slice, labeled "Slice # 0" 100, the second slice, labeled "Slice # 1" 101, and "Slice #". A third slice, labeled 2 "102, is shown. The H.264 / AVC decoder can decode and reconstruct three slices 100, 101, 102 in parallel. At the beginning of the decryption / reconstruction process for each slice, the context model is initialized or reset, and macroblocks in the other slices are marked as unavailable for both entropy decoding and macroblock reconstruction. Will be done. Therefore, for a macroblock in "slice # 1", eg, a macroblock numbered 93, a macroblock in "slice # 0" (eg, a macro numbered 91 and 92). Blocks) are not used for context model selection and reconstruction. On the other hand, the macroblock in "slice # 1", for example, the macroblock numbered 95, is numbered with other macroblocks in "slice # 1" (eg, 93 and 94). Macroblocks) are used for context model selection and reconstruction. Therefore, entropy decoding and macroblock reconstruction need to be performed serially within the slice. Unless the slice is defined using flexible macroblock ordering (FMO), the macroblocks in the slice are processed in raster scan order.
Flexible macroblock ordering defines a slice group that changes the way a picture is divided into slices. Macroblocks within a slice group are defined by a macroblock-to-slice-group map. Here, the map from the macroblock to the slice group is indicated by the content of the picture parameter set and additional information in the slice header. The macroblock-to-slicegroup map is a slice-group identification for each macroblock in the picture. It is composed of number). The slice group identification number identifies which slice each macroblock belongs to. Each slice group can be divided into one or more slices. Here, a slice consists of a series of macroblocks in the same slice group that are processed in raster scan order in a set of macroblocks in a slice group. Entropy decoding and macroblock reconstruction need to be performed sequentially within the slice.
Figure 4 shows three slice groups: the first slice group labeled "Slice Group # 0" 103, the second slice group labeled "Slice Group # 1" 104, and "Slice Group # 2" 105. It shows the placement of an exemplary macroblock in a third slice group, shown as. These slice groups 103, 104, and 105 are associated with two foreground regions and one background region in picture 90, respectively.
Some embodiments of the present invention include dividing the picture into one or more reconstruction slices. Here, assuming that the reference images used in the encoder and the decoder are the same, the reconstructed slice is data from another reconstructed slice in which the sample values in the region represented by the reconstructed slice on the picture are the same. It is self-contained in that it is correctly reconstructed without the use of. All reconstructed macroblocks in the reconstructed slice are available in the definition of the neighborhood for reconstruction.
Some embodiments of the invention entropy more than one reconstituted slice. Slice (entropy Includes dividing into slices). Here, the entropy slice is self-contained in that the value of the symbol in the region represented by the entropy slice on the picture is correctly entropy-decoded without using data from other entropy slices. In some embodiments of the invention, the state of entropy encoding is reset at the start of decoding of each entropy slice. In some embodiments of the invention, data from other entropy slices is marked as unavailable when defining neighborhood availability for entropy decoding. In some embodiments of the invention, macroblocks in other entropy slices are not used in the selection of the context model of the current block. In some embodiments of the invention, the context model is updated only within the entropy slice. In these embodiments of the invention, each entropy decoder used in a single entropy slice holds its own set of context models.
Some embodiments of the present invention include CABAC coding / decoding. The CABAC coding process includes the following steps.
Binarization: Non-binary-valued symbols (for example, conversion coefficients, motion vectors, or other coded data) are binary codes, also known as bin strings. Converted to (binary code).
Context model selection follows the binarization of each bin of the binarized symbol, which can be thought of as a bit.
Context model selection: The context model is a probabilistic model for bins of one or more binarized symbols. For each bin, the context model includes the probability that the bin is either "1" or "0". Model selection depends on the statistics of the most recently encoded data symbols, and usually for multiple model choices available, based on the left and top neighbor symbols, if available. Is done.
Binary Arithmetic Coding: The arithmetic coder encodes each bin based on a recursive interval subdivision according to the chosen probabilistic model.
Probability Update: The selected context model is updated based on the actual coded value.
In some embodiments of the invention, including CABAC coding / decoding, at the start of decoding the entropy slice, all context models are initialized or reset to a given model.
Some embodiments of the present invention are understood in relation to FIG. Figure 5 shows an exemplary video frame (video) frame, moving image frame) 110 is shown. Video frame 110 contains 11 horizontal macroblocks and 9 vertical macroblocks (9 exemplary macroblocks numbered 115-123). Figure 5 shows three exemplary reconstituted slices: the first reconstituted slice, labeled "R_slice # 0" 111, and the second, labeled "R_slice # 1" 112. And a third reconstituted slice, labeled "R_Slice # 2" 113, are shown. In FIG. 5, the first of the second reconstructed slice "R_slice # 1" 112, represented by three entropy slices: crosshatch and shown as "E_slice # 0". Entropy slice 112-1, the second entropy slice 112-2, represented by a vertical hatch and labeled "E_slice # 1", and "E_slice # 2", represented by a diagonal hatch. The division into the third entropy slice 112-3, shown as "" is shown. Each entropy slice 112-1, 112-2, 112-3 is entropy-decoded in parallel. Here, the first entropy slice shown as "E_slice # 0" and the second entropy slice shown as "E_slice # 1" are the first part of the bitstream and Also called the second part.
In some embodiments of the invention, only data from macroblocks within the entropy slice is available for selection of the context model while performing the entropy decoding of the entropy slice. All other macroblocks are marked as unavailable. In this exemplary split, the 117 and 118 numbered macroblocks are not available for context model selection when decoding the symbols corresponding to the 119 numbered macroblock area. is there. This is because the macroblocks numbered 117 and 118 are located outside the entropy slice containing macroblock 119. However, these macroblocks 117, 118 are available when macroblock 119 is reconstructed.
In some embodiments of the invention, the encoder determines whether to divide the reconstituted slice into entropy slices and includes that decision as a signal in the bitstream. In some embodiments of the invention, the signal comprises an entropy-slice frag (the entropy slice flag in the first entropy slice is also referred to as the first flag). In some embodiments of the invention, the entropy slice flag is represented as "entropy_slice_frag".
Some embodiments of the decoder of the present invention are described in relation to FIG. In these embodiments, the entropy slice flag is analyzed (S130) and if the entropy slice flag indicates that there is no entropy slice associated with the picture or reconstructed slice (S130). NO in step S130), the header is parsed as a regular slice header (S134). The state of the entropy decoder is reset (S136) and neighborhood information for entropy decoding and reconstruction is defined (S138). Then, the slice data is entropy-decoded (S140) and the slice is reconstructed (S142). If the entropy slice flag indicates that an entropy slice associated with the picture exists (YES in step S130), then the header is an entropy-slice header. Parsed as header) (S148). The state of the entropy decoder is reset (S150), the neighborhood information for entropy decoding is defined (S152), and the data of the entropy slice is entropy decoded (S154). Then, the neighborhood information for reconstruction is defined (S156), and the slice is reconstructed (S142). After the slice reconstruction in step S142, the next slice or picture is analyzed.
Embodiments of some other decoders of the invention are described in relation to FIG. In these embodiments, the decoder is capable of performing parallel decoding and has its own degree of parallelism. parallelism) is defined. For example, consider a decoder that can decode N entropy slices in parallel. The decoder identifies N entropy slices (S170). In some embodiments of the invention, when less than N entropy slices are available in the current picture or reconstructed slice, the decoder provides the next picture or reconstructed slice as available. , Decrypt the entropy slices from them. In another embodiment, the decoder waits for the current picture or reconstructed slice to be completely processed before decoding a portion of the next picture or reconstructed slice. After identifying up to N entropy slices in step S170, each of the identified entropy slices is independently entropy-decoded. The first entropy slice is decoded (S172-S176). Decoding the first entropy slice involves resetting the state of the decoder (S172). In some embodiments, including CABAC entropy decoding, the CABAC state is reset. Neighborhood information for entropy decoding of the first entropy slice is defined (S174), and the data of the first entropy slice is decoded (S176). These steps are performed for each of up to N entropy slices (S178-S182 for the Nth entropy slice). In some embodiments of the invention, the decoder reconstructs the entropy slices when all the entropy slices have been entropy-decoded (S184). In another embodiment of the invention, the decoder initiates the reconstruction of step S184 after one or more entropy slices have been decoded.
In some embodiments of the invention, when there are more than N entropy slices, the decode thread initiates entropy decoding of the next entropy slice as soon as the entropy decoding of the entropy slice is complete. To do. Therefore, when a thread completes the entropy decoding of a less complex entropy slice, the thread begins decoding further entropy slices without waiting for another thread to complete the decoding.
In some embodiments of the invention, including existing standards or methods, entropy slices share many of the slice attributes of regular slices according to such standards or methods. ing. Therefore, entropy slices require a small header. In some embodiments of the invention, the entropy slice header allows the decoder to identify the beginning of the entropy slice and initiate entropy decoding. In some embodiments, at the beginning of a picture or reconstruction slice, the entropy slice header is a regular header or a reconstruction slice header.
In some embodiments of the invention, including the H.264 / AVC codec, the entropy slice is signaled by adding a new bit "entropy_slice_flag" to the existing slice header. Table 1 shows a list of entropy slice header syntax according to embodiments of the present invention. In Table 1, C indicates the Category, and Descriptor u (1) and ue (v) indicate the method of decoding fixed length or variable length. Shown.
"First_mb_in_slice" identifies the address of the first macroblock in the entropy slice associated with the entropy slice header. In some embodiments, the entropy slice comprises a series of macroblocks.
"Cabac_init_idc" specifies an index for determining the initialization table used for the initialization process of the context mode.
<tables num="1"><img file="JP6556818B2_D0001.tif" /></tables>
Table 1: Entropy slice header syntax table In some embodiments of the present invention, the entropy decoding of an entropy slice involves initializing multiple context models and performing the entropy decoding of the entropy slice. Includes updating the plurality of context models while in the meantime.
In some embodiments of the invention, the entropy slice is assigned a network abstraction layer (NAL) unit type that is different from the standard slice. In these embodiments, the decoder can distinguish between standard slices and entropy slices based on the NAL unit type. In these embodiments, the bit field "entropy_slice_flag" is not required.
In some embodiments of the invention, the entropy slice is constructed by modifying the data multiplexing. In some embodiments of the invention, the set of symbols contained in the entropy slice is multiplexed at the macroblock level. In another embodiment of the invention, the set of symbols contained in the entropy slice is multiplexed at the picture level. In another embodiment of the invention, the set of symbols contained in the entropy slice is multiplexed by data type. In yet another embodiment of the invention, the set of symbols contained in the entropy slice is multiplexed by a combination of those described above.
Some embodiments of the method according to the invention include (1) encoding a video frame in a video sequence, (2) thereby producing a reconstructed slice, and (3) the reconstitution. Includes dividing the constituent slice into multiple entropy slices. Here, (1) encoding a video frame in a video sequence includes dividing the frame in the video sequence into at least one reconstructed slice.
Several embodiments of the invention, including constructing entropy slices based on picture-level multiplexing, are understood in relation to FIGS. 8 and 9. In some embodiments of the invention shown in FIG. 8, the prediction data 190 and the residual data 192 are the prediction encoder 194 and the remainder. Individually entropy-encoded by the residual encoder 196 and picture-level multiplexer (picture-level) Multiplexed at the picture level by multiplexer) 198. In some embodiments of the invention, the predictive data 190 for the picture is associated with the first entropy slice and the residual data 192 for the picture is associated with the second entropy slice. .. The coded prediction data and the coded entropy data are decoded in parallel. In some embodiments of the invention, each partition containing predictive or residual data is divided into a plurality of entropy slices that are decoded in parallel.
In some embodiments of the invention shown in FIG. 9, the residuals in each color plane, such as the luminance (luma (Y)) residual 200, and the two color differences (chroma (U and V)). ) Residuals 202, 204 are individually entropy-encoded by the Y encoder 206, U encoder 208, and V encoder 210 and multiplexed at the picture level by the picture level multiplexer 212. In some embodiments of the invention, the brightness residuals for picture 200 are associated with a first entropy slice and the first color difference (U) residuals for picture 202 are second. Associated with the entropy slice, the second color difference (V) residual for picture 204 is associated with the third entropy slice. The coded residual data for the three color planes is decoded in parallel. In some embodiments of the invention, each partition containing color plane residual data is divided into a plurality of entropy slices that are decoded in parallel. In some embodiments of the invention, the luminance residual 200 has a relatively large number of entropy slices as compared to the color difference residuals 202, 204.
In some embodiments of the invention, the compressed-video bitstream is transcoded to include entropy slices, thereby the embodiment of the invention described above. Parallel entropy decoding included in the form is performed. Some embodiments of the present invention are described in relation to FIG. The input bitstream without the entropy slice is processed picture by picture according to FIG. In these embodiments of the invention, the picture from the input bitstream is entropy decoded (S220). Encoded data, such as mode data, motion information, residual information, and other data are acquired. Entropy slices are constructed one by one from the data (S222). The entropy slice header corresponding to the entropy slice is written to the new bitstream (S224). The encoder state is reset and the neighborhood information is defined (S226). The entropy slice is entropy encoded (S228) and written to the new bitstream. If there is picture data that has not been consumed in the configured entropy slices (NO in step S230), the other entropy slices are configured in step S222 and all the picture data in the configured entropy slices. The processing of S224 to S230 is continued until is captured (YES in step S230), and then the next picture is processed.
[Additional Notes] In some embodiments of the present invention, the moving image bitstream is entropy-encoded in parallel by dividing the slice data into a plurality of entropy slices that are independently entropy-encoded and decoded. And methods, devices, and systems for decryption.
According to one aspect of the application, a method for decoding a moving image bitstream is provided. The method is the first part of the moving image bit stream, the first entropy decoding which produces the first part of the decoded data by entropy decoding the first part associated with the moving image frame. Decoding by entropy decoding the second part of the moving image bit stream, which is the second part associated with the moving image frame, independently of the step and the entropy decoding of the first part. The above-mentioned associated with the moving image bit stream using the second entropy decoding step of generating the second part of the data, the first part in the decoded data, and the second part in the decoded data. It includes a reconstruction step of reconstructing the first part of the moving image frame.
According to another aspect of the present application, a method of decoding a moving image frame in a moving image sequence is provided. The method comprises a receiving step of receiving a bitstream, a reconstructed slice identification step of identifying a reconstructed slice in the bitstream, and an entropy of identifying a plurality of entropy slices associated with the reconstructed slice in the bitstream. A slice identification step, an entropy decoding step of generating a plurality of entropy-decoded entropy slices by entropy-decoding each of the plurality of entropy slices associated with the reconstructed slice, and the plurality of entropy-decoded entropy slices. Includes a reconstruction step of reconstructing a portion of the moving image frame associated with the reconstruction slice.
According to another aspect of the present application, a method of encoding a moving image frame in a moving image sequence is provided. The method includes a reconstruction slice generation step of generating a first reconstruction slice by dividing the first frame in the moving image sequence into at least one reconstruction slice, and a plurality of the first reconstruction slices. It includes a dividing step of dividing into entropy slices of.
According to another aspect of the application, a method of generating a video bitstream for parallel decoding is disclosed. The method comprises a receiving step of receiving the first moving image bit stream, an identification step of identifying the reconstructed slice in the moving image bit stream, and entropy decoding of a plurality of symbols from the reconstructed slice. The entropy decoding step of generating the entropy-decoded data associated with the reconstructed slice, and the division of the entropy-decoded data associated with the reconstructed slice into a plurality of entropy slices associated with the reconstructed slice. A step, an entropy coding step of generating a plurality of entropy-encoded entropy slices by individually entropy-coding the entropy-decoded data for each of the plurality of entropy slices, and the above-mentioned plurality of entropy-encoded It includes a bit stream generation step of generating a second moving image bit stream including an entropy slice.
In some embodiments of the invention, the first and second parts of the input compressed-video bitstream are individually entropy-decoded. The block consisting of a sample of the moving image frame associated with the second part of the input compressed moving image bitstream is reconstructed using the decoded data from the first part and the second part. Therefore, the definition of the neighborhood at the time of reconstruction and the definition of the neighborhood at the time of entropy decoding are not the same.
In some embodiments of the invention, the encoder divides the input data into multiple entropy slices. The encoder individually entropy encodes the plurality of entropy slices. The encoder generates (forms) a bitstream containing multiple entropy slice headers. Here, each of the plurality of entropy slice headers indicates the position of the data relating to the entropy slice in the bit stream. In some embodiments of the invention, the decoder parses the received bitstream, which is the bitstream for the entropy slice header, and the decoder is of the parallelism defined by the decoder. Entropy decode multiple entropy slices according to the level.
In some embodiments of the invention, the data is multiplexed at the picture level to generate (form) entropy slices. In some embodiments, one or more entropy slices correspond to predictive data and one or more entropy slices correspond to residual data. In other embodiments of the invention, one or more entropy slices correspond to each of the plurality of color-planes.
In some embodiments of the invention, the bitstream is transcoded to include entropy slices. In these embodiments, the received bitstream was entropy-decoded to form multiple entropy slices, each of which was individually encoded and transcoded with the corresponding entropy slice header. Written to bitstream.
In H.264 / AVC, entropy decoding is a potential bottleneck in the decoding process. The configuration in one embodiment of the present invention makes it possible to perform the entropy decoding processing required for reconstructing an image in parallel. Therefore, according to the method, apparatus, and system according to the present invention, the above problem can be solved.
The decoding method according to the present invention is a decoding method for decoding a moving image bit stream, in which an entropy decoding step of generating decoded data by entropy decoding the moving image bit stream and a syntactic analysis of the decoded data are performed. A syntax analysis step of discriminating between the first decoded data associated with the first part of the moving image bit stream and the second decoded data associated with the second part, and the first decoding described above. The first reconstruction step of reconstructing the first region related to the image in the moving image using the data, and the second reconstruction step relating to the image in the moving image using the second decoded data. A second reconstruction step of reconstructing the region is included, and the second reconstruction step further uses the first region reconstructed in the first reconstruction step to obtain the above. It may reconstruct the second region.
Further, in the coding method according to the present invention, in the coding method for encoding a moving image into a bit stream, the first coding data representing the first region related to the image in the moving image is obtained. The first configuration step to be configured based on the region of, and the second encoded data representing the second region related to the image of the moving image are based on the second region and the first region. A second configuration step to be configured, a syntax addition step of adding a syntactic expression that makes it possible to distinguish the first coded data from the second coded data, and a first coding through the syntax addition step. It may include an entropy coding step of generating the moving image bit stream by entropy coding the data and the second coded data.
The above decoding method can also be expressed as follows. In order to solve the above problems, the decoding method according to the present invention is a decoding method for decoding a moving image frame in a moving image sequence, which is a) a step of receiving a bit stream and b) a re-decoding method in the above bit stream. The steps of identifying the constituent slices, c) analyzing the flags of the slice headers in the bit stream, and d) the first and second segmented slices shown in the segmentation of one region in the reconstructed slice. The step of identifying the divided slices, e) the step of entropy-decoding the first divided slice to generate the first decoded data, and f) the step of entropy-decoding the second divided slice and the second. The step of generating the decrypted data of 2 and g) the step of reconstructing the reconstructed slice are included, and the step of reconstructing the reconstructed slice is i) using the first decoded data as described above. The step of reconstructing the first part in the moving image frame associated with the first divided slice and ii) the second divided slice using the second decoded data and the first part. Includes a step of reconstructing the second part of the moving image frame associated with, and if the flag is 1, the slice header is the header of the divided slice, and if the flag is 0. The slice header is a standard slice header, the divided slice header shares the slice characteristics of the standard slice header, and the size of the divided slice header is the standard slice. It is characterized by being smaller than the size of the header of.
The decoding method according to the present invention is a method for decoding an image of a moving image sequence using a decoding device, and identifies a step of receiving a bit stream and a reconstructed slice indicating a region of the image in the bit stream. Based on the step, the step of analyzing the flag of the header of the two divided slices in the bit stream, and the flag in the header, the above two as the first divided slice of the reconstructed slice. The steps to identify one of the divided slices and identify the other of the two divided slices as the second divided slice of the reconstructed slice and to generate the first decoded data. A step of entropy decoding the first divided slice and a step of entropy decoding the second divided slice to generate the second decoded data of the first divided slice. The entropy decoding does not depend on any of the other divided slices in the reconstructed slice, and the method further comprises the region of the image shown by the reconstructed slice with the first decoded data and the above. It may include a step of reconstructing using the second decoded data.
Further, the coding method according to the present invention is a method for coding an image of a moving image sequence using a coding device, and is a first divided slice for generating a first entropy coding data. The first reconstructed slice showing the region of the image comprises the step of entropy encoding the image and the step of entropy encoding the second divided slice to generate the second entropy encoded data. The method comprises encoding the first divided slice header for the first divided slice, and the method comprises encoding the first divided slice of the above and the second divided slice of the above. Both the first split slice header and the second split slice header include the step of encoding the second split slice header for the second split slice. , Contains a flag indicating whether the corresponding split slice is the first split slice or the first split slice, and the second split slice header. Shares the slice characteristics of the first divided slice header, and further, the method uses the first divided slice, the second divided slice, and the first divided slice. It may include a step of transmitting a bit stream containing the reconstructed slice containing the slice header and the second divided slice header.
Further, the device according to the present invention is a device that is accessible by a decoding device and includes a recording medium for recording data readable by a computer in a non-temporary manner, and is a computer-readable recording. The medium contains bitstream data containing data indicating a reconstructed slice indicating a region in the image, the reconstructed slice containing a first divided slice and a second divided slice. The first divided slice contains the first divided slice header, and the second divided slice contains the second divided slice header. In each of the split slice headers and the second split slice header, the corresponding split slice is either the first split slice or the second split slice. It may include a flag indicating the presence or absence.
Further, the device according to the present invention is a device including a non-temporary computer-readable recording medium, and the non-temporary computer-readable recording medium is executed by one or more processors. In the case, the instruction for causing the one or more processors to perform the process of generating a plurality of reconstructed slices in the encoded image data representing the moving image frame is stored, and each reconstructed slice is a plurality of. Each entropy slice has multiple macroblocks, and the macroblocks contained in one reconstructed slice are not contained in two different entropy slices. The first entropy slice in one reconstructed slice is entropy-encoded independently of the remaining entropy slices in the first reconstructed slice, and the first entropy slice is the first of the moving image frames. The second entropy slice in the first reconstructed slice represents a portion, the second entropy slice in the first reconstructed slice represents the second portion of the moving image frame, and is encoded using the first portion in the moving image frame. Each entropy slice has its own header, each header has its own flag, and if the flag in the header is 0, then the entropy slice is the reconstructed slice. When it is the first entropy slice and the flag in the header is 1, the entropy slice is not the first entropy slice of the reconstructed slice, but the header of the second entropy slice is It may be smaller than the header of the first entropy slice.
The terms and expressions used in the above specification are used only for explanation purposes and not for limitation purposes. Moreover, those terms and expressions are not used to exclude the equivalence of the above-mentioned characteristics or a part thereof. The scope of the present invention is defined by the claims and is limited only by the claims.
In general, the present invention can be suitably applied to video coding and video decoding.
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both waysCites: the store holds 4 of 5
| Document | Relation | Office |
|---|---|---|
| JP2006246524A | Cites | Japan |
| JP2007201938A | Cites | Japan |
| JP2008011204A | Cites | Japan |
| WO2006048807A1 | Cites | World Intellectual Property Organization (WIPO) |
| Kiran Misra, et al.,Entropy Slices for Parallel Entropy Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 2nd Meeting: Geneva, CH, 21-28 July, 2010,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/20_Geneva/wg11/JCTVC-B111.zip,2010年 7月28日,JCTVC-B111,pp. 1-6 | Non-patent | – |
96 members in 17 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 12058301 | United States of America | – | |
| 5830108 | United States of America | A | |
| 5830108 | United States of America | A | |
| 12058301 | – | – | – |
| US20080058301 | – | – | – |
Members96
| Document | Office | Kind | |
|---|---|---|---|
| US2009245349A1 | United States of America | A1 | |
| WO2009119888A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US2010027680A1 | United States of America | A1 | |
| EP2266319A1 | European Patent Office (EPO) | A1 | |
| US2011026604A1 | United States of America | A1 | |
| CN101981934A | China | A | |
| EP2266319A4 | European Patent Office (EPO) | A4 | |
| WO2011046231A1 | World Intellectual Property Organization (WIPO) | A1 | |
| JP2011515880A | Japan | A | |
| RU2010142914A | Russian Federation | A | |
| CN102577381A | China | A | |
| US2012201294A1 | United States of America | A1 | |
| EP2489191A1 | European Patent Office (EPO) | A1 | |
| JP5075988B2 | Japan | B2 | |
| JP2012257316A | Japan | A | |
| JP2013509006A | Japan | A | |
| US8542748B2 | United States of America | B2 | |
| RU2514091C2 | Russian Federation | C2 | |
| JP5529937B2 | Japan | B2 | |
| JP2014150576A | Japan | A | |
| US2014241438A1 | United States of America | A1 | |
| US8824541B2 | United States of America | B2 | |
| CN101981934B | China | B | |
| CN104270645A | China | A | |
| RU2014105187A | Russian Federation | A | |
| JP5786061B2 | Japan | B2 | |
| BRPI0911141A2 | Brazil | A2 | |
| JP2015195609A | Japan | A | |
| HK1206179A | Hong Kong, China | A | |
| HK1206179A1 | Hong Kong, China | A1 | |
| JP2016001895A | Japan | A | |
| US2016165250A1 | United States of America | A1 | |
| US9473772B2 | United States of America | B2 | |
| EP3086557A1 | European Patent Office (EPO) | A1 | |
| US9503745B2 | United States of America | B2 | |
| US2016373773A1 | United States of America | A1 | |
| US2016373774A1 | United States of America | A1 | |
| JP6055043B2 | Japan | B2 | |
| JP6068575B2 | Japan | B2 | |
| JP2017079482A | Japan | A | |
| US9681143B2 | United States of America | B2 | |
| US9681144B2 | United States of America | B2 | |
| US2017223385A1 | United States of America | A1 | |
| CN104270645B | China | B | |
| RU2641229C2 | Russian Federation | C2 | |
| JP6267778B2 | Japan | B2 | |
| JP2018046581A | Japan | A | |
| US9930369B2 | United States of America | B2 | |
| US2018176606A1 | United States of America | A1 | |
| BR112012008770A2 | Brazil | A2 | |
| RU2684197C1 | Russian Federation | C1 | |
| US10284881B2 | United States of America | B2 | |
| JP6556818B2This record | Japan | B2 | |
| US2019261022A1 | United States of America | A1 | |
| US10484720B2 | United States of America | B2 | |
| US2019356932A1 | United States of America | A1 | |
| JP2019208231A | Japan | A | |
| US10652585B2 | United States of America | B2 | |
| US2020245001A1 | United States of America | A1 | |
| RU2019107974A | Russian Federation | A | |
| EP3086557B1 | European Patent Office (EPO) | B1 | |
| DK3086557T3 | Denmark | T3 | |
| PT3086557T | Portugal | T | |
| LT3086557T | Lithuania | T | |
| SI3086557T1 | Slovenia | T1 | |
| JP6810204B2 | Japan | B2 | |
| EP3764652A1 | European Patent Office (EPO) | A1 | |
| PL3086557T3 | Poland | T3 | |
| HUE051657T2 | Hungary | T2 | |
| JP2021044842A | Japan | A | |
| BRPI0911141B1 | Brazil | B1 | |
| US10958943B2 | United States of America | B2 | |
| HRP20201803T1 | Croatia | T1 | |
| BR122020000338B1 | Brazil | B1 | |
| EP3826308A1 | European Patent Office (EPO) | A1 | |
| ES2830394T3 | Spain | T3 | |
| US2021195249A1 | United States of America | A1 | |
| BR122020000327B1 | Brazil | B1 | |
| BR122020000341B1 | Brazil | B1 | |
| RU2019107974A3 | Russian Federation | A3 | |
| RU2760849C2 | Russian Federation | C2 | |
| CY1123585T1 | Cyprus | T1 | |
| JP7096319B2 | Japan | B2 | |
| EP3764652B1 | European Patent Office (EPO) | B1 | |
| JP2022126800A | Japan | A | |
| US11438634B2 | United States of America | B2 | |
| US2023082110A1 | United States of America | A1 | |
| JP7348356B2 | Japan | B2 | |
| JP2023158140A | Japan | A | |
| US11838558B2 | United States of America | B2 | |
| US2024129554A1 | United States of America | A1 | |
| JP7525711B2 | Japan | B2 | |
| JP2024133284A | Japan | A | |
| US12231699B2 | United States of America | B2 | |
| US2025063211A1 | United States of America | A1 | |
| JP7686126B2 | Japan | B2 |
13 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 6556818
- Publication, DOCDB
- 6556818
- Publication, EPODOC
- JP6556818B
- Application
- 246831
- Application, DOCDB
- 2017246831
- Application, EPODOC
- JP20170246831
Titles2
- Japanese
- 装置
- English
- apparatus
Classification
- CPC, 19
- H04N19/91
- H04N19/119
- H04N19/159
- H04N19/17
- H04N19/172
- H04N19/174
- H04N19/184
- H04N19/43
- H04N19/436
- H04N19/44
- H04N19/46
- H04N19/61
- H04N19/70
- H04N19/80
- H04N19/463
- H04N19/15
- H04N19/136
- H04N19/192
- H04N19/40
- IPC, 2
- H04N19 436
- H04N19 70
