WO2014049980A1 - 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置 - Google Patents
画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置 Download PDFInfo
- Publication number
- WO2014049980A1 WO2014049980A1 PCT/JP2013/005269 JP2013005269W WO2014049980A1 WO 2014049980 A1 WO2014049980 A1 WO 2014049980A1 JP 2013005269 W JP2013005269 W JP 2013005269W WO 2014049980 A1 WO2014049980 A1 WO 2014049980A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- slice
- image
- tile
- decoding
- slices
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 230
- 230000001419 dependent effect Effects 0.000 claims abstract description 246
- 238000012545 processing Methods 0.000 description 166
- 238000010586 diagram Methods 0.000 description 81
- 230000008569 process Effects 0.000 description 47
- 238000013139 quantization Methods 0.000 description 25
- 238000004458 analytical method Methods 0.000 description 23
- 230000005236 sound signal Effects 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 19
- 230000003044 adaptive effect Effects 0.000 description 16
- 239000000872 buffer Substances 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 15
- 230000003287 optical effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000011423 initialization method Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 239000010410 layer Substances 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 239000000470 constituent Substances 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000000945 filler Substances 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 230000001678 irradiating effect Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/189—Recording image signals; Reproducing recorded image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the present invention relates to an image encoding method and an image decoding method.
- Hybrid video coding is similar to ISO / IEC standards (MPEG-X standards such as MPEG-1, MPEG-2 and MPEG-4) as well as ITU-T standards (H.261 and H.263). H.26x standard).
- H.264 The latest video coding standard is H.264. It is called H.264 / MPEG-4 Advanced Video Coding (AVC). This standard was standardized by a joint team of JVT (Joint CoVedeo Team) and ITU-T and ISO / IEC MPEG groups.
- HEVC High-Efficiency Video Coding
- JCT-VC Joint Collaborative Team on Video Coding
- an object of the present invention is to provide an image encoding method or an image decoding method that can improve efficiency when using both parallel tile processing and dependent slices.
- An image decoding method is an image decoding method for decoding a bitstream including an encoded signal in which an image is divided into a plurality of tiles and is divided into a plurality of slices and encoded.
- the present invention can provide an image encoding method or an image decoding method capable of improving efficiency when using both parallel tile processing and dependent slices.
- FIG. 1 is a block diagram of an image coding apparatus according to an embodiment.
- FIG. 2 is a block diagram of the image decoding apparatus according to the embodiment.
- FIG. 3A is a schematic diagram for explaining the WPP according to the embodiment.
- FIG. 3B is a schematic diagram for explaining a dependent slice in the WPP according to the embodiment.
- FIG. 4A is a schematic diagram for explaining a dependent slice when the WPP according to the embodiment is not used.
- FIG. 4B is a schematic diagram for explaining dependent slices when WPP according to the embodiment is used.
- FIG. 5 is a diagram illustrating a slice header of an entropy slice or a dependent slice according to the embodiment.
- FIG. 6 is a diagram illustrating an example of a slice structure that is not permitted when WPP is used according to the embodiment.
- FIG. 7 is a diagram illustrating an example of an allowed slice structure when using WPP according to the embodiment.
- FIG. 8 is a schematic diagram showing a CABAC initialization process according to the embodiment.
- FIG. 9 is a flowchart of the determination process of the CABAC initialization method for the dependent slice according to the feature of the preceding slice according to the embodiment.
- FIG. 10 is a diagram illustrating an example of a slice structure according to the embodiment.
- FIG. 11 is a diagram illustrating an example of a slice structure according to the embodiment.
- FIG. 12 is a diagram illustrating a syntax example of the slice header according to the first embodiment.
- FIG. 13 is a flowchart of the determination process of the CABAC initialization method for the dependent slice according to the first embodiment.
- FIG. 13 is a flowchart of the determination process of the CABAC initialization method for the dependent slice according to the first embodiment.
- FIG. 14 is a diagram illustrating an example of a picture divided into slices according to the second embodiment.
- FIG. 15 is a flowchart of the determination process of the CABAC initialization method according to the second embodiment.
- FIG. 16 is a diagram illustrating an example of a picture divided into slices according to the second embodiment.
- FIG. 17 is a diagram illustrating an example of a picture divided into slices according to the second embodiment.
- FIG. 18 is a diagram illustrating an example of a picture divided into slices according to the third embodiment.
- FIG. 19 is a diagram illustrating a slice header according to the fourth embodiment.
- FIG. 20 is a diagram illustrating an example of a picture divided into tiles according to the fourth embodiment.
- FIG. 21A is a diagram showing a scanning order according to the fourth embodiment.
- FIG. 21A is a diagram showing a scanning order according to the fourth embodiment.
- FIG. 21B is a diagram showing a scanning order according to the fourth embodiment.
- FIG. 22A is a diagram showing a relationship between a tile and a slice according to the fourth embodiment.
- FIG. 22B is a diagram showing a relationship between tiles and slices according to Embodiment 4.
- FIG. 22C is a diagram showing a relationship between tiles and slices according to Embodiment 4.
- FIG. 23 is a diagram illustrating an example of dividing a picture into tiles and slices according to the fourth embodiment.
- FIG. 24 is a diagram illustrating the decoding order of pictures divided into tiles according to the fourth embodiment.
- FIG. 25A is a diagram illustrating an example of a slice structure that is not permitted according to the fourth embodiment.
- FIG. 25B is a diagram illustrating an example of a permitted slice structure according to Embodiment 4.
- FIG. 25C is a diagram illustrating an example of a permitted slice structure according to Embodiment 4.
- FIG. 26A is a diagram illustrating an example of a slice structure that is not permitted according to the fourth embodiment.
- FIG. 26B is a diagram illustrating an example of a permitted slice structure according to Embodiment 4.
- FIG. 27A is a diagram illustrating an example of a slice structure that is not permitted according to the fourth embodiment.
- FIG. 27B is a diagram illustrating an example of a permitted slice structure according to Embodiment 4.
- FIG. 28 is an overall configuration diagram of a content supply system that implements a content distribution service.
- FIG. 29 is an overall configuration diagram of a digital broadcasting system.
- FIG. 30 is a block diagram illustrating a configuration example of a television.
- FIG. 30 is a block diagram illustrating a configuration example of a television.
- FIG. 31 is a block diagram illustrating a configuration example of an information reproducing / recording unit that reads and writes information from and on a recording medium that is an optical disk.
- FIG. 32 is a diagram illustrating a structure example of a recording medium that is an optical disk.
- FIG. 33A is a diagram illustrating an example of a mobile phone.
- FIG. 33B is a block diagram illustrating a configuration example of a mobile phone.
- FIG. 34 is a diagram showing a structure of multiplexed data.
- FIG. 35 is a diagram schematically showing how each stream is multiplexed in the multiplexed data.
- FIG. 36 is a diagram showing in more detail how the video stream is stored in the PES packet sequence.
- FIG. 37 is a diagram showing the structure of TS packets and source packets in multiplexed data.
- FIG. 38 shows the data structure of the PMT.
- FIG. 39 shows the internal structure of multiplexed data information.
- FIG. 40 shows the internal structure of stream attribute information.
- FIG. 41 is a diagram showing steps for identifying video data.
- FIG. 42 is a block diagram illustrating a configuration example of an integrated circuit that implements the moving picture coding method and the moving picture decoding method according to each embodiment.
- FIG. 43 is a diagram showing a configuration for switching drive frequencies.
- FIG. 44 is a diagram illustrating steps for identifying video data and switching between driving frequencies.
- FIG. 45 is a diagram illustrating an example of a look-up table in which video data standards are associated with drive frequencies.
- FIG. 46A is a diagram illustrating an example of a configuration for sharing a module of a signal processing unit.
- FIG. 46B is a diagram illustrating another example of a configuration for sharing a module
- the video signal input to the image encoding device includes a plurality of images each called a frame (picture).
- Each frame includes a plurality of pixels arranged in a two-dimensional matrix.
- each video frame is divided into a plurality of blocks each containing a plurality of pixels.
- the size of this block is changed depending on the content of the image, for example. Different encoding methods can be used for each block. For example, in HEVC, the maximum size of this block is 64 ⁇ 64 pixels. This maximum size is referred to as the maximum coding unit (LCU).
- the LCU can be recursively divided into four coding units (CUs).
- the encoding step in hybrid video encoding includes spatial and / or temporal prediction. That is, each block to be encoded is predicted using spatially adjacent blocks or temporally adjacent blocks, that is, using encoded video frames. Next, a residual block that is a difference between the encoding target block and the prediction result is calculated. The residual block is then transformed from the spatial (pixel) domain to the frequency domain. The purpose of this conversion is to reduce the correlation of the input blocks.
- the transform coefficient obtained by the transform is quantized.
- This quantization is lossy compression.
- the obtained quantization coefficient is reversibly compressed by entropy coding.
- auxiliary information necessary for reconstructing the encoded video signal is encoded and output together with the encoded video signal. This information is, for example, information related to spatial prediction, temporal prediction, and / or quantization.
- FIG. 1 is a diagram illustrating an example of an image encoding device 100 compliant with H.264 / MPEG-4 AVC and / or HEVC.
- the subtractor 105 calculates a residual signal 106 (residual block) that is a difference between the encoding target block of the input image signal 101 and the corresponding predicted signal 181 (predicted block).
- the prediction signal 181 is generated by temporal prediction or spatial prediction by the prediction unit 180.
- the prediction type used for prediction may be changed for each frame or block. Blocks and / or frames predicted using temporal prediction are referred to as inter-coded, and blocks and / or frames predicted using spatial prediction are referred to as intra-coded.
- the prediction signal using temporal prediction is derived using the encoded and decoded images stored in the memory.
- a prediction signal using spatial prediction is derived using the boundary pixel values of the encoded and decoded adjacent blocks stored in the memory. Further, the number of intra prediction directions is determined according to the size of the coding unit.
- the residual signal 106 is also called a prediction error or a prediction residual.
- the conversion unit 110 generates a conversion coefficient 111 by converting the residual signal 106.
- the quantization unit 120 generates the quantization coefficient 121 by quantizing the transform coefficient 111.
- the entropy encoding unit 190 entropy encodes the quantized coefficient 121 in order to further reduce the amount of data to be stored and to transmit it reversibly.
- entropy coding is variable length coding. Further, the length of the code word is determined based on the occurrence probability.
- the encoded signal 191 (encoded bit stream) is generated by the above processing.
- the image encoding device 100 includes a decoding unit for obtaining a decoded image signal (reconstructed image signal).
- the inverse transform unit 130 generates the residual signal 131 by performing inverse quantization and inverse transform on the quantization coefficient 121.
- This residual signal 131 is strictly different from the original residual signal 106 due to the influence of a quantization error, also referred to as quantization noise.
- the adder 140 generates a decoded image signal 141 by adding the residual signal 131 and the prediction signal 181.
- the prediction signal 181 is generated using the encoded and decoded image signal in both the image encoding device and the image decoding device.
- quantization noise is superimposed on the decoded image signal 141 by quantization. Since encoding is performed in units of blocks, the superimposed noise often differs from block to block. Thereby, when especially strong quantization is performed, the block boundary of a decoded image signal becomes conspicuous. Such blocking noise seems to have deteriorated image quality in human visual recognition. In order to reduce this blocking noise, the deblocking filter 150 performs a deblocking filter process on the decoded image signal 141.
- a filter process suitable for the area is selected for each area. For example, when the blocking noise is large, a strong (narrow band) low-pass filter is used, and when the blocking noise is small, a weak (wide band) low-pass filter is used.
- the strength of the low-pass filter is determined according to the prediction signal 181 and the residual signal 131.
- the adaptive loop filter 160 generates the decoded image signal 161 by performing the sample adaptive offset process and / or the adaptive loop filter process on the decoded image signal 151 after the deblocking filter process. As described above, deblocking filtering improves subjective image quality. On the other hand, the sample adaptive offset (SAO) process and the adaptive loop filter (ALF) process aim to improve the reliability (objective quality) of each pixel.
- SAO sample adaptive offset
- ALF adaptive loop filter
- SAO is a process of adding an offset value to a pixel in accordance with a neighboring pixel.
- ALF is used to compensate for image distortion caused by compression.
- ALF is a Wiener filter having a filter coefficient determined so that the mean square error (MSE) between the decoded image signal 151 and the input image signal 101 is minimized.
- MSE mean square error
- the ALF coefficient is calculated and transmitted in units of frames.
- ALF may be applied to the entire frame (image) or local region (block).
- auxiliary information indicating an area to be subjected to filter processing may be transmitted in units of blocks, frames, or quadtrees.
- the reference frame buffer 170 holds the decoded image signal 161 as a decoded image signal 171.
- the prediction unit 180 performs inter prediction using motion compensation prediction. Specifically, first, the motion estimator searches for a block most similar to the target block among blocks included in the encoded and decoded video frame. This similar block is used as the prediction signal 181. The relative shift (motion) between the target block and the similar block is sent as motion data to the image decoding apparatus.
- This motion data is, for example, a three-dimensional motion vector included in auxiliary information provided together with encoded video data.
- the three dimensions include two dimensions of space and one dimension of time.
- a motion vector having a spatial subpixel resolution such as a 1/2 pixel resolution or a 1/4 pixel resolution may be used.
- the spatial sub-pixel resolution motion vector indicates the spatial position within the decoded frame, i.e. the position of the sub-pixel, where there is no actual pixel value. Therefore, in order to perform motion compensation prediction, spatial interpolation of pixel values is necessary. This interpolation processing is achieved by, for example, an interpolation filter (included in the prediction unit 180 shown in FIG. 1).
- the residual signal 106 that is the difference between the input image signal 101 and the prediction signal 181 is transformed and quantized to generate a quantization coefficient 121.
- the transform unit 110 uses an orthogonal transform such as a two-dimensional discrete cosine transform (DCT) or an integer version thereof for this transform.
- DCT discrete cosine transform
- the entropy encoding unit 190 converts the two-dimensional array quantization coefficient 121 into a one-dimensional array.
- a so-called zigzag scan is typically used.
- the two-dimensional array is scanned in a predetermined order from the DC coefficient at the upper left corner of the two-dimensional array to the AC coefficient at the lower right corner.
- energy concentrates in the upper left part of the coefficients of a two-dimensional matrix corresponding to a low frequency. Therefore, when zigzag scanning is performed, the latter half value tends to become zero.
- efficient encoding can be realized by using run-length codes as part of entropy encoding or as preprocessing thereof.
- CABAC Context adaptive arithmetic coding
- the encoded bitstream can be reversibly compressed using a variable length code.
- the codeword since the codeword has a variable length, the codeword must be decoded continuously. That is, before encoding or decoding the preceding codeword without restarting (initializing) entropy encoding or individually indicating the position of the first codeword (starting point) during decoding. In addition, subsequent codewords cannot be encoded or decoded.
- a bit string is encoded into one code word by arithmetic encoding based on a predetermined probability model.
- the predetermined probability model is determined according to the content of the video sequence in the case of CABAC. Therefore, arithmetic coding and CABAC are performed more efficiently as the length of the bit stream to be encoded is longer. That is, it can be said that CABAC applied to a bit string is more efficient in a larger block.
- CABAC is restarted at the beginning of each sequence. That is, the probability model is initialized with a default value or a predetermined value at the head of each video sequence.
- H. H.264 / MPEG-4, H.264. H.264 / MPEG-4 AVC and HEVC have two functional layers: a video coding layer (VCL) and a network abstraction layer (NAL).
- An encoding function is provided by the video encoding layer.
- NAL encapsulates information elements in standard units called NAL units, depending on applications such as transmission across channels and storage in storage devices. This information element is, for example, information necessary for decoding an encoded prediction error signal and a video signal.
- Information necessary for decoding the video signal includes a prediction type, a quantization parameter, a motion vector, and the like.
- NAL unit can be used to improve decoding accuracy, VCL NAL unit including compressed video data and related information, non-VCL unit that encapsulates additional data such as parameter sets related to the entire video sequence Additional extended information (SEI) for providing additional information.
- SEI Supplemental extended information
- a non-VCL unit includes a parameter set.
- the parameter set is a set of a plurality of parameters related to encoding and decoding of a certain video sequence.
- the parameter set includes a sequence parameter set (SPS) including parameters related to encoding and decoding of the entire video sequence (picture sequence).
- SPS sequence parameter set
- the sequence parameter set has a syntax structure including syntax elements.
- a reference picture parameter set PPS
- pic_parameter_set_id which is a syntax element included in each slice header.
- seq_parameter_set_id which is a syntax element included in the PPS.
- PPS is a parameter set that defines parameters applied to encoding and decoding of one picture included in a video sequence.
- PPS has a syntax structure including syntax elements.
- a reference picture parameter set (PPS) is specified by pic_parameter_set_id which is a syntax element included in each slice header.
- pic_parameter_set_id is a syntax element included in each slice header.
- VPS is a parameter of the highest layer and includes information on a plurality of video sequences.
- Information included in the VPS includes a bit rate and a temporal_layering structure of a video sequence.
- the VPS also includes information regarding inter-layer dependencies (dependencies between different video sequences). Therefore, the VPS can be regarded as information relating to a plurality of video sequences, and an outline of each video sequence can be understood from the VPS.
- FIG. 1 is a block diagram illustrating an example of an image decoding device 200 compliant with H.264 / MPEG-4 AVC or HEVC video coding standard.
- the encoded signal 201 (bit stream) input to the image decoding apparatus 200 is sent to the entropy decoding unit 290.
- the entropy decoding unit 290 acquires the quantization coefficient and information elements necessary for decoding such as motion data and prediction mode by decoding the encoded signal 201.
- the entropy decoding unit 290 generates a quantization coefficient 291 by performing reverse scanning on the obtained quantization coefficient for the purpose of obtaining a two-dimensional matrix, and outputs the quantization coefficient 291 to the inverse conversion unit 230.
- the inverse transform unit 230 generates a residual signal 231 by performing inverse quantization and inverse transform on the quantization coefficient 291.
- the residual signal 231 corresponds to a difference obtained by subtracting a prediction signal from an input image signal input to an image coding apparatus that has no quantization noise and no error.
- the prediction unit 280 generates a prediction signal 281 using temporal prediction or spatial prediction.
- the decoded information element further includes information necessary for prediction, such as a prediction type in the case of intra prediction, and motion data in the case of motion compensation prediction.
- the adder 240 adds the residual signal 231 in the spatial domain and the prediction signal 281 generated by the prediction unit 280, thereby generating a decoded image signal 241.
- the deblocking filter 250 performs a deblocking filter process on the decoded image signal 241 to generate a decoded image signal 251.
- the adaptive loop filter 260 performs a sample adaptive offset process and an adaptive loop filter process on the decoded image signal 251 to generate a decoded image signal 261.
- the decoded image signal 261 is output as a display image and is stored in the reference frame buffer 270 as a decoded image signal 271.
- the decoded image signal 271 is used for temporal or spatial prediction of subsequent blocks or images.
- HEVC has a function to assist advanced parallel processing of encoding and decoding.
- WPP wavefront parallel processing
- Non-Patent Document 1 information indicating the start point, which is the position where decoding of the LCU row starts, is included in the slice header and signaled. The details of WPP are described in Non-Patent Document 1.
- a frame (picture) is divided into a plurality of tiles.
- Each tile is rectangular and includes a plurality of LCUs.
- the boundaries between the tiles are set so as to divide the picture into a matrix.
- a plurality of tiles are processed in the raster scan order.
- the concept of slice is The concept of dependent slices and entropy slices has been proposed in order to make the concept more suitable for parallelization than the error resilience that was the original purpose of the slice in H.264 / MPEG-4 AVC. That is, in HEVC, three slices of a normal slice, a dependent slice, and an entropy slice are used.
- Normal slice is H. It is a slice already known by H.264 / MPEG-4 AVC. Spatial prediction is not possible between normal slices. In other words, prediction across the boundary between slices is not possible. In other words, a normal slice is encoded without reference to another slice. The CABAC is restarted at the beginning of each slice so that such a slice can be decoded separately.
- a normal slice is used at the beginning of the frame. That is, each frame must start from a normal slice.
- a normal slice has a header including parameters necessary for decoding slice data.
- the entropy slice is a slice that can be spatially predicted between the parent slice and the entropy slice.
- the parent slice is, for example, a normal slice immediately before the entropy slice.
- the analysis of the parent slice and the entropy slice is performed independently.
- the analysis of slice data is performed independently for the parent slice and the entropy slice, except for the syntax element of the thrust header. That is, the CABAC decoding process for entropy slices requires syntax elements included in the slice header of the parent slice. For example, the syntax element includes switching information indicating whether the slice data includes a filtering parameter. When the filtering parameter exists in the slice data, the CABAC decoding unit extracts the information. If it does not exist, the CABAC decoding unit does not assume filtering data. That is, after analyzing the slice header of the normal slice, the CABAC decoding unit can process the parent slice and the entropy slice in parallel.
- the syntax element includes switching information indicating whether the slice data includes a filtering parameter.
- the parent slice may be a normal slice, for example, and is necessary for reconstructing the pixel value of the entropy slice. Also, CABAC is restarted at the head of the slice so that the entropy slice can be independently analyzed.
- the slice header shorter than the slice header of the normal slice can be used for the entropy slice.
- the slice header includes a coding parameter subset related to information transmitted in the header of the normal slice.
- Information not included in the header of the entropy slice is copied from the header of the parent slice.
- Dependent slices are similar to entropy slices where CABAC is not restarted.
- the CABAC restart includes a process for initializing the context table (probability table) to a default value and a termination process (terminate process) in the arithmetic encoding process or arithmetic decoding process.
- the header of the parent slice is used for analysis and / or decoding of the dependent slice. Therefore, since the dependent slice cannot be analyzed without the parent slice, the dependent slice cannot be decoded when the parent slice is not acquired.
- the parent slice is usually a slice that precedes the dependent slice in coding order and includes a complete slice header. The same applies to the parent slice of the entropy slice.
- an entropy slice can be regarded as being dependent on header parameters of other slices, the present invention can be applied to both a dependent slice and an entropy slice.
- the dependent slice and the entropy slice use the slice header of the immediately preceding slice in the coding order of the slice (information not included in the dependent slice header). This rule is applied recursively. It is recognized that the parent slice on which the target dependent slice depends can be referred to. Reference includes use of spatial prediction between slices, common CABAC state, and the like.
- the dependent slice uses a CABAC context table generated at the end of the immediately preceding slice. As described above, the dependent slice does not initialize the CABAC table to the default value and continues to use the created table.
- the entropy slice and the dependent slice are described in Non-Patent Document 3 (for example, see “dependent_slice_flag” on page 73).
- the dependent slice starts at the beginning of the LCU row and the slice including the upper right LCU of the first LCU is indicated to be referable, the dependent slice is displayed in the CABAC context table of the upper right LCU. Is used.
- the profile includes settings of an image encoding device and an image decoding device suitable for a specific application.
- the “primary profile” includes only normal slices and dependent slices, and does not include entropy slices.
- a coded slice is encapsulated in a NAL unit, and further encapsulated in, for example, a real-time protocol (RTP) and finally encapsulated in an Internet protocol (IP) packet.
- RTP real-time protocol
- IP Internet protocol
- This protocol stack or another protocol stack enables transmission of encoded video in a packet-oriented network such as the Internet or a specific network.
- a network typically includes at least one or more routers, and the routers are configured with dedicated hardware that operates at ultra high speed.
- the router has a function of receiving an IP packet, analyzing the header of the IP packet, and appropriately forwarding the IP packet to each destination. Since routers need to handle communications from many sources, the packets that control the logic must be as simple as possible. The router needs to check at least the destination address field included in the IP header in order to determine the route for transferring the IP packet.
- QoS quality of service
- smart (media aware) routers additionally check dedicated fields in network protocol headers such as IP header, RTP header, and NALU header.
- dependency slices and entropy slices incorporate dependency between slices (dependency in a frame) as a supplementary aspect of dependency. This dependency is not the only dependency in the frame.
- the contexts of the arithmetic encoding unit and the arithmetic decoding unit are determined by default settings or based on the encoded or decoded slices.
- the dependency on the header is different from the dependency on the arithmetic code initialization, there is a possibility that a delay occurs and the complexity increases against the purpose of the mechanism of the parallel processing and the dependency slice.
- Dependent slices can be used with parallel processing tools such as WPP or tiles. Further, by using the dependent slice, it is possible to generate a wavefront (substream) that can reduce transmission delay without causing coding loss.
- the dependent slice can be used as the start point of the CABAC substream.
- information indicating the starting point may be included in the bitstream and transmitted.
- the starting point is explicitly signaled using the number of bytes per substream.
- the sub-stream indicates a part of the stream that can be analyzed separately according to the start point.
- the dependent slice can be used as a “marker” for the starting point. That is, the starting point for such a marker can be signaled.
- the method of explicitly notifying the start point by a signal and the method of marking the start point via the dependent slice can be used at the same time.
- arbitrary methods can be used. For example, the following two methods can be used.
- the first method is a method of inserting, for example, a 3-byte start code at the head of each NAL header.
- the second method is a method of packetizing each NAL unit into separate packets. Further, the size of the slice header may be reduced due to the dependency of the slice.
- each LCU row can be realized by one processing core by the WPP parallelization tool.
- the assignment of LCU rows to each core may be different. For example, two rows may be assigned to one core, and one row may be assigned to two cores.
- FIG. 3A is a diagram showing a picture 300 divided into a plurality of rows. Each row includes a plurality of maximum coding units (LCU). Row 301 (Wavefront 1) and row 302 (Wavefront 2) are targets to be processed in parallel. After the first two LCUs are decoded in row 301, the processing in row 302 begins, as indicated by the CABAC states arrow in FIG. 3A. Also, the CABAC state after encoding or decoding the first two LCUs in row 301 is used in CABAC initialization in row 302. Thus, the processing in row 302 can be started after the processing of the first two LCUs in row 301 is complete. That is, there is a delay of two LCUs between the two processing cores.
- LCU maximum coding units
- FIG. 3B is a diagram illustrating an example of using a dependent slice using WPP.
- a picture 310 shown in FIG. 3B includes rows 311 to 314.
- row 311 (Wavefront 1)
- row 312 (Wavefront 2)
- row 313 (Wavefront 3) are processed by separate cores.
- Dependent slices form a WPP that can improve delay.
- Dependent slices do not have a complete slice header. Also, if the start point (or the start point of the dependent slice known by the rules as described above) is known, the dependent slice can be decoded independently of the other slices. In addition, the dependency slice can form a WPP suitable for a low delay application without causing a coding loss.
- the slice can be prepared for transmission only after the last substream of the slice is completely encoded.
- the slice header is completed only after encoding of all substreams in the slice is completed. That is, transmission of the head of the slice cannot be started through packet fragmentation in the RTP / IP layer until the processing of the entire slice is completed.
- the normal slice can be divided into many dependent slices without coding loss. Also, the dependent slice can be transmitted as soon as encoding of the encapsulated substream is complete (or earlier in the case of packet fragmentation).
- Dependent slices do not weaken the spatial prediction dependency. Furthermore, the dependency slice does not weaken the analysis dependency. This is because analysis of a target-dependent slice usually requires the CABAC state of the preceding slice.
- each LCU row can be a slice. Such a configuration improves transmission delay, but at the same time results in significant coding loss as described above.
- the entire frame (picture) is encapsulated in one slice.
- Encapsulating the entire picture into one slice does not worsen the transmission delay. For example, transmission of a part of the slice may be started before encoding is completely finished.
- the slice header needs to be modified later to mark the starting point. Therefore, it is necessary to delay transmission of the entire slice.
- the delay can be reduced by using the dependent slice.
- the picture 310 is divided into rows 311 that are normal slices and rows 312, 313, and 314 that are dependent slices. If each row is one dependent slice, transmission of one row can be delayed without coding loss. This is because the dependency slice does not weaken the spatial dependency and does not restart the CABAC engine.
- FIG. 4A and 4B are diagrams showing another example of CABAC initialization.
- FIG. 4A shows CABAC initialization when WPP is not used. Also, neither WPP nor tiles are used. It is also acceptable to use normal slices and dependent slices together.
- Dependent slice (3) copies the header from normal slice (2). That is, the normal slice (2) is a parent slice of the dependent slice (3).
- the dependency slice (3) uses the context table generated at the end of the normal slice (2).
- the dependency slice (3) depends on the normal slice (2), not the normal slice (1). That is, there is no spatial prediction between the normal slice (1) and the dependent slice (3).
- FIG. 4B is a diagram illustrating initialization of CABAC when WPP is used. It is allowed to use normal slices, dependent slices, and WPP together.
- Dependent slice (3) copies the header of normal slice (2).
- the dependent slice (3) is expected to use the context table generated at the end of the second LCU of the normal slice (1).
- the second LCU of the slice (1) cannot be referred to. That is, slice (1) is not referred to because it is not the preceding slice immediately before the dependent slice in the coding order.
- slice (2) is used as a reference slice for slices (3) and (4). That is, when starting to decode slice (3), the CABAC state needs to be initialized to a default value (indicated by a dotted arrow in FIG. 4B).
- the dependent slice (4) uses the CABAC state (solid arrow) after the upper right second LCU according to the WPP conditions as described above.
- FIG. 5 is a diagram illustrating a syntax example of a slice header compliant with the current HEVC reference model (HM8.0).
- the slice header 320 includes a syntax element dependent_slice_flag that indicates whether the target slice is a dependent slice or a normal slice.
- the header includes slice header information. That is, the slice has a complete header. Otherwise, the header does not contain slice header information. That is, as described above, the dependent slice and the entropy slice do not have a complete slice header, but refer to the header of the preceding normal slice.
- the start point is signaled later to support parallel processing. Even when the entropy encoding unit or the entropy decoding unit is not restarted, parallel decoding can be performed independently on a part of the video stream (substream) between the start points using this start point. As described above, the start point is also marked for the dependent slice, the normal slice, and the entropy slice.
- this restriction applies to a specific profile (or a specific level of the profile). The purpose of this restriction is to reduce the complexity of hardware implementation.
- the PPS entropy_coding_sync_enabled_flag is equivalent to 1 (that is, WPP is used), and the first coding block included in the slice includes the coding tree block of the tile. If it is not the first coding block, the condition that the bit stream conforms to the standard is that the last coding block of the slice belongs to the same coding tree block row as the first coding block of the slice.
- the coding tree shows the structure of the LCU and the LCU is recursively divided into 4 blocks each. That is, if WPP is possible, and if the slice does not start from the beginning of the target LCU row, the slice must end at or before the end of the target LCU row.
- Non-patent document 3 also describes details regarding not only parallel processing means but also HEVC syntax.
- a picture 330 shown in FIG. 6 includes slices 331, 332, and 333, which are normal slices. Slices 331 and 332 are included in one LCU row.
- the slice 333 is a slice that is not permitted because it spans multiple LCU rows (three rows in this example). Subject to the above restrictions, slice 333 must end at the end of the first LCU row.
- FIG. 7 is a diagram showing a picture 340 having a permitted slice structure when WPP is used.
- the picture 340 includes slices 341, 342, and 343 that are normal slices and a slice 344 that is a dependent slice. These slices 341, 342, and 343 are included in the first LCU row.
- Slice 344 includes the following two rows.
- CABAC initialization for the slice 344 depends on the other slices 341, 342 and / or 343. If either of the slices 342 and 343 is a normal slice as shown in FIG. 7, the slice 344 is initialized to the default CABAC state. Otherwise, a WPP table is used. That is, the CABAC state after the processing of the second LCU in the LCU row above the target row is used for initialization.
- the CABAC for the dependent slice 344 is initialized using a predetermined default CABAC state.
- CABAC initialization is based on multiple preceding slices. Therefore, processing of the target slice, particularly analysis, depends on a plurality of other slices. Specifically, whether the CABAC context is initialized with a default value or a WPP value is determined according to the type of the preceding slice of the target slice. In this way, it is confirmed whether the preceding slice can be used, and an initialization method to be applied to the target slice is determined. In other words, processing in a fairly complicated order is necessary. This will be described in detail below.
- the first slice 341 has at least two LCUs, it is possible to refer to the CABAC state after encoding or decoding the first two LCUs.
- the slice 344 cannot be accurately decoded. This is because CABAC initialization cannot be performed because the type of slice 342 or slice 343 is unknown. In other words, even if only information related to the two preceding slices is missing and the slice 344 can be acquired correctly, the CABAC cannot be initialized for the slice 344, and therefore the data of the slice 344 that has been acquired correctly can be discarded. . Therefore, error concealment is required for the slice 344. This can cause image quality degradation due to distortion due to incomplete error concealment.
- the slice header most of the syntax elements (these are mainly switching of control such as a specific filtering operation) need to be determined for all slices included in the frame. Some syntax elements can be changed for each slice, but in most processes by the image coding apparatus, all control parameters determined for the entire frame are maintained. Therefore, the following method can be used as a method for concealing errors. In this method, only information on whether the lost slice was a dependent slice or a normal slice is required.
- the decoding delay gets worse. That is, when packet rearrangement is expected, decoding delay may be deteriorated. This is inconsistent with providing a very low delay with dependent slices, which is the basic goal of WPP.
- FIG. 8 is a diagram showing another example of the CABAC initialization process.
- a picture 350 shown in FIG. 8 includes a slice 351 and a slice 354.
- the slice 351 is a normal slice, the first slice in the frame, and includes four LCUs.
- CABAC is initialized to a default state value (zero state).
- a plurality of default states may exist. In this case, one default state is selected from the plurality of default states.
- the default state is a predetermined value of the probability model of the arithmetic code.
- FIG. 9 is a flowchart of initialization method determination processing performed when the dependent slice 354 is acquired. In other words, this flowchart shows how CABAC initialization depends on more than one slice.
- the parameter numLCUinRow indicates the number of LCUs per row of the picture 350. Therefore, the condition of (Expression 1) is satisfied at the head of the line.
- the parameter numLCUinRow can be derived from the SPS setting.
- the slice (4) is a dependent slice (S101). If the slice (4) is not a dependent slice (No in S101), default initialization is performed.
- slice (4) is a dependent slice (Yes in S101)
- i is set to 3 (S102). That is, slice (3) immediately before slice (4) is set as slice i.
- slice i is slice (3) immediately before the dependent slice (slice (4)) to be processed.
- the start position of the slice i is analyzed. Specifically, it is determined whether slice_address% numLCUinRow is smaller than 2 (S106). That is, it is determined whether the start position of the slice i is the head of the row or the second LCU.
- slice_address% numLCUinRow is smaller than 2 (Yes in S106)
- WPP initialization is performed (S107).
- slice_address% numLCUinRow is 2 or more (No in S106)
- default initialization is performed (S108).
- the start position of the slice i is analyzed. Specifically, it is determined whether slice_address% numLCUinRow is smaller than 3 (S105). That is, it is determined whether the start position of slice i is the first, second, or third LCU in the row.
- slice_address% numLCUinRow is smaller than 3 (Yes in S105)
- WPP initialization is performed (S107).
- slice_address% numLCUinRow is 3 or more (No in S105)
- initialization is not performed and the index i is decreased by 1 (S109). That is, in this example, the slice (2) immediately before the target slice (slice (4)) is set as the slice i. Then, the processing after step S103 is performed on the slice (2). If the same determination is made for slice (2), then slice (1) is set as slice i.
- FIG. 10 is a diagram showing a picture 360.
- the picture 360 includes five slices 361-365.
- the slice 361 is a normal slice and includes the entire first row.
- the slice 362 is a dependent slice and includes the entire second row.
- the third row includes a dependent slice 363 and a slice 364.
- Slice 365 is a dependent slice and includes the entire fourth row.
- slice 364 has at least two LCUs.
- the image decoding apparatus cannot determine the type of the slice 364. If the lost slice 364 is a dependent slice, it is possible to continue decoding the slice 365 and subsequent slices with a little error in the reconstruction process. This is because the slice 365 uses the CABAC state of the second LCU of the slice 363 as described with reference to FIGS. Therefore, no error occurs in the CABAC initialization process. However, since the slice 365 uses spatial prediction from the slice 364, an error may occur in the pixel reconstruction process.
- the lost slice 364 is a normal slice
- the slice 365 cannot be decoded. This is because some syntax elements may use the information in the slice header of the lost slice 364. That is, the normal slice 364 is a parent slice of the dependent slice 365, and information on the parent slice is necessary for analysis and decoding of the dependent slice 365.
- the image decoding apparatus discards the decodable slice 365 in order to avoid erroneous decoding that may occur when the lost slice 364 is a normal slice. This is inefficient because the slice 365 is discarded even when the data of the slice 365 can be correctly acquired. Furthermore, all the dependent slices following the slice 365 need to be discarded.
- the CABAC engine is initialized to the default CABAC value for decoding the slice 365 (see the case of No in S101 of FIG. 9). Therefore, the slice 365 does not depend on the slice 363. Further, spatial prediction between the slice 363 and the slice 365 is not performed. Thus, the dependent slice 365 is similar to a normal slice because CABAC is initialized to the default value at the start of the slice 365.
- a normal slice has a complete slice header.
- the slice 365 has only a short slice header and depends on the parameters set by the slice header of the preceding normal slice. That is, when the slice 365 is a dependent slice, there is an advantage that the header size can be reduced, but this advantage is not so large.
- the slice 365 when the slice 365 is a normal slice, the slice 365 can be decoded. Thus, in the above case, it is considered that the advantage is greater when the slice 365 is set as a normal slice than when the slice 365 is set as a dependent slice.
- FIG. 11 is a diagram for illustrating another problem related to CABAC initialization in the case of using WPP, and is a diagram illustrating a picture 370.
- the picture 370 includes four slices 371-374.
- the slice 371 is a normal slice, and the slice 372 is a dependent slice.
- the slice 371 has at least two LCUs.
- the first line of the picture 370 includes slices 371 and 372.
- the second row of the picture 370 includes slices 373 and 374 that are dependent slices.
- the image encoding device uses at least two processor cores. That is, when using WPP, the image encoding apparatus encodes and analyzes two LCU rows in parallel. Thus, slice 373 becomes available long before slice 372 becomes available.
- Two processing units such as a processor core or a processor encode the first slice (slice 371 and 373) of each row at the same time.
- the encoded slices 371 and 373 are encapsulated into packets having packet numbers (packet_id) of 0 and 4, respectively.
- packet number 4 is selected to reserve a small number for slice 372 and possibly another NALU.
- the slice 372 is encapsulated into a packet of packet number 1 and transmitted. Also, two NAL units having corresponding packet numbers 2 and 3 and dummy (filler) data are generated so that the missing packet numbers 2 and 3 are not determined to be missing packets.
- the filler type NALU is used to fill the difference.
- the initialization of the target line depends on the second LCU on the line above it. Also, if a slice is inserted after the second LCU, it will be a problem because it affects the CABAC initialization decision. Based on this analysis and problem, the present invention provides a technique for deriving a more efficient relationship between the use of WPP and dependent slices. In order to maintain WPP efficiency, the situation where CABAC initialization for one row depends on another row should be avoided.
- An image decoding method is an image decoding method for decoding a bitstream including an encoded signal in which an image is divided into a plurality of tiles and is divided into a plurality of slices and encoded.
- the top slice of the second tile refers to a slice other than the top of the first tile, it is possible to improve efficiency when using both parallel tile processing and dependent slices.
- the decoding step when the first tile and the second tile are decoded in parallel and decoding of the second tile is started, without referring to the division information indicating the slice structure in the first tile,
- the second tile may be decoded.
- the dependent slice may include the entire third tile.
- the second tile may not start from the dependent slice.
- the image decoding method may further include a step of acquiring information indicating whether a slice is a normal slice or a dependent slice from a slice header.
- the first slice of the image may be a normal slice, and all other slices may be dependent slices.
- the image decoding method may further include a step of acquiring a restriction indicator indicating that the division of a picture is restricted from the bitstream.
- the image decoding method may further include a step of acquiring from the bitstream an indicator indicating whether or not a parent slice in which a slice header is used for the dependent slice starts from the top of the tile.
- An image encoding method is an image encoding method for generating a bitstream by dividing an image into a plurality of tiles and encoding the image by dividing the image into a plurality of slices.
- the information included in the slice header is one of a normal slice used for another slice and a dependent slice using the information included in the slice header of another slice for decoding.
- the normal slice is When starting from other than the beginning of the first tile, the second tile encoded next to the first tile starts from the dependent slice. As no al, into a plurality of slices with dividing the image into a plurality of tiles.
- the top slice of the second tile refers to a slice other than the top of the first tile, it is possible to improve efficiency when using both parallel tile processing and dependent slices.
- the slice in the first tile is started when the image decoding device starts decoding the second tile.
- the image may be divided into the plurality of tiles and the plurality of slices so that the second tile can be decoded without referring to the division information indicating the structure.
- the image is divided into a plurality of tiles and divided into a plurality of slices so that the dependent slice includes the entire third tile. May be.
- the image is divided into a plurality of tiles so that the second tile does not start from a dependent slice. It may be divided into a plurality of slices.
- the image encoding method may further include a step of embedding information indicating whether a slice is a normal slice or a dependent slice in a slice header.
- the first slice of the image may be a normal slice, and all other slices may be dependent slices.
- the image coding method may further include a step of embedding a restriction indicator indicating that division of pictures is restricted in the bitstream.
- the image coding method may further include a step of embedding an indicator indicating whether or not a parent slice in which a slice header is used for the dependent slice starts from the top of the tile in the bitstream.
- An image decoding device is an image decoding device that decodes a bitstream including an encoded signal that is encoded by being divided into a plurality of slices while the image is divided into a plurality of tiles.
- Each of the plurality of slices includes a normal slice in which information included in a slice header of the slice is used for another slice, and a slice header of another slice for decoding. If the information included in is one of the dependent slices used, and the normal slice starts from other than the top of the first tile, the second tile encoded next to the first tile does not start from the dependent slice.
- the top slice of the second tile refers to a slice other than the top of the first tile, it is possible to improve efficiency when using both parallel tile processing and dependent slices.
- An image encoding device is an image encoding device that generates a bitstream by dividing an image into a plurality of tiles and encoding the image into a plurality of slices.
- a division unit that divides the image into a plurality of tiles and a plurality of slices; and a coding unit that encodes the plurality of divided tiles and the plurality of slices, and each of the plurality of slices includes the slice.
- Information included in the slice header is a normal slice in which another slice is used, and a dependent slice in which information included in the slice header of another slice is used for decoding.
- the second tile encoded next to the first tile does not start from the dependent slice. It is divided into a plurality of slices as well as dividing a plurality of tiles image.
- the top slice of the second tile refers to a slice other than the top of the first tile, it is possible to improve efficiency when using both parallel tile processing and dependent slices.
- an image encoding / decoding device includes the image encoding device and the image decoding device.
- FIG. 12 is a diagram illustrating the syntax of the slice header according to the first embodiment.
- the slice header 380 includes a new line 381 with a new syntax element “entropy_default_initialization_flag”.
- the entropy_default_initialization_flag is an indicator that indicates that the CABAC of the slice is initialized with the CABAC default (predetermined) value when set to a predetermined value.
- This flag has a first value such as “1” indicating that the slice is initialized with the default CABAC value, and a second value such as “0” indicating that the initialization is performed in another way. Is a 1-bit indicator. The assignment of the values “1” and “0” may be interchanged.
- “Another method” for determining the initialization may be a predetermined method such as initialization based on the value of the preceding slice. However, “another method” may include another decision flow similar to the flow shown in FIG. 9, which may also lead to an initialization method with default CABAC values.
- the image decoding apparatus decodes a bit stream of an encoded video sequence including an image slice that is at least partially encoded with an arithmetic code.
- the image decoding apparatus according to the initialization indicator, an analysis unit for extracting from the bit stream data of the slice, an initialization indicator indicating whether the probability model of arithmetic decoding of the slice is initialized with a predetermined value, A control unit that controls whether or not the probability model for arithmetic decoding is initialized with the predetermined value, and an arithmetic decoding unit that decodes the slice by performing arithmetic decoding.
- the arithmetic code may be a context adaptive arithmetic code as defined in HEVC.
- the present invention is not limited to this.
- the predetermined value is a default value notified to the image encoding device and the image decoding device, and does not change depending on the encoded content.
- This initialization indicator preferably refers to a 1-bit flag, where “1” indicates that the probability model of arithmetic decoding is initialized with a predetermined value, and “0” indicates that the arithmetic decoding is performed. Indicates that the probabilistic model is initialized in another way.
- the initialization indicator (flag) is advantageous when performing parallel processing of a slice and another slice.
- the syntax element “slice_address” indicates the start of a slice by an offset included in the bitstream.
- “PicWidthInCtbsY” indicates the width of the frame in the number of units (LCU) of the coding tree block.
- the image coding method and the image decoding method according to the present embodiment divide an image slice into coding units corresponding to the pixel blocks of the image, and the analysis unit performs header data only when the slice is a dependent slice.
- the initialization indicator included in is extracted.
- the arithmetic decoding unit of the dependent slice is initialized based on the context of the arithmetic decoding unit of the parent slice corresponding to each dependent slice.
- the analysis unit may extract an initialization indicator for header data only when parallel decoding of a row composed of coding units is possible.
- the slice of the image is divided into coding units corresponding to the pixel blocks of the image, and the analysis unit only starts when the slice starts from the beginning of the row composed of the coding unit blocks of the image. Extract the header data initialization indicator.
- FIG. 13 is a flowchart of a method for determining CABAC initialization of a slice according to the present embodiment.
- FIG. 13 assumes the case of the picture 350 shown in FIG. Assuming that slice (4) (slice 354) is analyzed in parallel with slice (1) (slice 351), the following decisions are made:
- the present embodiment is not limited to signaling the initialization indicator in the slice header.
- the same indicator may be embedded in another data structure, for example, an additional extended information message.
- Embodiment 2 According to the first embodiment, efficient processing of parallel LCU row processing such as WPP and dependent slice can be realized. On the other hand, a new syntax element is incorporated into the slice header. On the other hand, independence of CABAC initialization with respect to slices being processed in parallel may be achieved by modifying the initialization rules to avoid adding new syntax elements.
- the definition of the dependent slice and the operations of the image encoding device and the image decoding device for the dependent slice are corrected. This can be realized by limiting the bitstream standard.
- the image decoding apparatus decodes a bit stream of an encoded video sequence that includes a plurality of image slices that are divided into a plurality of encoding units and are at least partially encoded with arithmetic codes.
- the image decoding apparatus includes an analysis unit that extracts a first row and a second row composed of coding units from a bit stream, and initializes an arithmetic decoding unit for the second slice of the second row.
- the coding units of the first row and the second row are allocated to the slice so that the division information of the first slice of the eye does not have to be referred to.
- the start position of the first slice in the first row is a predetermined number of encoding units after the second slice in the second row.
- the image decoding apparatus further includes an arithmetic decoding unit that decodes each slice by arithmetically decoding the first slice and the second slice at least partially in parallel.
- FIG. 14 is a diagram for illustrating the function of the present embodiment, and shows a picture 390 divided into a plurality of slices.
- the picture 390 includes a normal slice 391, a normal slice 392, a dependent slice 393, and a normal slice 394, which are four slices.
- the three slices 391, 392, and 393 are included in the first row composed of coding units (LCU).
- Slice 394 includes the entire second and third rows.
- a first example of restrictions that apply to slicing and the use of row-wise parallel processing is: "If entropy_code_sync_enabled_flag is equivalent to 1 and dependent_slice_enabled_flag is equivalent to 1, only at the beginning of the coding tree block row Usually a slice may start. " Also, both flags of entropy_code_sync_enabled_flag and dependent_slice_enabled_flag are included in the picture parameter set.
- the coding tree block (CTB) and the maximum coding unit (LCU) are the same unit. CTB is used in the standard text (see Non-Patent Document 3). In addition, LCU was used in the previous version of the standard text, but CTB is currently used.
- a dependent slice following the normal slice in another row may always refer to the CABAC state of the normal slice.
- the CABAC state is a CABAC state after processing of the first LCU or the first two LCUs as executed by the WPP.
- the headers of the dependent slices depend on the headers of the normal slices preceding them, it is necessary to discard the dependent slices when the normal slice 394 is lost.
- the restrictions in the first example need not be strict.
- at least one or two LCUs of the preceding normal slice may be made available to the dependent slice.
- the second example may be applied as another restriction (rule).
- the normal slice is not started after the second coding tree block in the coding tree block row. Since the normal slice must start at the beginning of the LCU row, for example, as shown in FIG. 14, it is not allowed to set the second slice 392 as a normal slice.
- the first slice described above may have a start position up to the second coding unit in the first row.
- the first slice may be a normal slice
- the second slice may be a dependent slice using a slice header of the normal slice.
- the start position of the first slice may be the beginning of the first row.
- FIG. 15 is a flowchart of the CABAC initialization method determination process when the above-described rules are provided. Here, a description will be given using the example shown in FIG.
- the image encoding method uses a context adaptive entropy encoding unit.
- the image coding method is applied to a picture frame divided into at least two parts.
- the at least two parts are a first part and a second part that can be encoded and decoded separately and at least partially in parallel.
- the initialization of the context table of the second part of the stream is determined by a method that does not depend on the division of the first part. For example, since WPP is performed for each row (each LCU row), a part of the stream may correspond to the LCU row.
- entropy_coding_sync_enabled_flag indicates the position of a slice starting in the bitstream
- PicWidthInCtbsY indicates the width of a picture (frame) in an LCU (coding tree block).
- a picture 400 shown in FIG. 16 includes three slices 401 to 403 included in the first row. Of these three slices, the first two slices 401 and 402 are normal slices, and the third slice 403 is a dependent slice.
- the fourth slice 404 cannot be set as a dependent slice. In FIG. 16, this is shown by putting a cross mark on the slice 404.
- the bitstream may include normal slices and dependent slices, and their decoding is based on parameters signaled in the slice header of the normal slice. If a normal slice starts at a position after the beginning of the LCU line, the next LCU line does not start with a dependent slice.
- the normal slice is recognized only as the first slice in the frame. That is, all slices in the frame are dependent slices except the first slice.
- the picture 410 shown in FIG. 17 includes five slices 411 to 415.
- Slices 411, 412, and 415 are normal slices, and slices 413 and 414 are dependent slices.
- normal slices 412 and 415 except the first normal slice 411 are not allowed. That is, slices 412 and 415 must be dependent slices.
- the bitstream includes a normal slice and a dependent slice.
- the decoding of the normal slice and the dependent slice is based on parameters signaled in the slice header of the normal slice. Only the first slice in the image is a normal slice and the remaining slices are dependent slices, and then the image is divided into slices.
- Each slice includes all m coding unit rows.
- m is an integer of 1 or more.
- an indicator indicating the restriction may be embedded in the bitstream.
- this indicator is embedded in SPS or PPS.
- this indicator may be embedded in another message, such as a SEI message, or in any video usability information (VUI) message.
- this restriction is a restriction that a normal slice is allowed only at the head of an LCU row (WPP) or at the head of a tile. Note that this is only an example of a restriction, and any of the above restrictions, a combination of these restrictions, or additional restrictions not explicitly described may be applied.
- this indicator may be a 1-bit flag indicating whether or not the restriction is applied to a predetermined restriction.
- There may be a plurality of selectable restrictions, and information indicating the selected restrictions is included in the bitstream and signaled to the image decoding apparatus. That is, instead of explicitly restricting use as in the above-described example, the image encoding device may inform the image decoding device that such a restriction is used. Therefore, any of the above examples related to restrictions may be applied.
- the present embodiment can prevent the dependent slice processing from being delayed by two or more or three or more coding units by performing CABAC initialization considering the preceding slice in parallel processing. As a result, row encoding, decoding, and analysis can be efficiently performed in parallel.
- the restriction may also relate to a slice from which a CABAC context is obtained.
- a rule is set so that the dependent slice always obtains the slice header and the CABAC context from the same slice regardless of the division of the LCU row into slices (and / or the type of the subsequent slice).
- the picture 420 shown in FIG. 18 includes slices 421 to 424.
- the parent slice of the dependent slice 424 is the slice 422.
- the slice header of the dependent slice 424 is acquired from the slice 422 that is the preceding closest normal slice.
- the dependent slice may perform CABAC initialization using the normal slice at the head of the preceding LCU row. However, when the slice 422 is lost, the CABAC of the slice 424 can be initialized, but since the slice header information is lost, the slice 424 cannot be decoded.
- the dependent slice has, as a parent slice, the nearest normal slice starting from the same row or the previous row including the dependent slice.
- the parent slice of the slice 424 is set to the slice 421 as shown in FIG. Then, the dependent slice 424 uses the slice header of the slice 421 and performs CABAC initialization using the CABAC state of the slice 421.
- the dependency of the slice is set so that the arithmetic decoding unit of each dependent slice is initialized based on the context of the arithmetic decoding unit of the parent slice.
- CABAC context table used for slice initialization may be explicitly signaled in the SEI message. That is, all initial values that may be used to initialize the CABAC engine may be explicitly signaled in the SEI message.
- initializing the CABAC context table means setting the CABAC context table to either a default initial value or a previously stored value. For tiles, the CABAC context table is always initialized to the default value at the beginning of the tile (even if the tile starts with a dependent slice).
- the syntax element is, for example, a flag indicating ON / OFF of sample adaptive offset processing.
- this flag is “ON”, the CABAC engine filters parameters while analyzing slice data.
- this relates to CABAC engine state control. This will be described in detail below.
- FIG. 19 is a diagram showing the syntax of the slice header according to the present embodiment.
- This slice header includes dependent_slice_flag which is an indicator related to dependency.
- FIG. 20 is a diagram illustrating a picture 500 divided into two tiles 501 and 502. As shown in FIG. 20, a tile is different from a slice in that a picture is divided by a vertical line. In general, a picture can be divided into a plurality of tiles. The tile division information is signaled in a picture parameter set (PPS) for the picture.
- PPS picture parameter set
- tiles are one of the tools that enable parallel processing. That is, a plurality of tiles may be decoded in parallel. Note that after the tile reconstruction, the loop filter processing is generally performed at the tile boundary at the end.
- the picture parameter set includes information on the number and position of tiles in the picture. Tiles are similar to slices in that spatial prediction between tiles is not allowed.
- spatial prediction refers to intra prediction, motion vector prediction, or parameter reference.
- the parameter is a sample adaptive offset parameter, another parameter related to a picture, or a parameter related to another tile.
- the entropy encoder and entropy decoder are restarted at the beginning of each tile.
- FIG. 21A is a diagram illustrating a processing order of coding units such as a coding tree block or a maximum coding unit. This order is also called Z scan or raster scan.
- FIG. 21A shows the case where the tile is not valid. In other words, one tile is set for one picture. Note that WPP may be enabled.
- FIG. 21B is a diagram showing a frame including two tiles 511 and 512 divided by a boundary 513.
- the processing order when two or more tiles exist in a frame is determined as follows.
- the order of all tiles is determined according to the normal raster scan order described above for the LCU. This is the order starting with tile 511 and ending with tile 512 in FIG. 21B.
- LCU scan order is used for slices. Therefore, if slice A precedes slice B in coding order, it means that all LCUs in slice A precede all LCUs in slice B.
- the coding units are scanned in an order different from the order applied when only slices are used (when tiles are not used).
- the coding unit in a picture is scanned by so-called Z-scan.
- the Z scan starts from the upper left coding unit in the picture, scans the first line in the right direction, and when scanning to the right end of the first line is completed, starts from the coding unit at the left end of the second line, Are scanned up to the rightmost encoding unit.
- the last coding unit in the last row is scanned.
- the slice is configured as a continuous number of coding units in the Z-scan order.
- the encoding or decoding order of the coding units is changed from this order. Specifically, scanning is performed in the order of Z scanning within each tile. That is, scanning in the Z scan order is not performed across tiles. Therefore, encoding or decoding of the coding unit included in the tile starts from the upper left coding unit of the tile and ends with the lower right coding unit of the tile. Also, the tiles in the picture are ordered in the Z scan order as described above.
- the syntax element tiles_enabled_flag is included in the syntax of the bitstream as part of the sequence parameter set (SPS). By setting this syntax element to the logical value “1”, the tile can be used.
- the SPS syntax element entropy_coding_sync_enabled_flag for controlling the use of WPP is set to a logical value “0”.
- 22A to 22C are diagrams for explaining limitations when using tiles and slices at the same time. As shown in FIG. 22A, it is allowed to split a slice into two tiles. In this example, slice (1) includes the entire picture and is divided into two tiles having the same size.
- the picture is divided into two tiles. Each tile is divided into two slices. Specifically, the picture is first divided into tile 1 and tile 2.
- Tile 1 and tile 2 include the left half and the right half of the picture, respectively.
- Tile 1 is divided into two slices, slice 1 and slice 2
- tile 2 is divided into two slices, slice 3 and slice 4.
- FIG. 22C is a diagram showing an unrecognized slice and tile structure.
- slice 1 is included in both tile 1 and tile 2.
- slice 2 exists only in tile 2.
- neither tile 1 nor tile 2 includes an integer number of complete tiles.
- neither slice 1 nor slice 2 contains an integer number of complete tiles.
- FIG. 23 is a diagram illustrating an example of dividing a picture into tiles and slices. This division is permitted in accordance with the above restrictions. This division corresponds to the example of FIG. 22B.
- slices 521 and 522 included in tile 1 are normal slices.
- Slices 523 and 524 included in tile 2 are dependent slices.
- FIG. 24 is a diagram showing a scanning order when a single core is used for processing of coding units in a picture, particularly decoding or coding of a coding unit. As shown in FIG. 24, when tile division is not used, the single core decodes coding units in the Z scan order.
- the CABAC engine is re-initialized according to the tile definition, ie, tile boundaries. That is, the CABAC state at the tile boundary needs to be stored for later initialization.
- the single core decoding procedure requires jumps in the bitstream. This is because tile division changes the coding order of coding units.
- the first coding unit row of the slice 521 is decoded.
- the slice address of slice 522 is decoded.
- the slice address is signaled in the slice header.
- the slice address is represented by the number of LCUs, and indicates a position in the bit stream where the slice starts. Further, the slice address is different from the first encoding unit included in the tile 2.
- the slice 523 is decoded. Although the slice address is correct, this slice is a dependent slice. Accordingly, the slice 523 uses the slice header of the slice 522 included in the tile 1. Therefore, the decoding process jumps back to the slice 522, and the header is decoded. Then, since the decoding process returns to decoding of the slice 523, the process jumps forward. Thereafter, decoding of the slice 523 is started.
- the image decoding device needs to jump back and forward in the bitstream, and when starting decoding of tile 2, an additional confirmation is required. There is a need to do. This is due to the occurrence of dependencies between tiles in order to use dependent slices.
- the present embodiment realizes a technique that enables effective application of dependent slices and tiles. Specifically, by limiting the division of a picture into slices and tiles, it is possible to ensure proper encoding and decoding in a normal order.
- the image decoding apparatus decodes a bit stream of an encoded video sequence that includes a plurality of frames each including a plurality of image slices and image tiles. Each image slice and each image tile includes a plurality of coding units.
- the image decoding apparatus includes an analysis unit that extracts (analyzes) a tile 1 and a tile 2 encoded next to the tile 1 from a bit stream. In decoding of tile 2 by the arithmetic decoding unit, the frame is divided into slices and tiles so that the division information of tile 1 is not required.
- the image decoding apparatus further includes an arithmetic decoding unit that decodes slices by arithmetically decoding tiles 1 and 2 at least partially in parallel.
- the image encoding apparatus encodes a video including a plurality of image slices divided into a plurality of encoding units into a bitstream, at least partially using an arithmetic code.
- the image encoding apparatus decodes the second tile by the bit stream generation unit that embeds the first tile and the second tile encoded next to the first tile in the bit stream, and the arithmetic decoding unit, Dividing each frame into the slices and the tiles so that the division information of the first tiles is not required, and arithmetically coding the first tiles and the second tiles at least partially in parallel. And an arithmetic coding unit for coding each slice.
- the normal slice starts only at the head of the tile. That is, if tiles_enabled_flag is equal to 1 and at the same time dependent_slice_enabled_flag is equal to 1, each normal slice must start at the start position of the tile.
- a slice (ordinary slice) in which the header is used for another slice always starts at the top of the tile.
- the first slice of the image is a normal slice
- the other slices are dependent slices. That is, the normal slice is recognized only as the first slice of the image.
- the slices other than the head are always dependent slices.
- the picture shown in FIG. 25C is allowed, but the picture shown in FIG. 25B is not allowed.
- the tile to be encoded next does not start from the dependent slice. That is, if tiles_enabled_flag is equal to 1 and slice_address is equal to the start address of the tile, the next tile does not start from the dependent slice.
- a tile encoded next to the tile has a header of another slice for decoding. Does not start with the slice used (dependent slice).
- the second tile encoded next to the first tile does not start from the dependent slice. That is, when at least one of the second and subsequent slices of the first tile is a normal slice, the first slice of the second tile is a normal slice.
- the top slice (4) of the tile 2 cannot be set as the dependent slice.
- the slice (4) cannot be set as a dependent slice. Therefore, as shown in FIG. 25B, it is necessary to set slice (4) to a normal slice.
- a picture as shown in FIG. 25C is also recognized.
- a complete tile is included in the dependent slice. That is, when a tile starts from a slice that uses the header of another slice for decoding, the entire tile is included in the slice.
- the dependent slice when the top of the third tile is a dependent slice, the dependent slice includes the entire third tile.
- the third tile includes only one dependent slice.
- FIG. 26A if tile 2 starts with a dependent slice (4), it is not allowed that tile 2 includes multiple slices. Therefore, as shown in FIG. 26B, the tile 2 needs to include only one dependent slice (4).
- the middle of the tile means that the first CTB of the slice is not the first CTB of the tile, not the actual middle. That is, “the middle of the tile” means the inside of the tile.
- the next encoded tile will not start with a slice using the header of another slice.
- the first tile includes a slice that starts from other than the beginning of the first tile (when the first tile includes a plurality of slices)
- the second tile does not start from the dependent slice.
- FIG. 27A when the tile 1 includes a plurality of tiles, it is not permitted to set the first slice (4) of the tile 2 as a dependent slice. Therefore, as shown in FIG. 27B, it is necessary to set the top slice (4) of tile 2 to a normal slice.
- a dependent slice is not permitted. That is, dependent slices are allowed to be used with WPP, but not to be used with tiles. This avoids additional problems when using tiles. That is, when using a tile, a slice does not use the header of another slice for decoding.
- an indicator indicating the restriction may be embedded in the bitstream.
- this indicator is embedded in SPS or PPS.
- this indicator may be embedded in another message, such as a SEI message, or in any video usability information (VUI) message.
- this restriction is a restriction that a normal slice may start only at the head of a tile (or in the case of WPP, the head of an LCU row). Note that this is only an example of a restriction, and any of the above restrictions, a combination of these restrictions, or additional restrictions not explicitly described may be applied.
- this indicator may be a 1-bit flag indicating whether or not the restriction is applied to a predetermined restriction.
- There may be a plurality of selectable restrictions, and information indicating the selected restrictions is included in the bitstream and signaled to the image decoding apparatus. That is, instead of explicitly restricting use as in the above-described example, the image encoding device may inform the image decoding device that such a restriction is used. Therefore, any of the above examples related to restrictions may be applied.
- the image decoding method includes a step of acquiring a restriction indicator indicating that the division of a picture is restricted from the bitstream.
- the image coding method includes a step of embedding a restriction indicator indicating that division of a picture is restricted in the bitstream.
- whether or not to add an indicator may not be determined depending on whether the WPP or the tile is enabled.
- the dependent slice may not be validated. That is, an indicator may be added regardless of whether the use of the dependent slice is valid or invalid.
- an indicator indicating that the parent slice of the target slice starts at the top of the tile may be added to the bitstream. That is, the image decoding method according to an aspect of the present invention includes a step of obtaining an indicator indicating whether or not a parent slice whose slice header is used for a dependent slice starts from the top of the tile from the bitstream. In addition, the image coding method according to an aspect of the present invention includes a step of embedding an indicator indicating whether or not a parent slice in which a slice header is used for a dependent slice starts from the top of the tile in the bitstream.
- an indicator indicating that all slices included in the picture use the same slice header may be added to the bitstream. That is, this indicator indicates that all syntax elements that are present in the header of the normal slice and are not present in the header of the dependent slice are the same for all slices included in the picture.
- a restriction indicator indicating that the division of pictures is restricted by a predetermined rule may be included in the bitstream.
- an indicator indicating whether or not the parent slice of the target slice starts at the top of the tile may be embedded in the bitstream.
- the header of the parent slice is used for the target slice.
- An image decoding method is an image decoding method for decoding a bitstream including an encoded signal in which an image is divided into a plurality of tiles and divided into a plurality of slices. And a decoding step of decoding the encoded signal.
- An image encoding method is an image encoding method for generating a bitstream by dividing an image into a plurality of tiles and encoding the image into a plurality of slices. Are divided into a plurality of tiles and divided into a plurality of slices, and an encoding step of encoding the plurality of divided tiles and the plurality of slices is included.
- Each of the plurality of slices is either a normal slice or a dependent slice.
- a normal slice is a slice in which information included in the slice header of the slice may be used for another slice.
- a dependent slice is a slice that uses information included in a slice header of another slice for decoding.
- another slice is, for example, the nearest normal slice that is located before the dependent slice.
- the image is divided into a plurality of tiles and divided into a plurality of slices so that one or more of the above-described restrictions are satisfied.
- the decoding step the first tile and the second tile are decoded in parallel, and the second tile is decoded without referring to the division information indicating the slice structure in the first tile when decoding of the second tile is started. May be.
- the division step when the image decoding apparatus performs the parallel decoding of the first tile and the second tile, the division information indicating the slice structure in the first tile when the image decoding apparatus starts decoding the second tile.
- the image may be divided into a plurality of tiles and a plurality of slices so that the second tile can be decoded without referring to FIG.
- the division information is, for example, information indicating a slice position (start position) or a slice header position.
- the image decoding apparatus refers to the division information to perform the above-described processing of jumping the processing target tile.
- the image decoding method includes a step of acquiring information indicating whether a slice is a normal slice or a dependent slice from a slice header. Further, the image encoding method includes a step of embedding information indicating whether a slice is a normal slice or a dependent slice in a slice header.
- the above solution can also be applied to tiles.
- the part to be processed in parallel is a tile composed of LCUs, not LCU rows. That is, the above-described solution can be used as it is for tiles by replacing LCU rows with tiles.
- the bitstream may include normal slices and dependent slices, and their decoding is based on parameters signaled in the slice header of the normal slices.
- a restriction is applied that a dependent slice that depends on the normal slice cannot follow the normal slice.
- a restriction is applied in which an image is divided into slices so that only the first slice included in the image is a normal slice and the remaining slices are dependent slices.
- the arithmetic decoding unit of each dependent slice uses the slice header of the parent slice, so that the dependency of the slice occurs.
- a restriction indicator is embedded in the bitstream when a dependent slice is applicable.
- the dependent slice is a slice that includes encoded image data and uses parameters of a header of another slice.
- restriction may be any restriction described above, a combination of such restrictions, or a restriction other than the restrictions exemplified above.
- An apparatus is an apparatus for decoding a bitstream of an encoded video sequence including a plurality of image slices and a plurality of image tiles, which is at least partially encoded with an arithmetic code, An initialization indicator indicating whether or not a probability model for arithmetic decoding of a slice is initialized with a predetermined value, an analysis unit that extracts from the data for the slice of the bitstream, and the predetermined value according to the initialization indicator The control unit for controlling whether or not to initialize the probability model for arithmetic decoding, and the arithmetic decoding unit for decoding the slice by performing arithmetic decoding.
- An apparatus is an apparatus that generates a bitstream by encoding a video sequence including a plurality of image slices at least partially using an arithmetic code, and a probability model for arithmetic decoding of a slice is predetermined.
- An initialization indicator indicating whether or not to initialize with a value is embedded in the data for the slice of the bitstream data, and according to the initialization indicator, the arithmetic coding with the predetermined value
- a control unit that controls whether to initialize the probability model, and an arithmetic coding unit that codes the slice by performing arithmetic coding.
- the initialization indicator is embedded in the header data of the slice.
- this initialization indicator is a 1-bit flag.
- “1” indicates that the arithmetic decoding probability model is initialized with a predetermined value
- “0” indicates that the arithmetic decoding probability model is initialized by another method.
- the slice of the image may be divided into coding units corresponding to the pixel blocks of the image, and the analysis unit displays the header data only when the slice is a dependent slice that uses a header parameter of another slice.
- the initialization indicator at may be extracted.
- the analysis unit may extract an initialization indicator of header data only when parallel decoding of tiles is possible.
- the analysis unit may extract an initialization indicator of header data only when the slice starts at the top of the tile.
- the initialization indicator is embedded in the SEI message outside the slice header.
- one slice includes one normal slice segment and one or more dependent slice segments that follow the normal slice segment. That is, when a normal slice segment is immediately after a certain normal slice segment, the slice includes only the normal slice segment. In addition, when one or more dependent slice segments continue immediately after a certain normal slice segment, the slice includes the normal slice segment and the one or more dependent slice segments. That is, one slice includes a normal slice segment to a dependent slice segment immediately before the next normal slice segment.
- the coding tree unit has the same meaning as the above-described LCU and coding tree block.
- All coding tree units included in a slice segment belong to the same tile.
- All coding tree units included in a tile belong to the same slice segment.
- the image encoding method and the image decoding method are realized by an image encoding device and an image decoding device.
- the configurations of the image encoding device and the image decoding device are the same as those shown in FIGS. 1 and 2, for example.
- the characteristic steps included in the image encoding method and the image decoding method are as shown in FIGS. It is executed by any of the processing units shown in FIG. 2 or a processing unit (not shown).
- each processing unit included in the image encoding device and the image decoding device according to the above embodiment is typically realized as an LSI that is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them.
- circuits are not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
- An FPGA Field Programmable Gate Array
- reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
- the image encoding device and the image decoding device include a control circuit (control circuit) and a storage device (storage) electrically connected to the control circuit (accessible from the control circuit).
- the control circuit includes at least one of dedicated hardware and a program execution unit. Further, when the control circuit includes a program execution unit, the storage device stores a software program executed by the program execution unit.
- the present invention may be the software program or a non-transitory computer-readable recording medium on which the program is recorded.
- the program can be distributed via a transmission medium such as the Internet.
- division of functional blocks in the block diagram is an example, and a plurality of functional blocks can be realized as one functional block, a single functional block can be divided into a plurality of functions, or some functions can be transferred to other functional blocks. May be.
- functions of a plurality of functional blocks having similar functions may be processed in parallel or time-division by a single hardware or software.
- the order in which the steps included in the image encoding method or the image decoding method are executed is for illustrating the present invention specifically, and may be in an order other than the above. . Also, some of the above steps may be executed simultaneously (in parallel) with other steps.
- the image encoding device and the image decoding device according to one or more aspects of the present invention have been described based on the embodiment, but the present invention is not limited to this embodiment. Unless it deviates from the gist of the present invention, the embodiment in which various modifications conceived by those skilled in the art have been made in the present embodiment, and forms constructed by combining components in different embodiments are also applicable to one or more of the present invention. It may be included within the scope of the embodiments.
- the storage medium may be any medium that can record a program, such as a magnetic disk, an optical disk, a magneto-optical disk, an IC card, and a semiconductor memory.
- the system has an image encoding / decoding device including an image encoding device using an image encoding method and an image decoding device using an image decoding method.
- image encoding / decoding device including an image encoding device using an image encoding method and an image decoding device using an image decoding method.
- Other configurations in the system can be appropriately changed according to circumstances.
- FIG. 28 is a diagram showing an overall configuration of a content supply system ex100 that realizes a content distribution service.
- a communication service providing area is divided into desired sizes, and base stations ex106, ex107, ex108, ex109, and ex110, which are fixed wireless stations, are installed in each cell.
- the content supply system ex100 includes a computer ex111, a PDA (Personal Digital Assistant) ex112, a camera ex113, a mobile phone ex114, a game machine ex115 via the Internet ex101, the Internet service provider ex102, the telephone network ex104, and the base stations ex106 to ex110. Etc. are connected.
- PDA Personal Digital Assistant
- each device may be directly connected to the telephone network ex104 without going from the base station ex106, which is a fixed wireless station, to ex110.
- the devices may be directly connected to each other via short-range wireless or the like.
- the camera ex113 is a device that can shoot moving images such as a digital video camera
- the camera ex116 is a device that can shoot still images and movies such as a digital camera.
- the mobile phone ex114 is a GSM (registered trademark) (Global System for Mobile Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access) system, or an LTE (Long Terminal Term Evolution). It is possible to use any of the above-mentioned systems, HSPA (High Speed Packet Access) mobile phone, PHS (Personal Handyphone System), or the like.
- the camera ex113 and the like are connected to the streaming server ex103 through the base station ex109 and the telephone network ex104, thereby enabling live distribution and the like.
- live distribution content that is shot by a user using the camera ex113 (for example, music live video) is encoded as described in each of the above embodiments (that is, in one aspect of the present invention).
- the streaming server ex103 stream-distributes the content data transmitted to the requested client. Examples of the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, and a game machine ex115 that can decode the encoded data.
- Each device that receives the distributed data decodes the received data and reproduces it (that is, functions as an image decoding device according to one embodiment of the present invention).
- the captured data may be encoded by the camera ex113, the streaming server ex103 that performs data transmission processing, or may be shared with each other.
- the decryption processing of the distributed data may be performed by the client, the streaming server ex103, or may be performed in common with each other.
- still images and / or moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111.
- the encoding process in this case may be performed by any of the camera ex116, the computer ex111, and the streaming server ex103, or may be performed in a shared manner.
- these encoding / decoding processes are generally performed in the computer ex111 and the LSI ex500 included in each device.
- the LSI ex500 may be configured as a single chip or a plurality of chips.
- moving image encoding / decoding software is incorporated into some recording medium (CD-ROM, flexible disk, hard disk, etc.) that can be read by the computer ex111, etc., and encoding / decoding processing is performed using the software. May be.
- moving image data acquired by the camera may be transmitted.
- the moving image data at this time is data encoded by the LSI ex500 included in the mobile phone ex114.
- the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, and distribute data in a distributed manner.
- the encoded data can be received and reproduced by the client.
- the information transmitted by the user can be received, decrypted and reproduced by the client in real time, and personal broadcasting can be realized even for a user who does not have special rights or facilities.
- the digital broadcast system ex200 also includes at least the video encoding device (video encoding device) or video decoding of each of the above embodiments. Any of the devices (image decoding devices) can be incorporated.
- video encoding device video encoding device
- Any of the devices (image decoding devices) can be incorporated.
- the broadcast station ex201 multiplexed data obtained by multiplexing music data and the like on video data is transmitted to a communication or satellite ex202 via radio waves.
- This video data is data encoded by the moving image encoding method described in each of the above embodiments (that is, data encoded by the image encoding apparatus according to one aspect of the present invention).
- the broadcasting satellite ex202 transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex204 capable of receiving satellite broadcasting.
- the received multiplexed data is decoded and reproduced by an apparatus such as the television (receiver) ex300 or the set top box (STB) ex217 (that is, functions as an image decoding apparatus according to one embodiment of the present invention).
- a reader / recorder ex218 that reads and decodes multiplexed data recorded on a recording medium ex215 such as a DVD or a BD, or encodes a video signal on the recording medium ex215 and, in some cases, multiplexes and writes it with a music signal. It is possible to mount the moving picture decoding apparatus or moving picture encoding apparatus described in the above embodiments. In this case, the reproduced video signal is displayed on the monitor ex219, and the video signal can be reproduced in another device or system using the recording medium ex215 on which the multiplexed data is recorded.
- a moving picture decoding apparatus may be mounted in a set-top box ex217 connected to a cable ex203 for cable television or an antenna ex204 for satellite / terrestrial broadcasting and displayed on the monitor ex219 of the television.
- the moving picture decoding apparatus may be incorporated in the television instead of the set top box.
- FIG. 30 is a diagram illustrating a television (receiver) ex300 that uses the video decoding method and the video encoding method described in each of the above embodiments.
- the television ex300 obtains or outputs multiplexed data in which audio data is multiplexed with video data via the antenna ex204 or the cable ex203 that receives the broadcast, and demodulates the received multiplexed data.
- the modulation / demodulation unit ex302 that modulates multiplexed data to be transmitted to the outside, and the demodulated multiplexed data is separated into video data and audio data, or the video data and audio data encoded by the signal processing unit ex306 Is provided with a multiplexing / demultiplexing unit ex303.
- the television ex300 also decodes the audio data and the video data, or encodes the information, the audio signal processing unit ex304, the video signal processing unit ex305 (the image encoding device or the image according to one embodiment of the present invention) A signal processing unit ex306 that functions as a decoding device), a speaker ex307 that outputs the decoded audio signal, and an output unit ex309 that includes a display unit ex308 such as a display that displays the decoded video signal. Furthermore, the television ex300 includes an interface unit ex317 including an operation input unit ex312 that receives an input of a user operation. Furthermore, the television ex300 includes a control unit ex310 that performs overall control of each unit, and a power supply circuit unit ex311 that supplies power to each unit.
- the interface unit ex317 includes a bridge unit ex313 connected to an external device such as a reader / recorder ex218, a recording unit ex216 such as an SD card, and an external recording unit such as a hard disk.
- a driver ex315 for connecting to a medium, a modem ex316 for connecting to a telephone network, and the like may be included.
- the recording medium ex216 is capable of electrically recording information by using a nonvolatile / volatile semiconductor memory element to be stored.
- Each part of the television ex300 is connected to each other via a synchronous bus.
- the television ex300 receives a user operation from the remote controller ex220 or the like, and demultiplexes the multiplexed data demodulated by the modulation / demodulation unit ex302 by the multiplexing / demultiplexing unit ex303 based on the control of the control unit ex310 having a CPU or the like. Furthermore, in the television ex300, the separated audio data is decoded by the audio signal processing unit ex304, and the separated video data is decoded by the video signal processing unit ex305 using the decoding method described in each of the above embodiments.
- the decoded audio signal and video signal are output from the output unit ex309 to the outside. At the time of output, these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced in synchronization. Also, the television ex300 may read multiplexed data from recording media ex215 and ex216 such as a magnetic / optical disk and an SD card, not from broadcasting. Next, a configuration in which the television ex300 encodes an audio signal or a video signal and transmits the signal to the outside or to a recording medium will be described.
- the television ex300 receives a user operation from the remote controller ex220 and the like, encodes an audio signal with the audio signal processing unit ex304, and converts the video signal with the video signal processing unit ex305 based on the control of the control unit ex310. Encoding is performed using the encoding method described in (1).
- the encoded audio signal and video signal are multiplexed by the multiplexing / demultiplexing unit ex303 and output to the outside. When multiplexing, these signals may be temporarily stored in the buffers ex320, ex321, etc. so that the audio signal and the video signal are synchronized.
- a plurality of buffers ex318, ex319, ex320, and ex321 may be provided as illustrated, or one or more buffers may be shared. Further, in addition to the illustrated example, data may be stored in the buffer as a buffer material that prevents system overflow and underflow, for example, between the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
- the television ex300 has a configuration for receiving AV input of a microphone and a camera, and performs encoding processing on the data acquired from them. Also good.
- the television ex300 has been described as a configuration capable of the above-described encoding processing, multiplexing, and external output, but these processing cannot be performed, and only the above-described reception, decoding processing, and external output are possible. It may be a configuration.
- the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218,
- the reader / recorder ex218 may share with each other.
- FIG. 31 shows a configuration of the information reproducing / recording unit ex400 when data is read from or written to an optical disk.
- the information reproducing / recording unit ex400 includes elements ex401, ex402, ex403, ex404, ex405, ex406, and ex407 described below.
- the optical head ex401 irradiates a laser spot on the recording surface of the recording medium ex215 that is an optical disk to write information, and detects information reflected from the recording surface of the recording medium ex215 to read the information.
- the modulation recording unit ex402 electrically drives a semiconductor laser built in the optical head ex401 and modulates the laser beam according to the recording data.
- the reproduction demodulator ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector built in the optical head ex401, separates and demodulates the signal component recorded on the recording medium ex215, and is necessary To play back information.
- the buffer ex404 temporarily holds information to be recorded on the recording medium ex215 and information reproduced from the recording medium ex215.
- the disk motor ex405 rotates the recording medium ex215.
- the servo control unit ex406 moves the optical head ex401 to a predetermined information track while controlling the rotational drive of the disk motor ex405, and performs a laser spot tracking process.
- the system control unit ex407 controls the entire information reproduction / recording unit ex400.
- the system control unit ex407 uses various types of information held in the buffer ex404, and generates and adds new information as necessary.
- the modulation recording unit ex402, the reproduction demodulation unit This is realized by recording / reproducing information through the optical head ex401 while operating the ex403 and the servo control unit ex406 in a coordinated manner.
- the system control unit ex407 includes, for example, a microprocessor, and executes these processes by executing a read / write program.
- the optical head ex401 has been described as irradiating a laser spot.
- a configuration in which higher-density recording is performed using near-field light may be used.
- FIG. 32 shows a schematic diagram of a recording medium ex215 that is an optical disk.
- Guide grooves grooves
- address information indicating the absolute position on the disc is recorded in advance on the information track ex230 by changing the shape of the groove.
- This address information includes information for specifying the position of the recording block ex231 that is a unit for recording data, and the recording block is specified by reproducing the information track ex230 and reading the address information in a recording or reproducing apparatus.
- the recording medium ex215 includes a data recording area ex233, an inner peripheral area ex232, and an outer peripheral area ex234.
- the area used for recording user data is the data recording area ex233, and the inner circumference area ex232 and the outer circumference area ex234 arranged on the inner or outer circumference of the data recording area ex233 are used for specific purposes other than user data recording. Used.
- the information reproducing / recording unit ex400 reads / writes encoded audio data, video data, or multiplexed data obtained by multiplexing these data with respect to the data recording area ex233 of the recording medium ex215.
- an optical disk such as a single-layer DVD or BD has been described as an example.
- an optical disc with a multi-dimensional recording / reproducing structure such as recording information using light of different wavelengths in the same place on the disc, or recording different layers of information from various angles. It may be.
- the car ex210 having the antenna ex205 can receive data from the satellite ex202 and the like, and the moving image can be reproduced on a display device such as the car navigation ex211 that the car ex210 has.
- the configuration of the car navigation ex211 may be, for example, a configuration in which a GPS receiving unit is added in the configuration illustrated in FIG. 30, and the same may be considered for the computer ex111, the mobile phone ex114, and the like.
- FIG. 33A is a diagram illustrating the mobile phone ex114 using the video decoding method and the video encoding method described in the above embodiment.
- the mobile phone ex114 includes an antenna ex350 for transmitting and receiving radio waves to and from the base station ex110, a camera unit ex365 capable of capturing video and still images, a video captured by the camera unit ex365, a video received by the antenna ex350, and the like Is provided with a display unit ex358 such as a liquid crystal display for displaying the decrypted data.
- the mobile phone ex114 further includes a main body unit having an operation key unit ex366, an audio output unit ex357 such as a speaker for outputting audio, an audio input unit ex356 such as a microphone for inputting audio, a captured video,
- an audio input unit ex356 such as a microphone for inputting audio
- a captured video In the memory unit ex367 for storing encoded data or decoded data such as still images, recorded audio, received video, still images, mails, or the like, or an interface unit with a recording medium for storing data
- a slot ex364 is provided.
- the mobile phone ex114 has a power supply circuit part ex361, an operation input control part ex362, and a video signal processing part ex355 with respect to a main control part ex360 that comprehensively controls each part of the main body including the display part ex358 and the operation key part ex366.
- a camera interface unit ex363, an LCD (Liquid Crystal Display) control unit ex359, a modulation / demodulation unit ex352, a multiplexing / demultiplexing unit ex353, an audio signal processing unit ex354, a slot unit ex364, and a memory unit ex367 are connected to each other via a bus ex370. ing.
- the power supply circuit unit ex361 starts up the mobile phone ex114 in an operable state by supplying power from the battery pack to each unit.
- the cellular phone ex114 converts the audio signal collected by the audio input unit ex356 in the voice call mode into a digital audio signal by the audio signal processing unit ex354 based on the control of the main control unit ex360 having a CPU, a ROM, a RAM, and the like. Then, this is subjected to spectrum spread processing by the modulation / demodulation unit ex352, digital-analog conversion processing and frequency conversion processing are performed by the transmission / reception unit ex351, and then transmitted via the antenna ex350.
- the mobile phone ex114 also amplifies the received data received via the antenna ex350 in the voice call mode, performs frequency conversion processing and analog-digital conversion processing, performs spectrum despreading processing by the modulation / demodulation unit ex352, and performs voice signal processing unit After being converted into an analog audio signal by ex354, this is output from the audio output unit ex357.
- the text data of the e-mail input by operating the operation key unit ex366 of the main unit is sent to the main control unit ex360 via the operation input control unit ex362.
- the main control unit ex360 performs spread spectrum processing on the text data in the modulation / demodulation unit ex352, performs digital analog conversion processing and frequency conversion processing in the transmission / reception unit ex351, and then transmits the text data to the base station ex110 via the antenna ex350.
- almost the reverse process is performed on the received data and output to the display unit ex358.
- the video signal processing unit ex355 compresses the video signal supplied from the camera unit ex365 by the moving image encoding method described in the above embodiments. Encode (that is, function as an image encoding device according to an aspect of the present invention), and send the encoded video data to the multiplexing / demultiplexing unit ex353.
- the audio signal processing unit ex354 encodes the audio signal picked up by the audio input unit ex356 while the camera unit ex365 images a video, a still image, etc., and sends the encoded audio data to the multiplexing / separating unit ex353. To do.
- the multiplexing / demultiplexing unit ex353 multiplexes the encoded video data supplied from the video signal processing unit ex355 and the encoded audio data supplied from the audio signal processing unit ex354 by a predetermined method, and is obtained as a result.
- the multiplexed data is subjected to spread spectrum processing by the modulation / demodulation unit (modulation / demodulation circuit unit) ex352, digital-analog conversion processing and frequency conversion processing by the transmission / reception unit ex351, and then transmitted via the antenna ex350.
- the multiplexing / separating unit ex353 separates the multiplexed data into a video data bit stream and an audio data bit stream, and performs video signal processing on the video data encoded via the synchronization bus ex370.
- the encoded audio data is supplied to the audio signal processing unit ex354 while being supplied to the unit ex355.
- the video signal processing unit ex355 decodes the video signal by decoding using the video decoding method corresponding to the video encoding method described in each of the above embodiments (that is, an image according to an aspect of the present invention).
- video and still images included in the moving image file linked to the home page are displayed from the display unit ex358 via the LCD control unit ex359.
- the audio signal processing unit ex354 decodes the audio signal, and the audio is output from the audio output unit ex357.
- the terminal such as the mobile phone ex114 is referred to as a transmission terminal having only an encoder and a receiving terminal having only a decoder.
- a transmission terminal having only an encoder
- a receiving terminal having only a decoder.
- multiplexed data in which music data or the like is multiplexed with video data is received and transmitted, but data in which character data or the like related to video is multiplexed in addition to audio data It may be video data itself instead of multiplexed data.
- the moving picture encoding method or the moving picture decoding method shown in each of the above embodiments can be used in any of the above-described devices / systems. The described effect can be obtained.
- multiplexed data obtained by multiplexing audio data or the like with video data is configured to include identification information indicating which standard the video data conforms to.
- identification information indicating which standard the video data conforms to.
- FIG. 34 is a diagram showing a structure of multiplexed data.
- multiplexed data is obtained by multiplexing one or more of a video stream, an audio stream, a presentation graphics stream (PG), and an interactive graphics stream.
- the video stream indicates the main video and sub-video of the movie
- the audio stream (IG) indicates the main audio portion of the movie and the sub-audio mixed with the main audio
- the presentation graphics stream indicates the subtitles of the movie.
- the main video indicates a normal video displayed on the screen
- the sub-video is a video displayed on a small screen in the main video.
- the interactive graphics stream indicates an interactive screen created by arranging GUI components on the screen.
- the video stream is encoded by the moving image encoding method or apparatus shown in the above embodiments, or the moving image encoding method or apparatus conforming to the conventional standards such as MPEG-2, MPEG4-AVC, and VC-1. ing.
- the audio stream is encoded by a method such as Dolby AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD, or linear PCM.
- Each stream included in the multiplexed data is identified by PID. For example, 0x1011 for video streams used for movie images, 0x1100 to 0x111F for audio streams, 0x1200 to 0x121F for presentation graphics, 0x1400 to 0x141F for interactive graphics streams, 0x1B00 to 0x1B1F are assigned to video streams used for sub-pictures, and 0x1A00 to 0x1A1F are assigned to audio streams used for sub-audio mixed with the main audio.
- FIG. 35 is a diagram schematically showing how multiplexed data is multiplexed.
- a video stream ex235 composed of a plurality of video frames and an audio stream ex238 composed of a plurality of audio frames are converted into PES packet sequences ex236 and ex239, respectively, and converted into TS packets ex237 and ex240.
- the data of the presentation graphics stream ex241 and interactive graphics ex244 are converted into PES packet sequences ex242 and ex245, respectively, and further converted into TS packets ex243 and ex246.
- the multiplexed data ex247 is configured by multiplexing these TS packets into one stream.
- FIG. 36 shows in more detail how the video stream is stored in the PES packet sequence.
- the first row in FIG. 36 shows a video frame sequence of the video stream.
- the second level shows a PES packet sequence.
- a plurality of Video Presentation Units in the video stream are divided into pictures, B pictures, and P pictures, and are stored in the payload of the PES packet.
- Each PES packet has a PES header, and a PTS (Presentation Time-Stamp) that is a display time of a picture and a DTS (Decoding Time-Stamp) that is a decoding time of a picture are stored in the PES header.
- PTS Presentation Time-Stamp
- DTS Decoding Time-Stamp
- FIG. 37 shows the format of TS packets that are finally written in the multiplexed data.
- the TS packet is a 188-byte fixed-length packet composed of a 4-byte TS header having information such as a PID for identifying a stream and a 184-byte TS payload for storing data.
- the PES packet is divided and stored in the TS payload.
- a 4-byte TP_Extra_Header is added to a TS packet, forms a 192-byte source packet, and is written in multiplexed data.
- TP_Extra_Header information such as ATS (Arrival_Time_Stamp) is described.
- ATS indicates the transfer start time of the TS packet to the PID filter of the decoder.
- Source packets are arranged in the multiplexed data as shown in the lower part of FIG. 37, and the number incremented from the head of the multiplexed data is called SPN (source packet number).
- TS packets included in the multiplexed data include PAT (Program Association Table), PMT (Program Map Table), PCR (Program Clock Reference), and the like in addition to each stream such as video / audio / caption.
- PAT indicates what the PID of the PMT used in the multiplexed data is, and the PID of the PAT itself is registered as 0.
- the PMT has the PID of each stream such as video / audio / subtitles included in the multiplexed data and the attribute information of the stream corresponding to each PID, and has various descriptors related to the multiplexed data.
- the descriptor includes copy control information for instructing permission / non-permission of copying of multiplexed data.
- the PCR corresponds to the ATS in which the PCR packet is transferred to the decoder. Contains STC time information.
- FIG. 38 is a diagram for explaining the data structure of the PMT in detail.
- a PMT header describing the length of data included in the PMT is arranged at the head of the PMT.
- a plurality of descriptors related to multiplexed data are arranged.
- the copy control information and the like are described as descriptors.
- a plurality of pieces of stream information regarding each stream included in the multiplexed data are arranged.
- the stream information includes a stream descriptor in which a stream type, a stream PID, and stream attribute information (frame rate, aspect ratio, etc.) are described to identify a compression codec of the stream.
- the multiplexed data is recorded together with the multiplexed data information file.
- the multiplexed data information file is management information of multiplexed data, has a one-to-one correspondence with the multiplexed data, and includes multiplexed data information, stream attribute information, and an entry map.
- the multiplexed data information is composed of a system rate, a reproduction start time, and a reproduction end time.
- the system rate indicates a maximum transfer rate of multiplexed data to a PID filter of a system target decoder described later.
- the ATS interval included in the multiplexed data is set to be equal to or less than the system rate.
- the playback start time is the PTS of the first video frame of the multiplexed data
- the playback end time is set by adding the playback interval for one frame to the PTS of the video frame at the end of the multiplexed data.
- attribute information about each stream included in the multiplexed data is registered for each PID.
- the attribute information has different information for each video stream, audio stream, presentation graphics stream, and interactive graphics stream.
- the video stream attribute information includes the compression codec used to compress the video stream, the resolution of the individual picture data constituting the video stream, the aspect ratio, and the frame rate. It has information such as how much it is.
- the audio stream attribute information includes the compression codec used to compress the audio stream, the number of channels included in the audio stream, the language supported, and the sampling frequency. With information. These pieces of information are used for initialization of the decoder before the player reproduces it.
- the stream type included in the PMT is used.
- video stream attribute information included in the multiplexed data information is used.
- the video encoding shown in each of the above embodiments for the stream type or video stream attribute information included in the PMT.
- FIG. 41 shows the steps of the moving picture decoding method according to the present embodiment.
- step exS100 the stream type included in the PMT or the video stream attribute information included in the multiplexed data information is acquired from the multiplexed data.
- step exS101 it is determined whether or not the stream type or the video stream attribute information indicates multiplexed data generated by the moving picture encoding method or apparatus described in the above embodiments. To do.
- step exS102 the above embodiments are performed. Decoding is performed by the moving picture decoding method shown in the form.
- the conventional information Decoding is performed by a moving image decoding method compliant with the standard.
- FIG. 42 shows a configuration of LSI ex500 that is made into one chip.
- the LSI ex500 includes elements ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508, and ex509 described below, and each element is connected via a bus ex510.
- the power supply circuit unit ex505 is activated to an operable state by supplying power to each unit when the power supply is on.
- the LSI ex500 uses the AV I / O ex509 to perform the microphone ex117 and the camera ex113 based on the control of the control unit ex501 including the CPU ex502, the memory controller ex503, the stream controller ex504, the driving frequency control unit ex512, and the like.
- the AV signal is input from the above.
- the input AV signal is temporarily stored in an external memory ex511 such as SDRAM.
- the accumulated data is divided into a plurality of times as appropriate according to the processing amount and the processing speed and sent to the signal processing unit ex507, and the signal processing unit ex507 encodes an audio signal and / or video. Signal encoding is performed.
- the encoding process of the video signal is the encoding process described in the above embodiments.
- the signal processing unit ex507 further performs processing such as multiplexing the encoded audio data and the encoded video data according to circumstances, and outputs the result from the stream I / Oex 506 to the outside.
- the output multiplexed data is transmitted to the base station ex107 or written to the recording medium ex215. It should be noted that data should be temporarily stored in the buffer ex508 so as to be synchronized when multiplexing.
- the memory ex511 is described as an external configuration of the LSI ex500.
- a configuration included in the LSI ex500 may be used.
- the number of buffers ex508 is not limited to one, and a plurality of buffers may be provided.
- the LSI ex500 may be made into one chip or a plurality of chips.
- control unit ex501 includes the CPU ex502, the memory controller ex503, the stream controller ex504, the drive frequency control unit ex512, and the like, but the configuration of the control unit ex501 is not limited to this configuration.
- the signal processing unit ex507 may further include a CPU.
- the CPU ex502 may be configured to include a signal processing unit ex507 or, for example, an audio signal processing unit that is a part of the signal processing unit ex507.
- the control unit ex501 is configured to include a signal processing unit ex507 or a CPU ex502 having a part thereof.
- LSI LSI
- IC system LSI
- super LSI ultra LSI depending on the degree of integration
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- Such a programmable logic device typically loads or reads a program constituting software or firmware from a memory or the like, so that the moving image encoding method or the moving image described in each of the above embodiments is used.
- An image decoding method can be performed.
- FIG. 43 shows a configuration ex800 in the present embodiment.
- the drive frequency switching unit ex803 sets the drive frequency high when the video data is generated by the moving image encoding method or apparatus described in the above embodiments.
- the decoding processing unit ex801 that executes the moving picture decoding method described in each of the above embodiments is instructed to decode the video data.
- the video data is video data compliant with the conventional standard, compared to the case where the video data is generated by the moving picture encoding method or apparatus shown in the above embodiments, Set the drive frequency low. Then, it instructs the decoding processing unit ex802 compliant with the conventional standard to decode the video data.
- the drive frequency switching unit ex803 includes the CPU ex502 and the drive frequency control unit ex512 in FIG.
- the decoding processing unit ex801 that executes the moving picture decoding method shown in each of the above embodiments and the decoding processing unit ex802 that complies with the conventional standard correspond to the signal processing unit ex507 in FIG.
- the CPU ex502 identifies which standard the video data conforms to.
- the drive frequency control unit ex512 sets the drive frequency.
- the signal processing unit ex507 decodes the video data.
- the identification information described in the sixth embodiment can be used for identifying the video data.
- the identification information is not limited to that described in the sixth embodiment, and any information that can identify which standard the video data conforms to may be used. For example, it is possible to identify which standard the video data conforms to based on an external signal that identifies whether the video data is used for a television or a disk. In some cases, identification may be performed based on such an external signal.
- the selection of the driving frequency in the CPU ex502 may be performed based on, for example, a lookup table in which video data standards and driving frequencies are associated with each other as shown in FIG. The look-up table is stored in the buffer ex508 or the internal memory of the LSI, and the CPU ex502 can select the drive frequency by referring to the look-up table.
- FIG. 44 shows steps for executing the method of the present embodiment.
- the signal processing unit ex507 acquires identification information from the multiplexed data.
- the CPU ex502 identifies whether the video data is generated by the encoding method or apparatus described in each of the above embodiments based on the identification information.
- the CPU ex502 sends a signal for setting the drive frequency high to the drive frequency control unit ex512. Then, the drive frequency control unit ex512 sets a high drive frequency.
- step exS203 the CPU ex502 drives the signal for setting the drive frequency low. This is sent to the frequency control unit ex512. Then, in the drive frequency control unit ex512, the drive frequency is set to be lower than that in the case where the video data is generated by the encoding method or apparatus described in the above embodiments.
- the power saving effect can be further enhanced by changing the voltage applied to the LSI ex500 or the device including the LSI ex500 in conjunction with the switching of the driving frequency. For example, when the drive frequency is set low, it is conceivable that the voltage applied to the LSI ex500 or the device including the LSI ex500 is set low as compared with the case where the drive frequency is set high.
- the setting method of the driving frequency may be set to a high driving frequency when the processing amount at the time of decoding is large, and to a low driving frequency when the processing amount at the time of decoding is small. It is not limited to the method.
- the amount of processing for decoding video data compliant with the MPEG4-AVC standard is larger than the amount of processing for decoding video data generated by the moving picture encoding method or apparatus described in the above embodiments. It is conceivable that the setting of the driving frequency is reversed to that in the case described above.
- the method for setting the drive frequency is not limited to the configuration in which the drive frequency is lowered.
- the voltage applied to the LSIex500 or the apparatus including the LSIex500 is set high.
- the driving of the CPU ex502 is stopped.
- the CPU ex502 is temporarily stopped because there is room in processing. Is also possible. Even when the identification information indicates that the video data is generated by the moving image encoding method or apparatus described in each of the above embodiments, if there is a margin for processing, the CPU ex502 is temporarily driven. It can also be stopped. In this case, it is conceivable to set the stop time shorter than in the case where the video data conforms to the conventional standards such as MPEG-2, MPEG4-AVC, and VC-1.
- a plurality of video data that conforms to different standards may be input to the above-described devices and systems such as a television and a mobile phone.
- the signal processing unit ex507 of the LSI ex500 needs to support a plurality of standards in order to be able to decode even when a plurality of video data complying with different standards is input.
- the signal processing unit ex507 corresponding to each standard is used individually, there is a problem that the circuit scale of the LSI ex500 increases and the cost increases.
- a decoding processing unit for executing the moving picture decoding method shown in each of the above embodiments and a decoding conforming to a standard such as MPEG-2, MPEG4-AVC, or VC-1
- the processing unit is partly shared.
- An example of this configuration is shown as ex900 in FIG. 46A.
- the moving picture decoding method shown in each of the above embodiments and the moving picture decoding method compliant with the MPEG4-AVC standard are processed in processes such as entropy coding, inverse quantization, deblocking filter, and motion compensation. Some contents are common.
- the decoding processing unit ex902 corresponding to the MPEG4-AVC standard is shared, and for other processing contents specific to one aspect of the present invention that do not correspond to the MPEG4-AVC standard, a dedicated decoding processing unit A configuration using ex901 is conceivable.
- a dedicated decoding processing unit ex901 is used for picture division processing, and other dequantization, entropy decoding, It is conceivable to share a decoding processing unit for any of the deblocking filter, motion compensation, or all processes.
- the decoding processing unit for executing the moving picture decoding method described in each of the above embodiments is shared, and the processing content specific to the MPEG4-AVC standard As for, a configuration using a dedicated decoding processing unit may be used.
- ex1000 in FIG. 46B shows another example in which processing is partially shared.
- a dedicated decoding processing unit ex1001 corresponding to the processing content specific to one aspect of the present invention
- a dedicated decoding processing unit ex1002 corresponding to the processing content specific to another conventional standard
- a common decoding processing unit ex1003 corresponding to the processing contents common to the moving image decoding method according to the above and other conventional moving image decoding methods.
- the dedicated decoding processing units ex1001 and ex1002 are not necessarily specialized in one aspect of the present invention or processing content specific to other conventional standards, and can execute other general-purpose processing. Also good.
- the configuration of the present embodiment can be implemented by LSI ex500.
- the processing content common to the moving picture decoding method according to one aspect of the present invention and the moving picture decoding method of the conventional standard reduces the circuit scale of the LSI by sharing the decoding processing unit, In addition, the cost can be reduced.
- the present invention can be applied to an image encoding method, an image decoding method, an image encoding device, and an image decoding device.
- the present invention can also be used for high-resolution information display devices or imaging devices such as televisions, digital video recorders, car navigation systems, mobile phones, digital cameras, and digital video cameras that include an image encoding device.
- DESCRIPTION OF SYMBOLS 100 Image coding apparatus 101 Input image signal 105 Subtractor 106 Residual signal 110 Conversion part 111 Conversion coefficient 120 Quantization part 121,291 Quantization coefficient 130,230 Inverse conversion part 131,231 Residual signal 140,240 Adder 141 151, 161, 171, 241, 251, 261, 271 Decoded image signal 150, 250 Deblocking filter 160, 260 Adaptive loop filter 170, 270 Reference frame buffer 180, 280 Prediction unit 181, 281 Prediction signal 190 Entropy coding Unit 191, 201 encoded signal 200 image decoding device 290 entropy decoding unit 300, 310, 330, 340, 350, 360, 370, 390, 400, 410, 420, 500 picture 301, 302, 311, 312 313, 314, 321, 381 Line 320, 380 Slice header 331, 332, 333, 341, 342, 343, 344, 351, 354, 361, 362, 363, 364, 365, 371, 37
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
"Wavefront Parallel Processing for HEVC Encoding and Decoding" by C.Gordon et al., no. JCTVC-F274-v2, from the Meeting in Torino, July 2011 "Tiles" by A.Fuldseth et al., no. JCTVC-F355-v1, from the Meeting in Torino, July 2011 JCTVC-J1003_d7, "High efficiency video coding (HEVC) text specification draft 8" of July 2012
本発明者は、「背景技術」の欄において記載した、画像符号化方法及び画像復号方法に関し、以下の問題が生じることを見出した。
本実施の形態1に係る画像符号化方法及び画像復号方法では、CABAC初期化を明示するインジケータを追加する。
実施の形態1により、WPP及び依存スライスなどの並列LCU行処理の効率的な処理が実現できる。一方で、新たなシンタックス要素が、スライスヘッダに組み込まれる。これに対して、新たなシンタックス要素の追加を避けるため、初期化ルールを修正することにより、並列処理中のスライスに対するCABAC初期化の独立性も達成してよい。
本実施の形態では、WPP処理の際の依存スライスに対するCABAC初期化方法を変更する。具体的には、依存スライスに対する親スライスの割り当てルールを変更する。
本実施の形態では、WPPではなくタイルを用いる場合について説明する。
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
上記各実施の形態で示した動画像符号化方法または装置と、MPEG-2、MPEG4-AVC、VC-1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図42に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
101 入力画像信号
105 減算器
106 残差信号
110 変換部
111 変換係数
120 量子化部
121、291 量子化係数
130、230 逆変換部
131、231 残差信号
140、240 加算器
141、151、161、171、241、251、261、271 復号画像信号
150、250 デブロッキングフィルタ
160、260 適応的ループフィルタ
170、270 参照フレームバッファ
180、280 予測部
181、281 予測信号
190 エントロピー符号化部
191、201 符号化信号
200 画像復号装置
290 エントロピー復号部
300、310、330、340、350、360、370、390、400、410、420、500 ピクチャ
301、302、311、312、313、314、321、381 行
320、380 スライスヘッダ
331、332、333、341、342、343、344、351、354、361、362、363、364、365、371、372、373、374、391、392、393、394、401、402、403、404、411、412、413、414、415、421、422、423、424、521、522、523、524 スライス
501、502、511、512 タイル
513 境界
Claims (19)
- 画像が複数のタイルに分割されるとともに複数のスライスに分割されて符号化された符号化信号を含むビットストリームを復号する画像復号方法であって、
前記符号化信号を復号する復号ステップを含み、
前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、
通常スライスが第1タイルの先頭以外から始まる場合、当該第1タイルの次に符号化された第2タイルは依存スライスから始まらない
画像復号方法。 - 前記復号ステップでは、
前記第1タイル及び前記第2タイルを並列復号し、
前記第2タイルの復号を開始する際に、前記第1タイルにおけるスライス構造を示す分割情報を参照せずに、前記第2タイルを復号する
請求項1記載の画像復号方法。 - 第3タイルの先頭が前記依存スライスである場合、当該依存スライスは前記第3タイル全体を含む
請求項1又は2記載の画像復号方法。 - 前記第1タイルが、前記第1タイルの先頭以外から始まるスライスを含む場合、前記第2タイルは依存スライスから始まらない
請求項1~3のいずれか1項に記載の画像復号方法。 - 前記画像復号方法は、さらに、
スライスが通常スライスであるか依存スライスであるかを示す情報をスライスヘッダから取得するステップを含む
請求項1~4のいずれか1項に記載の画像復号方法。 - 前記画像の先頭スライスは通常スライスであり、他の全てのスライスは依存スライスである
請求項1~5のいずれか1項に記載の画像復号方法。 - 前記画像復号方法は、さらに、
ピクチャの分割が制限されていることを示す制限インジケータを前記ビットストリームから取得するステップを含む
請求項1~6のいずれか1項に記載の画像復号方法。 - 前記画像復号方法は、さらに、
前記依存スライスにスライスヘッダが用いられる親スライスがタイル先頭から始まるか否かを示すインジケータを前記ビットストリームから取得するステップを含む
請求項1~7のいずれか1項に記載の画像復号方法。 - 画像を複数のタイルに分割するとともに複数のスライスに分割して符号化することでビットストリームを生成する画像符号化方法であって、
前記画像を複数のタイルに分割するとともに複数のスライスに分割する分割ステップと、
分割された複数のタイル及び複数のスライスを符号化する符号化ステップとを含み、
前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、
前記分割ステップでは、通常スライスが第1タイルの先頭以外から始まる場合、当該第1タイルの次に符号化された第2タイルは依存スライスから始まらないように、前記画像を複数のタイルに分割するとともに複数のスライスに分割する
画像符号化方法。 - 前記分割ステップでは、
画像復号装置において前記第1タイル及び前記第2タイルを並列復号する場合において、当該画像復号装置が前記第2タイルの復号を開始する際に、前記第1タイルにおけるスライス構造を示す分割情報を参照せずに、前記第2タイルを復号できるように前記画像を前記複数のタイル及び前記複数のスライスに分割する
請求項9記載の画像符号化方法。 - 前記分割ステップでは、第3タイルの先頭が前記依存スライスである場合、当該依存スライスは前記第3タイル全体を含むように、前記画像を複数のタイルに分割するとともに複数のスライスに分割する
請求項9又は10記載の画像符号化方法。 - 前記分割ステップでは、前記第1タイルが、前記第1タイルの先頭以外から始まるスライスを含む場合、前記第2タイルは依存スライスから始まらないように、前記画像を複数のタイルに分割するとともに複数のスライスに分割する
請求項9~11のいずれか1項に記載の画像符号化方法。 - 前記画像符号化方法は、さらに、
スライスが通常スライスであるか依存スライスであるかを示す情報をスライスヘッダに埋め込むステップを含む
請求項9~12のいずれか1項に記載の画像符号化方法。 - 前記画像の先頭スライスは通常スライスであり、他の全てのスライスは依存スライスである
請求項9~13のいずれか1項に記載の画像符号化方法。 - 前記画像符号化方法は、さらに、
ピクチャの分割が制限されていることを示す制限インジケータを前記ビットストリームに埋め込むステップを含む
請求項9~14のいずれか1項に記載の画像符号化方法。 - 前記画像符号化方法は、さらに、
前記依存スライスにスライスヘッダが用いられる親スライスがタイル先頭から始まるか否かを示すインジケータを前記ビットストリームに埋め込むステップを含む
請求項9~15のいずれか1項に記載の画像符号化方法。 - 画像が複数のタイルに分割されるとともに複数のスライスに分割されて符号化された符号化信号を含むビットストリームを復号する画像復号装置であって、
前記符号化信号を復号する復号部を備え、
前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、
通常スライスが第1タイルの先頭以外から始まる場合、当該第1タイルの次に符号化された第2タイルは依存スライスから始まらない
画像復号装置。 - 画像を複数のタイルに分割するとともに複数のスライスに分割して符号化することでビットストリームを生成する画像符号化装置であって、
前記画像を複数のタイルに分割するとともに複数のスライスに分割する分割部と、
分割された複数のタイル及び複数のスライスを符号化する符号化部とを備え、
前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、
前記分割部は、通常スライスが第1タイルの先頭以外から始まる場合、当該第1タイルの次に符号化された第2タイルは依存スライスから始まらないように、前記画像を複数のタイルを分割するとともに複数のスライスに分割する
画像符号化装置。 - 請求項18記載の画像符号化装置と、
請求項17記載の画像復号装置とを備える
画像符号化復号装置。
Priority Applications (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014514656A JP5608839B2 (ja) | 2012-09-26 | 2013-09-05 | 画像復号方法、及び画像復号装置 |
RU2015106415A RU2639679C2 (ru) | 2012-09-26 | 2013-09-05 | Способ декодирования изображения, способ кодирования изображения, устройство декодирования изображения, устройство кодирования изображения и устройство кодирования и декодирования изображения |
ES13842930T ES2915051T3 (es) | 2012-09-26 | 2013-09-05 | Procedimiento de codificación de imágenes, procedimiento de decodificación de imágenes |
PL13842930.3T PL2903270T3 (pl) | 2012-09-26 | 2013-09-05 | Sposób kodowania obrazów, sposób dekodowania obrazów |
MYPI2015000472A MY182530A (en) | 2012-09-26 | 2013-09-05 | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
BR112015004216-3A BR112015004216B1 (pt) | 2012-09-26 | 2013-09-05 | Método de decodificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação de imagem |
MX2015002891A MX345003B (es) | 2012-09-26 | 2013-09-05 | Metodo de decodificacion de imagen, metodo de codificacion de imagen, aparato de decodificacion de imagen, aparato de codificacion de imagen y aparato de codificacion y decodificacion de imagen. |
EP13842930.3A EP2903270B1 (en) | 2012-09-26 | 2013-09-05 | Image encoding method, image decoding method |
CA2882731A CA2882731C (en) | 2012-09-26 | 2013-09-05 | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
EP22161531.3A EP4033764B1 (en) | 2012-09-26 | 2013-09-05 | Image encoding apparatus, image decoding apparatus and storage medium |
EP23172593.8A EP4224858A1 (en) | 2012-09-26 | 2013-09-05 | Image encoding computer program, image decoding computer program and storage medium |
CN201380044687.2A CN104584555B (zh) | 2012-09-26 | 2013-09-05 | 图像解码方法、图像解码装置 |
AU2013322041A AU2013322041B2 (en) | 2012-09-26 | 2013-09-05 | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
SG11201501400QA SG11201501400QA (en) | 2012-09-26 | 2013-09-05 | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
KR1020157004659A KR101918808B1 (ko) | 2012-09-26 | 2013-09-05 | 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치 및 화상 부호화 복호 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261705891P | 2012-09-26 | 2012-09-26 | |
US61/705,891 | 2012-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014049980A1 true WO2014049980A1 (ja) | 2014-04-03 |
Family
ID=50338836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/005269 WO2014049980A1 (ja) | 2012-09-26 | 2013-09-05 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置及び画像符号化復号装置 |
Country Status (17)
Country | Link |
---|---|
US (9) | US9036697B2 (ja) |
EP (3) | EP2903270B1 (ja) |
JP (2) | JP5608839B2 (ja) |
KR (1) | KR101918808B1 (ja) |
CN (2) | CN108881921B (ja) |
AR (1) | AR092660A1 (ja) |
AU (1) | AU2013322041B2 (ja) |
BR (1) | BR112015004216B1 (ja) |
CA (1) | CA2882731C (ja) |
ES (2) | ES2962366T3 (ja) |
MX (1) | MX345003B (ja) |
MY (1) | MY182530A (ja) |
PL (2) | PL4033764T3 (ja) |
RU (1) | RU2639679C2 (ja) |
SG (1) | SG11201501400QA (ja) |
TW (1) | TWI580255B (ja) |
WO (1) | WO2014049980A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100798188B1 (ko) * | 2002-04-16 | 2008-01-24 | 도요 세이칸 가부시키가이샤 | 커버용 밀봉재 및 이를 사용한 커버의 제조방법 |
US9621905B2 (en) * | 2012-06-29 | 2017-04-11 | Qualcomm Incorporated | Tiles and wavefront parallel processing |
ES2962366T3 (es) * | 2012-09-26 | 2024-03-18 | Sun Patent Trust | Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento |
WO2014050038A1 (ja) * | 2012-09-26 | 2014-04-03 | パナソニック株式会社 | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、および、画像符号化復号装置 |
GB2519745B (en) * | 2013-10-22 | 2018-04-18 | Canon Kk | Method of processing disordered frame portion data units |
CN106210729A (zh) * | 2015-05-06 | 2016-12-07 | 扬智科技股份有限公司 | 视频流解码系统及视频流解码方法 |
US10027989B2 (en) * | 2015-05-06 | 2018-07-17 | Integrated Device Technology, Inc. | Method and apparatus for parallel decoding |
CN106331722B (zh) | 2015-07-03 | 2019-04-26 | 华为技术有限公司 | 图像预测方法和相关设备 |
US20170105010A1 (en) * | 2015-10-09 | 2017-04-13 | Microsoft Technology Licensing, Llc | Receiver-side modifications for reduced video latency |
CN107301621B (zh) * | 2017-06-13 | 2020-06-16 | 东南大学 | 一种提高数字图像分辨率的方法 |
KR20190024212A (ko) * | 2017-08-31 | 2019-03-08 | 세종대학교산학협력단 | 타일 구조의 구성 방법 및 이의 장치 |
CN111771379B (zh) | 2018-01-25 | 2022-10-11 | 弗劳恩霍夫应用研究促进协会 | 有效子图片提取 |
JP6982253B2 (ja) * | 2018-10-31 | 2021-12-17 | 日本電信電話株式会社 | 復号装置、符号化装置、復号方法、符号化方法、及びプログラム |
JPWO2020116630A1 (ja) * | 2018-12-07 | 2021-10-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 復号装置及び復号方法 |
CN113228671B (zh) | 2018-12-28 | 2022-12-02 | 华为技术有限公司 | 通过将图像划分成包括图块的条带对图像进行译码的设备和方法及计算机可读存储介质 |
EP3935835A4 (en) * | 2019-03-08 | 2022-12-14 | Telefonaktiebolaget Lm Ericsson (Publ) | METHODS OF PROVIDING DEPENDENT/INDEPENDENT SCORE ENCODING/DECODING AND ASSOCIATED DEVICES |
CN113785575A (zh) * | 2019-03-21 | 2021-12-10 | 佳稳电子有限公司 | 处理图片分割的影像编码方法、影像解码方法及其装置 |
CN118474378A (zh) * | 2019-05-21 | 2024-08-09 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法、解码方法和非暂时性的计算机可读取介质 |
CN113875249A (zh) * | 2019-09-20 | 2021-12-31 | 韩国电子通信研究院 | 图像编码/解码方法和设备以及存储比特流的记录介质 |
WO2021087843A1 (en) * | 2019-11-07 | 2021-05-14 | Intel Corporation | Heterogeneous real-time streaming and decoding of ultra-high resolution video content |
KR102708658B1 (ko) | 2019-12-26 | 2024-09-24 | 바이트댄스 아이엔씨 | 비디오 코딩에서의 프로필, 티어 및 계층 표시 |
JP7425878B2 (ja) | 2019-12-26 | 2024-01-31 | バイトダンス インコーポレイテッド | レイヤ化されたビデオにおける復号ピクチャバッファパラメータのシグナリング |
WO2021134054A1 (en) | 2019-12-27 | 2021-07-01 | Bytedance Inc. | Subpicture signaling in video coding |
JP7428808B2 (ja) | 2020-01-09 | 2024-02-06 | バイトダンス インコーポレイテッド | 高レベルシンタックス指示のシグナリング |
CN116195256A (zh) * | 2020-03-20 | 2023-05-30 | 寰发股份有限公司 | 图片和视频编解码中以信号通知片和切片分区信息的方法和装置 |
CN111726626B (zh) * | 2020-06-18 | 2022-05-03 | 格兰菲智能科技有限公司 | 集成电路及用于视频解码的概率表存储方法 |
US20220180567A1 (en) * | 2020-12-04 | 2022-06-09 | Tencent America LLC | Method and apparatus for point cloud coding |
US11611775B2 (en) | 2021-01-19 | 2023-03-21 | Tencent America LLC | Method and apparatus for point cloud coding |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12016A (en) * | 1854-11-28 | Improvement in machinery for making rope and cordage | ||
JP4015934B2 (ja) * | 2002-04-18 | 2007-11-28 | 株式会社東芝 | 動画像符号化方法及び装置 |
CA2633637C (en) * | 2006-01-05 | 2014-06-17 | Nippon Telegraph And Telephone Corporation | Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs |
US9313515B2 (en) * | 2007-05-16 | 2016-04-12 | Thomson Licensing | Methods and apparatus for the use of slice groups in encoding multi-view video coding (MVC) information |
US8705879B2 (en) * | 2009-04-01 | 2014-04-22 | Microsoft Corporation | Image compression acceleration using multiple processors |
US8344917B2 (en) * | 2010-09-30 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Methods and systems for context initialization in video coding and decoding |
US9525884B2 (en) * | 2010-11-02 | 2016-12-20 | Hfi Innovation Inc. | Method and apparatus of slice boundary filtering for high efficiency video coding |
US10244239B2 (en) * | 2010-12-28 | 2019-03-26 | Dolby Laboratories Licensing Corporation | Parameter set for picture segmentation |
US9300976B2 (en) * | 2011-01-14 | 2016-03-29 | Cisco Technology, Inc. | Video encoder/decoder, method and computer program product that process tiles of video data |
US9325999B2 (en) * | 2011-03-10 | 2016-04-26 | Sharp Kabushiki Kaisha | Video decoder for slices |
US20120230399A1 (en) * | 2011-03-10 | 2012-09-13 | Christopher Andrew Segall | Video decoder parallelization including a bitstream signal |
GB2488830B (en) * | 2011-03-10 | 2015-07-29 | Canon Kk | Method and device for encoding image data and method and device for decoding image data |
US8995523B2 (en) * | 2011-06-03 | 2015-03-31 | Qualcomm Incorporated | Memory efficient context modeling |
JP2013098735A (ja) * | 2011-10-31 | 2013-05-20 | Canon Inc | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
US9077998B2 (en) | 2011-11-04 | 2015-07-07 | Qualcomm Incorporated | Padding of segments in coded slice NAL units |
US9124895B2 (en) | 2011-11-04 | 2015-09-01 | Qualcomm Incorporated | Video coding with network abstraction layer units that include multiple encoded picture partitions |
SG10201505819XA (en) * | 2012-01-30 | 2015-09-29 | Samsung Electronics Co Ltd | Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area |
DK2866439T3 (da) * | 2012-06-26 | 2020-12-14 | Lg Electronics Inc | Videodekodningsfremgangsmåde og videokodningsfremgangsmåde |
ES2962366T3 (es) * | 2012-09-26 | 2024-03-18 | Sun Patent Trust | Aparato de codificación de imágenes, aparato de decodificación de imágenes y medio de almacenamiento |
-
2013
- 2013-09-05 ES ES22161531T patent/ES2962366T3/es active Active
- 2013-09-05 PL PL22161531.3T patent/PL4033764T3/pl unknown
- 2013-09-05 JP JP2014514656A patent/JP5608839B2/ja active Active
- 2013-09-05 AU AU2013322041A patent/AU2013322041B2/en active Active
- 2013-09-05 PL PL13842930.3T patent/PL2903270T3/pl unknown
- 2013-09-05 CN CN201810768049.XA patent/CN108881921B/zh active Active
- 2013-09-05 RU RU2015106415A patent/RU2639679C2/ru active
- 2013-09-05 SG SG11201501400QA patent/SG11201501400QA/en unknown
- 2013-09-05 KR KR1020157004659A patent/KR101918808B1/ko active IP Right Grant
- 2013-09-05 CN CN201380044687.2A patent/CN104584555B/zh active Active
- 2013-09-05 MX MX2015002891A patent/MX345003B/es active IP Right Grant
- 2013-09-05 BR BR112015004216-3A patent/BR112015004216B1/pt active IP Right Grant
- 2013-09-05 EP EP13842930.3A patent/EP2903270B1/en active Active
- 2013-09-05 MY MYPI2015000472A patent/MY182530A/en unknown
- 2013-09-05 EP EP23172593.8A patent/EP4224858A1/en active Pending
- 2013-09-05 EP EP22161531.3A patent/EP4033764B1/en active Active
- 2013-09-05 CA CA2882731A patent/CA2882731C/en active Active
- 2013-09-05 WO PCT/JP2013/005269 patent/WO2014049980A1/ja active Application Filing
- 2013-09-05 ES ES13842930T patent/ES2915051T3/es active Active
- 2013-09-19 US US14/031,169 patent/US9036697B2/en active Active
- 2013-09-24 AR ARP130103411A patent/AR092660A1/es active IP Right Grant
- 2013-09-24 TW TW102134283A patent/TWI580255B/zh active
-
2014
- 2014-09-01 JP JP2014177525A patent/JP6191920B2/ja active Active
-
2015
- 2015-04-09 US US14/682,298 patent/US9277229B2/en active Active
-
2016
- 2016-01-21 US US15/003,351 patent/US9602825B2/en active Active
- 2016-01-21 US US15/003,226 patent/US9414077B2/en active Active
- 2016-12-30 US US15/394,998 patent/US9948942B2/en active Active
-
2018
- 2018-03-08 US US15/915,489 patent/US10397593B2/en active Active
-
2019
- 2019-07-09 US US16/506,359 patent/US10992944B2/en active Active
-
2021
- 2021-03-24 US US17/210,921 patent/US11871019B2/en active Active
-
2023
- 2023-11-16 US US18/511,115 patent/US20240089480A1/en active Pending
Non-Patent Citations (9)
Title |
---|
"High efficiency video coding (HEVC) text specification draft 8", JCTVC-J1003_D7, July 2012 (2012-07-01) |
A. FULDSETH ET AL.: "Tiles", JCTVC-F355-VL, FROM THE MEETING IN TORINO, July 2011 (2011-07-01) |
C. GORDON ET AL.: "Wavefront Parallel Processing for HEVC Encoding and Decoding", JCTVC-F274-V2, FROM THE MEETING IN TORINO, July 2011 (2011-07-01) |
M. ALVAREZ-MESA ET AL.: "Parallel video decoding in the emerging HEVC standard", 2012 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING (ICASSP), March 2012 (2012-03-01), pages 1545 - 1548, XP032227426 * |
MUHAMMED COBAN ET AL.: "On tiles and wavefront parallel processing", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCTVC-J0123, 10TH MEETING, July 2012 (2012-07-01), STOCKHOLM, SE, pages 1 - 6, XP030053779 * |
See also references of EP2903270A4 |
SEMIH ESENLIK ET AL.: "AHG4: Dependent slices restriction", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/ IEC JTC 1/SC 29/WG 11, JCTVC-K0183, LLTH MEETING, October 2012 (2012-10-01), SHANGHAI, CN, pages 1 - 6, XP030113065 * |
T. SCHIERL: "Dependent Slices", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCTVC-I0229R1, 9TH MEETING, April 2012 (2012-04-01), GENEVA, CH, pages 1 - 8, XP030111992 * |
TAMMY LEE ET AL.: "On dependent slices", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/ IEC JTC 1/SC 29/WG 11, JCTVC-J0217_RL, 10TH MEETING, July 2012 (2012-07-01), STOCKHOLM, SE, pages 1 - 7, XP030112579 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6558784B2 (ja) | 方法、装置、および媒体 | |
JP6191920B2 (ja) | 画像符号化方法、及び画像符号化装置 | |
JP6124221B2 (ja) | 画像復号方法、画像符号化方法、画像復号装置及び画像符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2014514656 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13842930 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013842930 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2882731 Country of ref document: CA |
|
ENP | Entry into the national phase |
Ref document number: 20157004659 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2013322041 Country of ref document: AU Date of ref document: 20130905 Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2015/002891 Country of ref document: MX |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112015004216 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 2015106415 Country of ref document: RU Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 112015004216 Country of ref document: BR Kind code of ref document: A2 Effective date: 20150226 |