WO2014057832A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- Publication number
- WO2014057832A1 WO2014057832A1 PCT/JP2013/076486 JP2013076486W WO2014057832A1 WO 2014057832 A1 WO2014057832 A1 WO 2014057832A1 JP 2013076486 W JP2013076486 W JP 2013076486W WO 2014057832 A1 WO2014057832 A1 WO 2014057832A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- file
- data
- image
- startcode
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 196
- 238000000034 method Methods 0.000 title abstract description 162
- 239000000872 buffer Substances 0.000 claims abstract description 165
- 239000000945 filler Substances 0.000 claims abstract description 106
- 230000003139 buffering effect Effects 0.000 claims description 10
- 238000003672 processing method Methods 0.000 claims description 8
- 230000000153 supplemental effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 110
- 230000015654 memory Effects 0.000 description 81
- 230000006870 function Effects 0.000 description 79
- 230000003044 adaptive effect Effects 0.000 description 78
- 238000005516 engineering process Methods 0.000 description 52
- 238000010586 diagram Methods 0.000 description 51
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 47
- 238000006243 chemical reaction Methods 0.000 description 44
- 238000003860 storage Methods 0.000 description 39
- 230000005540 biological transmission Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 31
- 238000003384 imaging method Methods 0.000 description 25
- 238000013139 quantization Methods 0.000 description 24
- 230000008707 rearrangement Effects 0.000 description 19
- 230000005236 sound signal Effects 0.000 description 18
- 230000003287 optical effect Effects 0.000 description 14
- 230000009467 reduction Effects 0.000 description 12
- 239000004065 semiconductor Substances 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 238000009825 accumulation Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 210000003128 head Anatomy 0.000 description 6
- 230000000717 retained effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 239000012536 storage buffer Substances 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 210000000744 eyelid Anatomy 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 210000000436 anus Anatomy 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000007306 functionalization reaction Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static 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/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/423—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 characterised by memory arrangements
- H04N19/426—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 characterised by memory arrangements using memory downsizing methods
- H04N19/427—Display on the fly, e.g. simultaneous writing to and reading from decoding memory
-
- 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/423—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 characterised by memory 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/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
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Definitions
- the present disclosure relates to an image processing apparatus and method, and in particular, an image processing apparatus and method capable of reducing a processing burden when generating a stream used for transmission or a stream used for storing in a file. About.
- H. is one of the standard specifications for image coding.
- two types of parameter sets are defined: a sequence parameter set (SPS) and a picture parameter set (PPS) for storing parameters used for image encoding and decoding. While the image data of each slice is classified into VCL (Video Coding Layer) NAL (Network Abstraction Layer) units, these parameter sets are classified into non-VCL NAL units.
- VCL Video Coding Layer
- NAL Network Abstraction Layer
- H.M When an encoded stream encoded by the H.264 / AVC format is stored in a file including a header area and a data area, SPS and PPS are inserted into the header area, and image data is inserted into the data area.
- APS is also a kind of parameter set. Therefore, according to the existing method, the APS is inserted into the header area of the file as well as the SPS and the PPS.
- MP4 ISO / IEC 14496-14: 2003, hereinafter referred to as MP4
- MPEG-4 Part 15 ISO / IEC 14496-15: 2004, AVC file
- This disclosure has been made in view of such a situation, and reduces the processing burden when generating a stream for transmission or a stream for storage in a file.
- An image processing apparatus includes a setting unit that sets startcode and filler data for a file including a bitstream obtained by encoding an image, and the startcode and filler data set in the setting unit. And a control unit that controls the setting unit so as to configure the file while maintaining the characteristics of parameters for managing the decoder buffer in the media data of the file.
- the parameter for managing the decoder buffer is a parameter included in VUI (Video Usability Information), a parameter included in buffering period SEI (Supplemental Enhancement Information), or a parameter included in picture timing SEI.
- the setting unit can set filler data as VCL data.
- an image processing apparatus sets startcode and filler data for a file including a bitstream obtained by encoding an image, and sets the set startcode and filler data.
- the setting of startcode and filler data is controlled so that the file is configured while retaining the characteristics of the parameters for managing the decoder buffer.
- the image processing apparatus includes a bitstream obtained by encoding an image, and a startcode and a filler data hold a characteristic of a parameter for managing a decoder buffer in the media data of the file, and form a file
- a reception unit that receives a file that is controlled and set, and reads the startcode and filler dat from the file received by the reception unit, and uses the parameter for managing the decoder buffer, and the bitstream And a decoding unit for decoding.
- the parameter for managing the decoder buffer is a parameter included in VUI (Video Usability Information), a parameter included in buffering period SEI (Supplemental Enhancement Information), or a parameter included in picture timing SEI.
- the filler data is set as VCL data.
- an image processing apparatus includes a bitstream obtained by encoding an image, and startcode and filler data retain characteristics of parameters for managing a decoder buffer in media ⁇ ⁇ ⁇ ⁇ data of a file. Then, the file which is controlled and set to constitute the file is received, the startcode and the filler data are read from the received file, and the bit stream is decoded using the parameters for managing the decoder buffer. To do.
- the image processing device is characterized in that the parameter of the parameter that manages the decoder buffer when startcode and filler data are deleted from the bitstream in the media data of the file including the bitstream in which the image is encoded And a generating unit that generates the file using the characteristics set by the setting unit.
- the setting unit can set an identification parameter for identifying that the characteristic of the parameter that manages the decoder buffer has been changed.
- the setting unit can set the identification parameter as an optional box in the sample entry of the file.
- the image processing apparatus when startcode and filler data are deleted from the bitstream in the media data of the file including the bitstream obtained by encoding the image, the image processing apparatus sets the decoder buffer.
- the characteristic of the parameter to be managed is set, and the file is generated using the set characteristic.
- the characteristics of parameters for managing the decoder buffer are set when startcode and filler ⁇ data are deleted from media data of a file including a bitstream obtained by encoding an image.
- an identification parameter for identifying that the characteristic of the parameter for managing the decoder buffer has been changed is set.
- the decoder buffer is provided.
- the characteristics of the parameter to be managed are set, the file generated using the set characteristic is received, the parameter for managing the decoder buffer is read from the received file, and the bit stream is read using the read parameter. Decrypt.
- startcode and filler data are set for a file including a bitstream obtained by encoding an image. Then, the settings of startcode and filler ⁇ ⁇ data are controlled so that the set startcode and filler data hold the characteristics of the parameters for managing the decoder buffer in the media data of the file and configure the file.
- the file includes a bitstream obtained by encoding an image, and the startcode and filler data form the file while maintaining the characteristics of parameters for managing the decoder buffer in the media data of the file.
- a controlled and configured file is received.
- the startcode and filler ⁇ ⁇ dat are read from the received file, and the bitstream is decoded using parameters for managing the decoder buffer.
- the characteristics of the parameters for managing the decoder buffer are set. The Then, the file is generated using the set characteristics.
- the above-described image processing apparatus may be an independent apparatus, or may be an internal block constituting one image encoding apparatus or image decoding apparatus.
- an image can be encoded.
- it is possible to reduce a processing burden when generating a stream used when transmitting a bit stream or a stream used when storing a bit stream.
- an image can be decoded.
- it is possible to reduce a processing burden when decoding a stream used for transmission or a stream used for storing in a file.
- FIG. 22 is a diagram illustrating still another example of the MP4 video sample structure of FIG. 20. It is a figure which shows the example of a format of a sample auxiliary information function. It is a figure which shows the other example of a format of a sample auxiliary information function. It is a figure which compares the example of the MP4 video sample structure of this technique.
- FIG. 24 is a diagram illustrating another example of the MP4 video sample structure of FIG. 23. It is a figure which shows the example of a byte stream format information box. It is a figure which shows the other example of a byte stream format information box. It is a figure explaining the data structure example of the byte stream format information stored in each sample entry. It is a figure which shows the example of the MP4 video sample structure in the case of the pattern 1. FIG. It is a figure which shows the example of the MP4 video sample structure in the case of the pattern 2. FIG. It is a figure which shows the example of the MP4 video sample structure in the case of the pattern 3. FIG. It is a figure explaining the other example of the data structure of the byte stream format information stored in each sample entry.
- FIG. 1 is a block diagram illustrating a configuration example of a first embodiment of an encoding device as an image processing device to which the present technology is applied.
- the encoding apparatus in FIG. 1 includes an encoder 1 and a file generation unit 2, encodes an image such as a captured image using the HEVC method, and generates a file that stores the encoded stream.
- an image such as a captured image in units of frames is input as an input signal to the encoder 1 of the encoding device.
- SPS Sequence Parameter Set
- PPS Picture Parameter Set
- VUI Video Usability Information
- SEI Supplemental Enhancement Information
- Encoder 1 encodes an input signal by the HEVC method using parameters included in SPS, PPS, VUI, and SEI. Then, the encoder 1 generates an encoded stream such as MPEG-2TransTS (Transport Stream) from the SPS, PPS, VUI, SEI and the resulting encoded data, and the generated encoded stream is converted into a file. It supplies to the production
- the file generation unit 2 is a file (for example, MPEG-4 Part 14 (ISO / IEC 14496-14: 2003, hereinafter referred to as MP4)) that stores the encoded stream (encoded series of image data) from the encoder 1. ) Is generated. Details of the file generation unit 2 will be described later with reference to FIG.
- FIG. 2 is a block diagram illustrating a configuration example of the encoder 1 of FIG.
- Each unit of the encoder 1 encodes an image that is an input signal using parameters included in SPS, PPS, VUI, and SEI from the preceding stage (not shown) to generate an encoded stream.
- a / D conversion unit 11 includes an A / D conversion unit 11, a screen rearrangement buffer 12, a calculation unit 13, an orthogonal transformation unit 14, a quantization unit 15, a lossless encoding unit 16, a storage buffer 17, an inverse quantization unit 18, An inverse orthogonal transform unit 19, an addition unit 20, a deblock filter 21, a frame memory 22, a switch 23, an intra prediction unit 24, a motion prediction / compensation unit 25, a predicted image selection unit 26, and a rate control unit 27 are configured. Is done.
- an adaptive offset filter 41 and an adaptive loop filter 42 are provided between the deblock filter 21 and the frame memory 22.
- the A / D conversion unit 11 of the encoder 1 performs A / D conversion on an image in frame units input as an input signal, and outputs and stores it in the screen rearrangement buffer 12.
- the screen rearrangement buffer 12 rearranges the stored frame-by-frame images in the order for encoding in accordance with the GOP (Group of Picture) structure, the arithmetic unit 13, the intra prediction unit 24, and Output to the motion prediction / compensation unit 25.
- GOP Group of Picture
- the calculation unit 13 performs encoding by calculating the difference between the predicted image supplied from the predicted image selection unit 26 and the encoding target image output from the screen rearrangement buffer 12. Specifically, the calculation unit 13 performs encoding by subtracting the prediction image supplied from the prediction image selection unit 26 from the encoding target image output from the screen rearrangement buffer 12. The calculation unit 13 outputs the image obtained as a result to the orthogonal transform unit 14 as residual information. When the predicted image is not supplied from the predicted image selection unit 26, the calculation unit 13 outputs the image read from the screen rearrangement buffer 12 to the orthogonal transform unit 14 as residual information as it is.
- the orthogonal transform unit 14 performs orthogonal transform on the residual information from the calculation unit 13 and supplies a coefficient obtained as a result of the orthogonal transform to the quantization unit 15.
- the quantization unit 15 quantizes the coefficient supplied from the orthogonal transform unit 14.
- the quantized coefficient is input to the lossless encoding unit 16.
- the lossless encoding unit 16 acquires information indicating the optimal intra prediction mode (hereinafter referred to as intra prediction mode information) from the intra prediction unit 24.
- information indicating the optimal inter prediction mode hereinafter referred to as inter prediction mode information
- inter prediction mode information information indicating the optimal inter prediction mode
- a motion vector information for specifying a reference image, and the like are acquired from the motion prediction / compensation unit 25.
- the lossless encoding unit 16 acquires the storage flag, index or offset, and type information from the adaptive offset filter 41 as offset filter information, and acquires filter coefficients from the adaptive loop filter 42.
- the lossless encoding unit 16 performs variable length encoding (for example, CAVLC (Context-Adaptive Variable Length Coding)), arithmetic encoding (for example, CABAC) on the quantized coefficients supplied from the quantization unit 15. (Context-Adaptive Binary Arithmetic Coding) etc.) is performed.
- variable length encoding for example, CAVLC (Context-Adaptive Variable Length Coding)
- CABAC arithmetic encoding
- CABAC Context-Adaptive Binary Arithmetic Coding
- the lossless encoding unit 16 uses the intra prediction mode information or the inter prediction mode information, the motion vector, the information specifying the reference image, the offset filter information, the filter coefficient, and the like as the encoding information related to the encoding. Turn into.
- the lossless encoding unit 16 generates an encoded stream from the encoded information and coefficients that have been losslessly encoded, supplies the encoded stream to the accumulation buffer 17, and accumulates the encoded stream.
- the losslessly encoded information may be the header information of the losslessly encoded coefficient.
- the accumulation buffer 17 temporarily stores the encoded stream supplied from the lossless encoding unit 16. Further, the accumulation buffer 17 supplies the stored encoded stream to the file generation unit 2 in FIG.
- the quantized coefficient output from the quantization unit 15 is also input to the inverse quantization unit 18, subjected to inverse quantization, and then supplied to the inverse orthogonal transform unit 19.
- the inverse orthogonal transform unit 19 performs inverse orthogonal transform on the coefficients supplied from the inverse quantization unit 18 and supplies residual information obtained as a result to the addition unit 20.
- the adding unit 20 adds the residual information as the decoding target image supplied from the inverse orthogonal transform unit 19 and the predicted image supplied from the predicted image selecting unit 26 to obtain a locally decoded image. .
- the adding unit 20 sets the residual information supplied from the inverse orthogonal transform unit 19 as a locally decoded image.
- the adder 20 supplies the locally decoded image to the deblocking filter 21 and also supplies it to the frame memory 22 for storage.
- the deblocking filter 21 removes block distortion by filtering the locally decoded image supplied from the adding unit 20.
- the deblocking filter 21 supplies an image obtained as a result to the adaptive offset filter 41.
- the adaptive offset filter 41 performs an adaptive offset filter (SAO: Sample adaptive offset) process that mainly removes ringing on the image after the adaptive deblock filter process by the deblock filter 21.
- SAO Sample adaptive offset
- the adaptive offset filter 41 determines the type of adaptive offset filter processing for each LCU (Largest Coding Unit) which is the maximum coding unit, and obtains an offset used in the adaptive offset filter processing.
- the adaptive offset filter 41 performs the determined type of adaptive offset filter processing on the image after the adaptive deblocking filter processing, using the obtained offset. Then, the adaptive offset filter 41 supplies the image after the adaptive offset filter processing to the adaptive loop filter 42.
- the adaptive offset filter 41 has a buffer for storing the offset.
- the adaptive offset filter 41 determines whether the offset used for the adaptive deblocking filter processing is already stored in the buffer for each LCU.
- the adaptive offset filter 41 determines that the offset used for the adaptive deblocking filter processing is already stored in the buffer, the adaptive offset filter 41 stores a storage flag indicating whether the offset is stored in the buffer, and the offset is stored in the buffer. Is set to a value (1 in this case) indicating that the
- the adaptive offset filter 41 stores, for each LCU, a storage flag that is set to 1, an index that indicates the storage position of the offset in the buffer, and type information that indicates the type of adaptive offset filter processing that has been performed. 16 is supplied.
- the adaptive offset filter 41 stores the offset in order in the buffer. Further, the adaptive offset filter 41 sets the storage flag to a value (here, 0) indicating that the offset is not stored in the buffer. Then, the adaptive offset filter 41 supplies the storage flag, offset, and type information set to 0 to the lossless encoding unit 16 for each LCU.
- the adaptive loop filter 42 performs an adaptive loop filter (ALF: Adaptive Loop Filter) process on the image after the adaptive offset filter process supplied from the adaptive offset filter 41, for example, for each LCU.
- ALF Adaptive Loop Filter
- the adaptive loop filter process for example, a process using a two-dimensional Wiener filter is used. Of course, filters other than the Wiener filter may be used.
- the adaptive loop filter 42 is configured so that the residual of the original image that is the image output from the screen rearrangement buffer 12 and the image after the adaptive loop filter processing is minimized for each LCU. A filter coefficient used in the processing is calculated. Then, the adaptive loop filter 42 performs an adaptive loop filter process for each LCU using the calculated filter coefficient on the image after the adaptive offset filter process.
- the adaptive loop filter 42 supplies the image after the adaptive loop filter processing to the frame memory 22.
- the adaptive loop filter 42 supplies the filter coefficient to the lossless encoding unit 16.
- the adaptive loop filter processing is performed for each LCU, but the processing unit of the adaptive loop filter processing is not limited to the LCU. However, the processing can be efficiently performed by combining the processing units of the adaptive offset filter 41 and the adaptive loop filter 42.
- the image stored in the frame memory 22 is output as a reference image to the intra prediction unit 24 or the motion prediction / compensation unit 25 via the switch 23.
- the intra prediction unit 24 uses the reference image that has not been filtered by the deblocking filter 21 that is read from the frame memory 22 via the switch 23, and is used for all intra prediction modes in units of tiles and slices. Perform prediction processing.
- the intra prediction unit 24 calculates cost function values for all candidate intra prediction modes based on the image read from the screen rearrangement buffer 12 and the prediction image generated as a result of the intra prediction process. (Details will be described later). Then, the intra prediction unit 24 determines the intra prediction mode that minimizes the cost function value as the optimal intra prediction mode.
- the intra prediction unit 24 supplies the predicted image generated in the optimal intra prediction mode and the corresponding cost function value to the predicted image selection unit 26.
- the intra prediction unit 24 supplies the intra prediction mode information to the lossless encoding unit 16 when the prediction image selection unit 26 is notified of selection of a prediction image generated in the optimal intra prediction mode.
- the cost function value is also called RD (Rate Distortion) cost. It is calculated based on a method of either High Complexity mode or Low Complexity mode as defined by JM (Joint Model) which is reference software in the H.264 / AVC format.
- D is the difference (distortion) between the original image and the decoded image
- R is the amount of generated code including up to the coefficient of orthogonal transform
- ⁇ is the Lagrange multiplier given as a function of the quantization parameter QP.
- D is the difference (distortion) between the original image and the decoded image
- Header_Bit is the header bit for the prediction mode
- QPtoQuant is a function given as a function of the quantization parameter QP.
- the motion prediction / compensation unit 25 performs motion prediction / compensation processing for all candidate inter prediction modes in units of tiles and slices. Specifically, the motion prediction / compensation unit 25 is based on the image supplied from the screen rearrangement buffer 12 and the filtered reference image read from the frame memory 22 via the switch 23 in units of tiles and slices. , Detecting motion vectors of all candidate inter prediction modes. Then, the motion prediction / compensation unit 25 performs compensation processing on the reference image based on the motion vector in units of tiles and slices, and generates a predicted image.
- the motion prediction / compensation unit 25 calculates a cost function value for all candidate inter prediction modes based on the image and the predicted image supplied from the screen rearrangement buffer 12, and calculates the cost function value.
- the inter prediction mode that minimizes is determined as the optimal inter measurement mode.
- the motion prediction / compensation unit 25 supplies the cost function value of the optimal inter prediction mode and the corresponding predicted image to the predicted image selection unit 26.
- the motion prediction / compensation unit 25 specifies inter prediction mode information, a corresponding motion vector, and information for specifying a reference image. Are output to the lossless encoding unit 16.
- the predicted image selection unit 26 Based on the cost function values supplied from the intra prediction unit 24 and the motion prediction / compensation unit 25, the predicted image selection unit 26 has a smaller corresponding cost function value of the optimal intra prediction mode and the optimal inter prediction mode. Are determined as the optimum prediction mode. Then, the predicted image selection unit 26 supplies the predicted image in the optimal prediction mode to the calculation unit 13 and the addition unit 20. Further, the predicted image selection unit 26 notifies the intra prediction unit 24 or the motion prediction / compensation unit 25 of selection of the predicted image in the optimal prediction mode.
- the rate control unit 27 controls the quantization operation rate of the quantization unit 15 based on the encoded data stored in the storage buffer 17 so that overflow or underflow does not occur.
- the start code and filler data are removed, and the decoder buffer is managed.
- the parameter value to be changed may be different. Accordingly, for example, it is necessary to reset buffering period (SEI (Supplemental enhancement information), which leads to an increase in processing load when converting the bitstream.
- SEI Supplemental enhancement information
- the file generation unit 2 sets startcode and filler data for a file including a bitstream obtained by encoding an image when generating a stream used for transmission or a stream used for storing in a file.
- the startcode and filler data are controlled so that the file is configured while retaining the characteristics of the parameters that manage the decoder buffer. .
- the file generation unit 2 sets the characteristics of the parameters for managing the decoder buffer when startcode and filler ⁇ data are deleted in the media ⁇ data of the file including the bitstream obtained by encoding the image. Was used to generate files.
- the parameter for managing the decoder buffer is an HRD parameter (Hypothetical Reference Decoder Parameter), that is, a parameter for managing the virtual reference decoder.
- the parameters for managing the decoder buffer are parameters in the VUI, parameters in the buffering period SEI, or parameters in the picture timing SEI.
- filler ⁇ data can be handled by doing the following. That is, in the AVC or HEVC system, the filler data is non-VCL as shown in the table of NAL unit type codes and NAL unit type classes. Specifically, when nal_unit_type is 31, Name of nal_unit_type is FD_NUT, Content of NAL unit and RBSP syntax structure is filler data, filler_data_rbsp (), NAL shortcut type class is non-VCL . By changing this non-VCL to VCL data, it is possible to include filler ⁇ data in the media data of the file, so that it is possible to suppress the removal of filler data during conversion to a transmission stream.
- the file generation unit 2 sets startcode and filler data as follows.
- HRD parameters are wrong When startcode, filler data, etc were removed from the elementary stream to store ISOMFF, HRD parameters, eg buffering period SEI, picture timing SEI, etc are not correct.However, decoder can not know if HRD parameters in the elementary stream is correct. There should be an id to indicate the HRD parameters in the elementary stream maybe wrong.
- filler data is categorized as non-VCL.That mean the bit for filler data is counted as non-VCL (header information). As this video bitstream itself.In this case, filler data is not necessary to remove from the elementary stream and HRD parameters are not changed.
- the table for HEVC is attached.
- an identification parameter is set for identifying whether the characteristics of the parameter for managing the decoder buffer have been changed.
- data is stored in an optional box of a file format is shown.
- such id can be defined as an optional box in AVCSampleEntry as follows.
- AVCSampleEntry extends VisualSampleEntry (type ') ⁇ // type is 'avc1' or 'avc3' AVCConfigurationBox config; MPEG4BitRateBox (); // Optional MPEG4ExtensionDescriptorsBox (); // Optional HRDConformanceBox (); // Optional ⁇ Add HRDConformanceBox into AVCSampleEntry and AVC2SVVSampleEntry in 5.4.2.1 Add HRDConformanceBox into AVCSVCSampleEntry, AVC2SVCSampleEntry and SVCSampleEntry in 6.5.3.1.
- the identification parameter is set as follows, for example.
- HRDConformanceFlag is the identifier if HRD characteristics was changed by removing startcode, filler data, etc from the elementary stream.
- HRDConformanceFlag is equal to1
- the HRD parameters eg buffering period SEI, picture timing SEI, was changed by removing startcode, filler data, etc from the elementary stream.
- the file generation unit 2 in FIG. 1 that performs the above processing is configured as shown in FIG.
- FIG. 3 is a block diagram illustrating a configuration example of a file generation unit that performs the above-described processing.
- the file generation unit 2 is configured to include a control unit 31, a setting unit 32, and a file writing unit 33.
- the control unit 31 controls the generation processing of the mdat data that is the VCL data portion of the file by the setting unit 32 according to whether or not the characteristics of the HRD parameter that is a parameter for managing the decoder buffer are retained. Also, the control unit 31 sets the characteristics of the HRD parameter or moov which is the management information part of the file depending on whether startcode and fillerfilldata are deleted in the mdat data set by the setting unit 32. Controls the setting of HRD identification parameters.
- the setting unit 32 uses the encoded stream from the encoder 1 to generate mdat data of the file under the control of the control unit 31, and supplies the generated mdat data to the file writing unit 33.
- startcode and filler data are deleted, but in the method of this technology, mdat data is generated with the startcode and filler data set in the encoded stream being set. .
- the setting unit 32 resets the characteristics of the HRD parameters or sets the identification parameters of the HRD in the moov of the file under the control of the control unit 31. Then, the setting unit 32 generates a moov of the file and supplies the generated moov to the file writing unit 33.
- the file writing unit 33 writes moov from the setting unit 32 to a file, and further writes mdat to the file.
- the MP4 file written out by the file writing unit 33 is transmitted to a decoding device, which will be described later, and read and decoded by the decoding device.
- step S1 the control unit 31 determines whether or not to retain the characteristics of the HRD parameter that is a parameter for managing the decoder buffer. If it is determined in step S1 that the characteristics of the HRD parameter are not retained, the process proceeds to step S2. In step S ⁇ b> 2, the setting unit 32 performs conventional mdat data generation processing under the control of the control unit 31. This process will be described later with reference to FIG.
- step S2 startcode is detected, NAL data is acquired, and startcode is deleted. Then, depending on whether the acquired data is VCL data, filler data, or management information, Unit size is added and stored in the buffer, or discarded, and mdat data Is generated. The generated mdat data is supplied to the file writing unit 33, and the process proceeds to step S4.
- step S1 determines whether the characteristics of the HRD parameter are retained. If it is determined in step S1 that the characteristics of the HRD parameter are retained, the process proceeds to step S3.
- step S ⁇ b> 3 the setting unit 32 performs mdat data generation processing of the present technology under the control of the control unit 31. This process will be described later with reference to FIG.
- step S3 By the process of step S3, startcode is detected, NAL data is acquired, the acquired data is set as VCL data, Unit Size is added, and accumulated in the buffer, thereby generating mdat data.
- the generated mdat data is supplied to the file writing unit 33, and the process proceeds to step S4.
- step S4 the control unit 31 determines whether or not startcode and filler data are deleted in the mdat data generated in step S2 or S3.
- step S4 If it is determined in step S4 that startcode and filler data have been deleted, the process proceeds to step S5.
- step S5 the setting unit 32 sets the characteristics of the HRD parameter. That is, since the characteristics of the HRD parameter are different, the characteristics of the HRD parameter are calculated again and set again. Then, the SEI and VUI of the mdat data are rewritten with the set HRD parameter.
- step S4 If it is determined in step S4 that startcode and filler data are not deleted, step S5 is skipped, and the process proceeds to step S6.
- step S6 the setting unit 32 generates a moov of the file using the data size information obtained in the process of step S2 or S3.
- step S3 the management information etc. which were accumulate
- the generated moov is supplied to the file writing unit 33.
- step S7 the file writing unit 33 writes the moov generated in step S6 to a file.
- step S8 the file writing unit 33 writes the mdat generated in step S2 or S3 to a file.
- the MP4 file written out by the file writing unit 33 is transmitted to a decoding device to be described later, and read and decoded by the decoding device. At that time, the file is generated without changing the characteristics of the HRD parameter. In addition, since the HRD parameter is set again even if startcode and filler data are deleted, the decoding process can be performed accurately by referring to the HRD parameter.
- step S11 the control unit 31 determines whether or not to retain the characteristics of the HRD parameter that is a parameter for managing the decoder buffer. If it is determined in step S11 that the characteristics of the HRD parameter are not retained, the process proceeds to step S12. In step S ⁇ b> 12, the setting unit 32 performs conventional mdat data generation processing under the control of the control unit 31. This process will be described later with reference to FIG.
- step S12 startcode is detected, NAL data is acquired, and startcode is deleted. Then, depending on whether the acquired data is VCL data, filler data, or management information, Unit size is added and stored in the buffer, or discarded, and mdat data Is generated. The generated mdat data is supplied to the file writing unit 33, and the process proceeds to step S14.
- step S11 determines whether the characteristics of the HRD parameter are to be retained. If it is determined in step S11 that the characteristics of the HRD parameter are to be retained, the process proceeds to step S13.
- step S ⁇ b> 13 the setting unit 32 performs mdat data generation processing of the present technology under the control of the control unit 31. This process will be described later with reference to FIG.
- step S13 startcode is detected, NAL data is acquired, the acquired data is set as VCL data, Unit Size is added, and accumulated in the buffer, thereby generating mdat data.
- the generated mdat data is supplied to the file writing unit 33, and the process proceeds to step S14.
- step S14 the control unit 31 determines whether or not startcode and filler data have been deleted from the mdat data generated in step S12 or S13.
- step S14 If it is determined in step S14 that startcode and filler data are not deleted, the process proceeds to step S15.
- step S15 the setting unit 32 sets the moov HRD identification parameter to 1, and the process proceeds to step S17. As a result, the decoding side can determine that the HRD parameter is correct.
- step S14 If it is determined in step S14 that startcode and fillerdata have been deleted, the process proceeds to step S16.
- step S16 the setting unit 32 sets the moov HRD identification parameter to 0, and the process proceeds to step S17. As a result, the decoding side can determine that the HRD parameter is incorrect (incorrect).
- step S17 the setting unit 32 generates a moov of the file using the data size information obtained in the process of step S12 or S13.
- step S13 the management information etc. which were accumulate
- the generated moov is supplied to the file writing unit 33.
- step S18 the file writing unit 33 writes the moov generated in step S17 to a file.
- step S19 the file writing unit 33 writes the mdat generated in step S12 or S13 into a file.
- the MP4 file written out by the file writing unit 33 is transmitted to a decoding device to be described later, and read and decoded by the decoding device. At that time, the file is generated without changing the characteristics of the HRD parameter. Further, since the identification parameter for identifying whether or not the HRD parameter is correct is set, it is possible to clearly determine whether or not decoding is performed with reference to the HRD parameter.
- step S2 of FIG. 4 or step S12 of FIG. 5
- step S2 of FIG. 4 or step S12 of FIG. 5
- the setting unit 32 detects startcode from the encoded stream from the encoder 1 in step S21, and acquires NAL data from the startcode detected in step S21 to the next startcode in step S22.
- the setting unit 32 deletes the startcode detected in step S21 in step S23.
- step S24 it is determined whether the data acquired in step S22 is VCL data.
- step S24 If it is determined in step S24 that the data acquired in step S22 is VCL data, the process proceeds to step S25.
- step S25 the setting unit 32 adds the corresponding Unit size to the data acquired in step S22 to obtain an access unit.
- step S26 the setting unit 32 accumulates the access unit to which Unit size is added in the built-in mdat buffer, and the process proceeds to step S30.
- step S24 If it is determined in step S24 that the data acquired in step S22 is not VCL data, the process proceeds to step S27.
- step S27 the setting unit 32 determines whether or not the data acquired in step S22 is filler ⁇ data.
- step S27 If it is determined in step S27 that the data acquired in step S22 is filler data, the process proceeds to step S28.
- step S28 the setting unit 32 discards filler data, and the process proceeds to step S30.
- step S27 If it is determined in step S27 that the data acquired in step S22 is not fillerfilldata, the process proceeds to step S29.
- the acquired data is management information such as SPS and PPS
- step S29 the setting unit 32 accumulates the acquired data in the built-in moov buffer, and the process proceeds to step S30. .
- step S30 the setting unit 32 detects startcode from the encoded stream from the encoder 1.
- step S31 the setting unit 32 determines whether or not the current data is the last data of the file. If startcode is not detected in step S30, it is determined in step S31 that the data is the last data in the file, the mdat data generation process is terminated, and the process is step S2 in FIG. 4 (or step S12 in FIG. 5). Return to.
- step S30 If startcode is detected in step S30, if it is determined in step S31 that the data is not the last data in the file, the process proceeds to step S22, and the subsequent processes are repeated.
- the setting unit 32 detects startcode from the encoded stream from the encoder 1 in step S41, and acquires NAL data from the startcode detected in step S41 to the next startcode in step S42. In the example of FIG. 7, startcode is not deleted.
- step S43 the setting unit 32 determines whether the data acquired in step S42 is fillerfilldata. If it is determined in step S43 that the data acquired in step S42 is filler data, the process proceeds to step S44. In step S44, the setting unit 32 sets filler data to VCL data.
- step S44 is skipped, and the process proceeds to step S45.
- step S45 the corresponding unit size is added to the data acquired in step S42 to obtain an access unit
- step S46 the access unit to which unit size is added is stored in the built-in mdat buffer.
- the acquired data is management information such as SPS or PPS, it is also stored in the built-in moov buffer.
- step S6 of FIG. 4 or step S17 of FIG. Stored as SPS or PPS.
- the acquired data is management information such as SPS or PPS
- it may be stored only in the built-in moov buffer instead of being stored in the mdat buffer as in the past.
- step S47 the setting unit 32 detects startcode from the encoded stream from the encoder 1.
- step S48 the setting unit 32 determines whether or not the current data is the last data of the file. If startcode is not detected in step S47, it is determined in step S48 that the data is the last data in the file, the mdat data generation process is terminated, and the process proceeds to step S3 in FIG. 4 (step S13 in FIG. 5). Return.
- step S47 If the startcode is detected in step S47, if it is determined in step S48 that it is not the last data of the file, the process proceeds to step S42, and the subsequent processes are repeated.
- the settings of startcode and fillerfilldata are controlled so that the file is configured while retaining the characteristics of the parameters for managing the decoder buffer. That is, the startcode and fillerfilldata are not deleted, and the startcode and filler data are included to configure the file, so that the characteristics of the parameters for managing the decoder buffer can be maintained.
- fillerfilldata is changed to VCL data
- Filler data can be included in the media data of the file, and removal of fillerfilldata during conversion to a transmission stream can be suppressed.
- an identification parameter that identifies that the characteristics of the parameter that manages the decoder buffer has been changed is set, and the set identification parameter is used, The file was generated. Thereby, decoding can be performed correctly.
- FIG. 8 is a block diagram illustrating a configuration example of a first embodiment of a decoding device as an image processing device to which the present technology is applied, which decodes an encoded stream transmitted from the encoding device in FIG. 1.
- the file reading unit 51 of the decoding device receives the MP4 file generated by the encoding device of FIG. 1 and, from the received file, the SPS, PPS, and SPS constituting the encoded stream encoded by the encoder 1 of FIG. Read VUI, SEI, encoded data, etc.
- the file reading unit 51 supplies SPS, PPS, VUI, SEI, and encoded data to the decoder 52.
- the file reading unit 51 includes a bit stream obtained by encoding an image, and the startcode and filler data hold the characteristics of the parameters for managing the decoder buffer in the media data of the file, and configure the file. Receives files that are controlled and configured. Alternatively, the file reading unit 51 sets the characteristics of parameters for managing the decoder buffer when startcode and fillerfilldata are deleted in media data of a file including a bitstream obtained by encoding an image. Receive a file that has been generated using. Then, the file reading unit 51 reads the received file, and causes the decoder 52 to decode the encoded data of the bit stream.
- the decoder 52 is supplied from the file reading unit 51 with reference to SPS, PPS, VUI, SEI, etc. (particularly the characteristics of the HRD parameter) supplied from the file reading unit 51 under the control of the file reading unit 51. Decode the encoded data by the HEVC method. The decoder 52 supplies an image obtained as a result of decoding to the subsequent stage as an output signal.
- FIG. 9 is a block diagram illustrating a configuration example of the file reading unit 51.
- the file reading unit 51 is configured to include a file receiving unit 71, a parameter acquiring unit 72, a decoding control unit 73, and a data reading unit 74.
- the file receiving unit 71 receives the MP4 file generated by the file generating unit 2 in FIG. 1 and supplies the received file to the parameter acquiring unit 72.
- the parameter acquisition unit 72 acquires moov that is management information from the MP4 file, and supplies it to the data reading unit 74. Further, the parameter acquisition unit 72 causes the data reading unit 74 to read data from mdat based on the acquired moov.
- the parameter acquisition unit 72 acquires an identification parameter for determining whether or not the characteristics of the HRD parameter are correct from the moov, and sends it to the decoding control unit 73. Supply its identification parameters.
- the decoding control unit 73 determines whether to follow the HRD parameter according to the HRD identification parameter, and controls the decoder 52 to perform the decoding process.
- the data reading unit 74 reads SPS, PPS, VUI, SEI, and the like from the moov or mdat of the file, and reads the encoded data from the mdat of the file under the control of the parameter acquisition unit 72. The data reading unit 74 then supplies the read SPS, PPS, VUI, SEI, encoded data, and the like to the decoder 52.
- FIG. 10 is a block diagram illustrating a configuration example of the decoder 52 of FIG.
- Each unit of the decoder 52 uses the parameters included in the SPS, PPS, VUI, and SEI from the file reading unit 51 to decode the encoded data to generate an image.
- the 10 includes an accumulation buffer 101, a lossless decoding unit 102, an inverse quantization unit 103, an inverse orthogonal transform unit 104, an addition unit 105, a deblock filter 106, a screen rearrangement buffer 107, a D / A conversion unit 108, The frame memory 109, the switch 110, the intra prediction unit 111, the motion compensation unit 112, and the switch 113 are included.
- an adaptive offset filter 141 and an adaptive loop filter 142 are provided between the deblock filter 106 and the screen rearrangement buffer 107 and the frame memory 109.
- the accumulation buffer 101 of the decoder 52 receives and accumulates encoded data from the file reading unit 51 of FIG.
- the accumulation buffer 101 supplies the accumulated encoded data to the lossless decoding unit 102.
- the lossless decoding unit 102 obtains quantized coefficients and encoded information by performing lossless decoding such as variable length decoding and arithmetic decoding on the encoded data from the accumulation buffer 101.
- the lossless decoding unit 102 supplies the quantized coefficient to the inverse quantization unit 103.
- the lossless decoding unit 102 supplies intra prediction mode information or the like as encoded information to the intra prediction unit 111, and provides motion vectors, information for identifying reference images, inter prediction mode information, and the like to the motion compensation unit 112. Supply. Further, the lossless decoding unit 102 supplies intra prediction mode information or inter prediction mode information as encoded information to the switch 113.
- the lossless decoding unit 102 supplies offset filter information as encoded information to the adaptive offset filter 141 and supplies filter coefficients to the adaptive loop filter 142.
- the inverse quantization unit 103, the inverse orthogonal transform unit 104, the addition unit 105, the deblock filter 106, the frame memory 109, the switch 110, the intra prediction unit 111, and the motion compensation unit 112 are the same as the inverse quantization unit 18, FIG.
- the same processing as that performed by the inverse orthogonal transform unit 19, the addition unit 20, the deblock filter 21, the frame memory 22, the switch 23, the intra prediction unit 24, and the motion prediction / compensation unit 25 is performed, whereby the image is decoded.
- the inverse quantization unit 103 inversely quantizes the quantized coefficient from the lossless decoding unit 102 and supplies the resulting coefficient to the inverse orthogonal transform unit 104.
- the inverse orthogonal transform unit 104 performs inverse orthogonal transform on the coefficient from the inverse quantization unit 103, and supplies residual information obtained as a result to the addition unit 105.
- the addition unit 105 performs decoding by adding the residual information as the decoding target image supplied from the inverse orthogonal transform unit 104 and the prediction image supplied from the switch 113.
- the adding unit 105 supplies the image obtained as a result of decoding to the deblocking filter 106 and also supplies it to the frame memory 109.
- the addition unit 105 supplies the image, which is residual information supplied from the inverse orthogonal transform unit 104, to the deblocking filter 106 as an image obtained as a result of decoding. It is supplied to the frame memory 109 and accumulated.
- the deblock filter 106 removes block distortion by filtering the image supplied from the addition unit 105.
- the deblocking filter 106 supplies the resulting image to the adaptive offset filter 141.
- the adaptive offset filter 141 has a buffer for sequentially storing offsets supplied from the lossless decoding unit 102. Further, the adaptive offset filter 141 performs adaptive offset filter processing on the image after the adaptive deblocking filter processing by the deblocking filter 106 based on the offset filter information supplied from the lossless decoding unit 102 for each LCU. .
- the adaptive offset filter 141 uses the offset included in the offset filter information for the image after the deblocking filter processing in units of LCUs.
- the type of adaptive offset filter processing indicated by the type information is performed.
- the adaptive offset filter 141 is stored at the position indicated by the index included in the offset filter information with respect to the image after the deblocking filter processing in units of LCUs. Read the offset. Then, the adaptive offset filter 141 performs the type of adaptive offset filter processing indicated by the type information, using the read offset. The adaptive offset filter 141 supplies the image after the adaptive offset filter processing to the adaptive loop filter 142.
- the adaptive loop filter 142 performs an adaptive loop filter process for each LCU on the image supplied from the adaptive offset filter 141 using the filter coefficient supplied from the lossless decoding unit 102.
- the adaptive loop filter 142 supplies the image obtained as a result to the frame memory 109 and the screen rearrangement buffer 107.
- the image stored in the frame memory 109 is read as a reference image via the switch 110 and supplied to the motion compensation unit 112 or the intra prediction unit 111.
- the screen rearrangement buffer 107 stores the image supplied from the deblock filter 106 in units of frames.
- the screen rearrangement buffer 107 rearranges the stored frame-by-frame images for encoding in the original display order and supplies them to the D / A conversion unit 108.
- the D / A converter 108 D / A converts the frame unit image supplied from the screen rearrangement buffer 107 and outputs it as an output signal to a subsequent stage (not shown).
- the intra prediction unit 111 uses the reference image not filtered by the deblocking filter 106 read out from the frame memory 109 via the switch 110 in units of tiles and slices, and is supplied from the lossless decoding unit 102. Intra prediction processing in the intra prediction mode indicated by the mode information is performed. The intra prediction unit 111 supplies the prediction image generated as a result to the switch 113.
- the motion compensation unit 112 is filtered by the deblocking filter 106 from the frame memory 109 via the switch 110 based on the information for specifying the reference image supplied from the lossless decoding unit 102 in units of tiles and slices. Read the reference image.
- the motion compensation unit 112 performs motion compensation processing in the optimal inter prediction mode indicated by the inter prediction mode information using the motion vector and the reference image.
- the motion compensation unit 112 supplies the predicted image generated as a result to the switch 113.
- the switch 113 supplies the prediction image supplied from the intra prediction unit 111 to the addition unit 105.
- the switch 113 supplies the predicted image supplied from the motion compensation unit 112 to the adding unit 105.
- This file decryption process is a process for the file generated by the file generation process of FIG. That is, the characteristics of the HRD parameter in this file are set again even if startcode and filler data are deleted.
- step S71 the file receiving unit 71 receives the MP4 file and supplies the received file to the parameter acquiring unit 72.
- step S72 the parameter acquisition unit 72 acquires moov as management information from the MP4 file and supplies the acquired moov to the data reading unit 74.
- step S73 the data reading unit 74 acquires SPS and PPS from moov.
- step S74 the parameter acquisition unit 72 acquires the unit size of mdat to be decoded based on the moov acquired in step S72.
- step S75 the parameter acquisition unit 72 detects NAL based on the Unit size acquired in step S74.
- startcode is also acquired and referenced according to the file structure described later with reference to FIGS. 17 and 18.
- step S76 the data reading unit 74 reads data from the NAL detected in step S75 and supplies the data to the decoder 52.
- the NAL is SPS or PPS
- the moov SPS or PPS acquired in step S73 is a default value, and the NAL SPS or PPS is used.
- step S77 the decoder 52 performs a decoding process. At that time, the decoder 52 performs a decoding process according to the HRD parameter.
- the file is configured, so that the decoding process can be performed correctly.
- the transmission rate of VBR or CBR is specified from the outside.
- VBR the stream is output as it is from the data reading unit 74 to the decoder 52.
- CBR in the data reading unit 74, Filler data or stuffing bit is added so as to be CBR, The HRD parameter is rewritten. At that time, since the HRD parameter of the MP4 file is normal, it can be rewritten normally on the decoding side.
- This file decryption process is a process for the file generated by the file generation process of FIG. That is, an identification parameter for identifying whether the characteristics of the HRD parameter are correct or different is set in the moov of this file.
- step S91 the file receiving unit 71 receives the MP4 file and supplies the received file to the parameter acquiring unit 72.
- step S92 the parameter acquisition unit 72 acquires moov as management information from the MP4 file, and supplies the acquired moov to the data reading unit 74.
- step S93 the data reading unit 74 acquires SPS and PPS from moov.
- step S94 the parameter acquisition unit 72 acquires the HRD identification parameter from the moov acquired in step S92, and supplies the acquired HRD identification parameter to the decoding control unit 73.
- step S95 the parameter acquisition unit 72 acquires the unit size of mdat to be decoded based on the moov acquired in step S92.
- step S96 the parameter acquisition unit 72 detects NAL based on the Unit size acquired in step S95.
- startcode is also acquired and referenced according to the file structure described later with reference to FIGS. 17 and 18.
- step S97 the data reading unit 74 reads data from the NAL detected in step S96 and supplies the data to the decoder 52. If the NAL is SPS or PPS, the moov SPS or PPS acquired in step S93 is a default value, and the NAL SPS or PPS is used.
- step S98 the decryption control unit 73 determines whether or not the HRD identification parameter from the parameter acquisition unit 72 is 1. If it is determined in step S98 that the HRD identification parameter is 1, the process proceeds to step S99.
- step S99 the decoder 52 performs a decoding process according to the HRD parameter under the control of the decoding control unit 73.
- step S98 determines whether the HRD identification parameter is not 1, the process proceeds to step S100.
- step S100 the decoder 52 ignores the HRD parameter and performs the decoding process under the control of the decoding control unit 73.
- the file is configured, so that the decoding process can be performed correctly.
- FIG. 13 is a block diagram illustrating an example of the configuration of the image encoding device 201 according to an embodiment for generating the above-described MP4 file.
- the image encoding device 201 includes an encoding unit 211, a VCL buffer 212, a non-VCL buffer 213, a file generation unit 214, and a control unit 215.
- the encoding unit 211 in FIG. 13 corresponds to the encoder 1 in FIG.
- the VCL buffer 212, the non-VCL buffer 213, the file generation unit 214, and the control unit 215 in FIG. 13 correspond to the file generation unit 2 in FIG.
- the encoding unit 211 is an encoder that operates according to the HEVC method.
- the encoding unit 211 sequentially acquires images to be encoded from a moving image source such as a camera or a television tuner connected to the image encoding device 201. Then, the encoding unit 211 encodes the acquired image using parameters included in the SPS, PPS, and APS, and generates a bit stream of image data. Also, the encoding unit 211 generates SPS and PPS as non-VCL NAL units. On the other hand, the encoding unit 211 generates a bit stream of filler data and image data as a VCL NAL unit.
- the encoding unit 211 outputs the filler data and the bit stream of the image data to the file generation unit 214 via the VCL buffer 212. Also, the encoding unit 211 outputs the SPS and the PPS to the file generation unit 214 via the non-VCL buffer 213.
- the VCL buffer 212 buffers the VCL NAL unit.
- the non-VCL buffer 213 buffers non-VCL NAL units.
- the file generation unit 214 generates a HEVC file 151 that stores a series of encoded image data. More specifically, the file generation unit 214 inserts the filler data and the bit stream of the image data into the data area (for example, the mdat box) of the HEVC file 151 in the decoding order as a VCL NAL unit.
- the file generation unit 214 inserts SPS and PPS as non-VCL NAL units into the header area (for example, moov box) of the HEVC file 151.
- the control unit 215 controls encoding processing executed in the image encoding device 201.
- control unit 215 can control the generation of an encoded stream so as not to break the decoder buffer, using a virtual decoder model called HRD (Hypothetical Reference Decoder).
- HRD Hypothetical Reference Decoder
- two types of conformance points of type 1 and type 2 are defined as conformance points (standard conformance check points) to be satisfied by the encoded stream.
- Type 1 conformance points apply to VCL NAL units and filter data NAL units, not to non-VCL NAL units.
- Type 2 conformance points apply to VCL NAL units, filter data NAL units, and non-VCL NAL units.
- fillerfilldata is defined as a VCL NAL unit rather than a non-VCL NAL unit. Therefore, the control unit 215 may control the generation of the encoded stream so that not only the bit stream of the image data but also the filler data satisfies the type 1 conformance point.
- FIG. 14 is a block diagram illustrating an example of a configuration of an image decoding apparatus according to an embodiment for decoding an image from the MP4 file described above.
- the image decoding apparatus 251 includes a VCL buffer 261, a non-VCL buffer 262, a parameter memory 263, a decoding unit 264, and a control unit 265.
- VCL buffer 261, the non-VCL buffer 262, the parameter memory 263, and the control unit 265 in FIG. 14 correspond to the file reading unit 51 in FIG. Further, the decoding unit 264 in FIG. 14 corresponds to the decoder 52 in FIG.
- the VCL buffer 261 buffers the bit stream of image data and filler data read from the data area (for example, mdat box) of the file.
- the non-VCL buffer 262 buffers a parameter set read from a file header area (for example, a moov box).
- the parameter memory 263 collectively stores the parameter set in the header area of the file acquired via the non-VCL buffer 262.
- the decoding unit 264 is a decoder that operates according to the HEVC method.
- the decoding unit 264 decodes an image from a bit stream that is sequentially acquired from the data area of the file via the VCL buffer 261.
- the decoding unit 264 uses parameters in the SPS and PPS stored in the parameter memory 263 when decoding an image.
- the control unit 265 controls the decoding process executed in the image decoding device 251.
- FIG. 15 is a diagram illustrating an example of a conventional MP4 video sample structure. NAL units constituting a video sample are defined as shown in FIG.
- an AVC stream composed of a plurality of NAL units is shown.
- one picture is one access unit.
- the types of NAL units that make up an access unit include units such as SPS, PPS, access unit delimiter (access unit delimiter), SEI, IDR picture, non IDR picture, end of sequence (end of ⁇ ⁇ ⁇ sequence), and filler data. .
- one access unit is stored in one video sample. That is, each NAL unit constituting one access unit is added with Unit ⁇ ⁇ ⁇ size and stored in one video sample.
- the NAL units constituting the access unit include SPS, PPS, and filler data NAL units, the SPS, PPS, and filler data NAL units are excluded from the video samples.
- the first access unit from the left consists of NAL units of access unit delimiters, SPS, PPS, SEI, and IDR pictures.
- NAL units of SPS and PPS are Are excluded.
- the second access unit from the left consists of the access unit delimiter, SPS, SEI, nonIDR picture, and filler data NAL unit.
- SPS and filler data NAL unit are excluded.
- the third access unit from the left is composed of access unit delimiters, SPS, SEI, and non-IDR picture NAL units, but the SPS NAL unit is excluded when storing the access unit in the sample. .
- FIG. 16 is a diagram illustrating a configuration example of one access unit of an AVC stream.
- an identifier (startcode) is added in front of each NAL unit. Identifiers are also excluded.
- the access unit is stored as it is in the MP4 sample.
- Example of storing the access unit of this technology 17 and 18 are diagrams illustrating examples of the MP4 video sample structure of the present technology.
- the unit size describing the size of the access unit is added to the head of the access unit, and the access unit is stored as it is in the MP4 sample. “As is” means that the startcode is still added, and if there is filler data, the filler data is not deleted. That is, “as is” means that startcode and fillerfilldata are still set.
- Step S75 of FIG. 11 or Step S96 of FIG. 12 described above access units corresponding to Unit size are detected, and among them, NAL is detected based on startcode.
- step S76 in FIG. 11 or step S97 in FIG. 12 NAL data up to the next startcode IV is acquired.
- the structure is very simple.
- the unit size describing the size of each NAL unit including startcode is added to the head of each NAL unit constituting the access unit, and the access unit is stored as it is in the MP4 sample. Yes.
- startcode + NAL corresponding to Unit size is detected in step S75 in Fig. 11 or step S96 in Fig. 12 described above. Then, in step S76 of FIG. 11 or step S97 of FIG. 12, the start code is discarded and NAL data is acquired.
- the implementation is similar to the conventional size + data structure, but the startcode needs to be interpreted from the obtained data structure.
- the unit size describing the size of each NAL unit is added to the head of each NAL unit constituting the access unit, and the size of the startcode including 0 data, that is, NAL Offset sizes up to are added.
- the NAL unit in which the unit size and the offset size are added to the MP4 sample is stored as it is.
- step S76 of FIG. 11 or step S97 of FIG. 12 NAL data corresponding to the unit size is acquired.
- C in FIG. 18 is an example in which the FixedStartCodeSizeFlag of the HRD Conformance Box shown in FIG. 19 described later is 0.
- FixedStartCodeSizeFlag is 0, start code size is not fixed, so the size of startcode is stored in offset size field.
- the unit size describing the size of each NAL unit is added to the head of each NAL unit constituting the access unit, and the NAL unit is stored as it is in the MP4 sample. Yes.
- the size of each NAL unit, the size of startcode, and the unit size in which startcode is described are added to the head of each NAL unit constituting the access unit, and further includes 0 data.
- the size of startcode that is, the offset size up to NAL is added.
- the NAL unit in which the unit size and the offset size are added to the MP4 sample is stored as it is.
- step S75 of FIG. 11 or step S96 of FIG. 12 described above the offset size + startcode + NAL for the unit size is detected, the offset size is acquired, and from the position where the offset is skipped, NAL is detected.
- step S76 in FIG. 11 or step S97 in FIG. 12 NAL data corresponding to Unit size ⁇ (offset size + startcode) is acquired.
- D of FIG. 18 is an example when FixedStartCodeSizeFlag of HRD Conformance Box is 0.
- FixedStartCodeSizeFlag is 0, start code size is not fixed, so the size of startcode is stored in offset size field.
- the structure is close to the conventional size + data structure, and the implementation is as before, but it is a parse structure that skips the offset size at the beginning of the obtained data structure. In this case, startcode needs to be interpreted.
- FIG. 19 is a diagram illustrating an example of HRD Conformance Box extension. An example of HRD Conformance Box extension is also shown below.
- AVCSampleEntry extends VisualSampleEntry ('type') ⁇ // type is 'avc3' or 'avc4', (and all hevc) AVCConfigurationBox config; MPEG4BitRateBox (); // Optional MPEG4ExtensionDescriptorsBox (); // Optional HRDConformanceBox (); // Optional ⁇ Add HRDConformanceBox into AVCSampleEntry and AVC2SVVSampleEntry in 5.4.2.1 Add HRDConformanceBox into AVCSVCSampleEntry, AVC2SVCSampleEntry and SVCSampleEntry in 6.5.3.1.
- HRDConformanceBox into AVCMVCSampleEntry, AVC2MVCSampleEntry and MVCSampleEntry in section7.6.3.3. Add HRDConformanceBox into HEVC SampleEntry in section 8.4.1.1. Sample entry without HRDConformanceBox is used only for samples without start codes nor fillers. HRDConformanceBox can be defined as follows.
- HRDConformanceFlag is equal to1, the HRD parameters, eg buffering period SEI, picture timing SEI, was changed by removing startcode, filler data, etc from the elementary stream
- FixedStartCodeSizeFlag is the idetifier when startcode in each NAL is fixed size of 4 bytes.When FixedStartCodeSizeFlag is equal to 1, no offset field is for each NAL in sample data to indicate the size of Start Code.
- Offset exampleMinusOne indicates the length in bytes of the StartcodeLength field in a video sample minus one.For example, a size of one byte is indicated with a value of 0.The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
- HRDConformanceBox is useful to indicate the status of HRD conformance even in the other options.
- FixedStartCodeSizeFlag which is a flag for identifying the presence / absence of startcode size information, is additionally defined in the HRD Conformance Box.
- FIG. 20 is a diagram illustrating another example of the MP4 video sample structure according to the present technology.
- the unit size is removed from the mdat, and the elementary stream including the startcode is stored (stored) without change.
- offset_count is an integer that gives the number of entries in the following subtable.
- offset_size is an integer that gives the byte size of the offset field in the following subtable.
- offset is an integer that gives the offset of the start of a NAL unit into its containing sample.
- a list of offsets may be included at the beginning of each sample as shown in the example of E ′ in FIG. Good.
- MP4 video sample file shown in FIGS. 17 and 18 is generated by the file generation process shown in FIG. 4 or 5 by the file generation unit 2 having the configuration shown in FIG.
- the MP4 video sample file shown in FIGS. 20 and 22 is also generated by the file generation process shown in FIG. 4 or 5 by the file generation unit 2 having the configuration shown in FIG.
- the MP4 video sample file shown in FIGS. 17 and 18 is decoded by the above-described file decoding process shown in FIG. 11 or FIG.
- the MP4 video sample files shown in FIGS. 20 and 22 are also decoded by the file reading unit 51 shown in FIG.
- FIG. 23 is a diagram illustrating still another example of the MP4 video sample structure according to the present technology.
- the unit size is removed from the mdat, and the elementary stream including the startcode is stored (stored) without change.
- startcode start code
- NAL unit NAL unit
- a sample auxiliary information function defined in ISO / IEC 14496-12 is applied.
- the sample auxiliary information function is referred to by 'saiz' which is a sample auxiliary information function size box (SampleAuxiliaryInformationSizesBox) to be used and 'saio' which is a sample auxiliary information function offset box.
- FIG. 24 is a diagram illustrating an example of the format of the sample auxiliary information function. An example of the format of the sample auxiliary information function is also shown below.
- NALUnitSizeMinusOne indicates the length in bytes of the NALUnit Size field minus one.For example, a size of one byte is indicated with a value of 0.The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
- StartcodeSize indicates the length in bytes of the Startcode of subsample in a sample
- NALUnitSize indicates the length in bytes of the Startcode of subsample in a sample
- StartcodeSizeMinusOne indicates a value obtained by subtracting 1 from the byte length of the start code size field (StartcodeStartSize field). For example, when the byte length of the start code size field is 1 byte, the value of StartcodeSizeMinusOne is 0. The value of StartcodeSizeMinusOne is 0, 1, or 3 corresponding to the code length of 1 byte, 2 bytes, or 4 bytes.
- NALUnitSizeMinusOne indicates a value obtained by subtracting 1 from the byte length of the NAL unit size field (NALUnit Size field). For example, when the byte length of the NAL unit size field is 1 byte, the value of NALUnitSizeMinusOne is 0. The value of NALUnitSizeMinusOne is 0, 1, or 3 corresponding to the code length of 1 byte, 2 bytes, or 4 bytes.
- StartcodeSize indicates the byte length of the start code of the subsample in the sample.
- NALUnitSize indicates the byte length of the NAL unit (NAL unit) of the subsample in the sample.
- the format of the sample auxiliary information function may be as follows.
- FIG. 25 is a diagram illustrating another example of the format of the sample auxiliary information function. In the following, another example of the format of the sample auxiliary information function is also shown.
- Start value SizeMinusOne indicates the length in bytes of the Startcode Size field minus one.For example, a size of one byte is indicated with a value of 0.The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
- NALUnitSizeMinusOne indicates the length in bytes of the NALUnit Size field minus one.For example, a size of one byte is indicated with a value of 0.The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
- StartcodeSize indicates the length in bytes of the Startcode of subsample in a sample
- NALUnitSize indicates the length in bytes of the Startcode of subsample in a sample
- FixedStartCodeSizeFlag is flag information. This is flag information indicating whether or not the size of the start code (startcode) before each NAL unit (NAL unit) is 4 bytes. If the size of the start code (startcode) before each NAL unit (NAL unit) is 4 bytes, the value of FixedStartCodeSizeFlag is set to 1; otherwise, it is set to 0. In other words, when the value of FixedStartCodeSizeFlag is 1, it indicates that the size of the start code (startcode) before each NAL unit (NAL unit) is 4 bytes, and when the value of FixedStartCodeSizeFlag is 0, each NAL Indicates that the size of the start code (startcode) before the unit (NAL unit) is not 4 bytes.
- MP4 video sample file in FIG. 23 is generated by the file generation process in FIG. 4 or 5 described above by the file generation unit 2 having the configuration in FIG. 3 described above.
- MP4 video sample file shown in FIG. 23 is decoded by the file reading unit 51 shown in FIG.
- sample Auxiliary Information with aux_info_type equal to 'nalz' and aux_info_type_parameter equal to 0.
- sample Auxiliary Information is referenced by using a SampleAuxiliaryInformationSizesBox ('saiz') and a SampleAuxiliaryInformationOffsetsBox ('saio')
- Start example Size anus of the length in bytes of the Startcode Size field minus one.
- a size of one byte is indicated with a value of 0.
- the value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
- NALUnitSizeMinusOne indicates the length in bytes of the NALUnit Size field minus one.
- a size of one byte is indicated with a value of 0.
- the value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
- StartcodeSize indicates the length in bytes of the Startcode of subsample in a sample
- NALUnitSize indicates the length in bytes of the NAL unit of subsample in a sample
- the storage example of the access unit B in FIG. 17 has an advantage of being close to the conventional (current) size + data structure.
- the storage example of the access unit C in FIG. 18 or C ′ in FIG. 18 is close to the conventional (current) size + data structure, and has the advantage that the unit size semantics are not changed. Also, when the startcode size is fixed, there is an advantage that the data structure is the same as the conventional (current) file format design.
- the example of storing the access unit D in FIG. 18 or D ′ in FIG. 18 has an advantage of being close to the conventional (current) size + data structure.
- the store to the elementary stream is simple (that is, it is not necessary to remove the startcode, and it is not necessary to add the unit size or the startcode size. ).
- C in FIG. 18 or C ′ in FIG. 18 is the best proposal.
- E in FIG. 20 or E ′ in FIG. 22 is the best way to store an elementary stream without any changes.
- FIG. 27 is a diagram showing another example of the MP4 video sample structure of FIG.
- each start code (startcode) is included in the NAL unit (NAL unit), and the length of the NAL unit including the start code is stored in the ISO.
- the sample auxiliary information function specified in / IEC 14496-12 is applied.
- the sample auxiliary information function is referred to by 'saiz' which is a sample auxiliary information function size box (SampleAuxiliaryInformationSizesBox) to be used and 'saio' which is a sample auxiliary information function offset box.
- the length of the start code is not stored as the sample auxiliary information function, but only the length of the NAL unit including the start code is stored. Therefore, the example of G in FIG. 27 is the same as the example of F in FIG. 23 except that the length of the start code is not stored.
- the MP4 video sample file shown in FIG. 27 is generated by the file generation process shown in FIG. 4 or 5 by the file generation unit 2 having the configuration shown in FIG.
- MP4 video sample file shown in FIG. 27 is decoded by the file reading unit 51 shown in FIG.
- a byte stream format that is a stream including startcode stored in an MPEG2-PS file is defined.
- a byte stream format information box for storing byte stream format information is defined so that it can be identified whether there is a byte stream in the sample.
- Byte stream format information box is optionally defined for sample entries that can contain parameter sets. Sample entries that can contain parameter sets etc. can also be stored as byte streams. At this time, this box is stored in order to signal that it is a byte stream.
- the Byte Stream Format Information Box may be stored in 'avc3', 'avc4', 'mvc3', 'mvc4' or 'hev1' Sample Entry (in Sample entry box of media track). This box SHALL be stored when sample data is structured by Byte Stream Format as defined in ISO / IEC 14496-10.
- the Sub-Sample Information Box may be used to store one or more contiguous Byte stream NAL unit size a sub-sample is defined as one or more contiguous Byte stream NAL units as defined in ISO / IEC 14496-10.
- the byte stream format information box is stored (stored) in the sample entry of 'avc3', 'avc4', 'mvc3', 'mvc4', or 'hevc1' in the sample entry box of the media track.
- the sample entry of 'avc3', 'avc4', 'mvc3', 'mvc4', or 'hevc1' is a sample entry that can contain a parameter set or the like.
- the subsample information box may be used to store a NAL unit size including one or more consecutive startcodes.
- a subsample is defined as one or more consecutive byte stream NAL units as defined in ISO / IEC 14496-10.
- box type is 'bsfi'
- the included (Container) is a sample entry of 'avc3', 'avc4', 'mvc3', 'mvc4', or 'hevc1'.
- Constant a sample entry of 'avc3', 'avc4', 'mvc3', 'mvc4', or 'hevc1'.
- the byte stream format information box extends the 'bsfi' box in which the byte stream format information is described.
- sample entries of new formats 'avc5', 'avc6', 'mvc5', 'mvc6', or 'hevc2' The sample entry can be expanded simply by inserting.
- FIG. 29 is a diagram showing another example of the byte stream format information box.
- the Byte Stream Format Information Box SHALL be stored in 'avc5', 'avc6', 'mvc5', 'mvc6' or 'hev2' Sample Entry (in Sample entry box of media track). This box SHALL be stored when sample data is structured by Byte Stream Format as defined in ISO / IEC 14496-10.
- the Sub-Sample Information Box may be used to store one or more contiguous Byte stream NAL unit size a sub-sample is defined as one or more contiguous Byte stream NAL units as defined in ISO / IEC 14496-10.
- 'avc3', 'avc4', 'mvc3', 'mvc4', or 'hevc1' is a type of codec that can contain a parameter set, but 'avc3', 'avc4', 'mvc3', In case of 'mvc4' or 'hevc1', startcode may or may not be entered.
- the codec type including all startcodes is expanded to 'avc5', 'avc6', 'mvc5', 'mvc6' or 'hev2', etc.
- this sample entry it is possible to identify whether or not there is a byte stream in the sample.
- the sample entry is 'avc3', 'avc4', 'mvc3', 'mvc4', or 'hevc1'
- the byte stream format information as follows, Whether or not there is a byte stream (that is, whether or not startcode is included) can be identified.
- the byte stream format information is configured as follows to indicate the structure of the subsample byte stream be able to.
- FIG. 30 is a diagram for explaining an example data structure of byte stream format information stored in each sample entry.
- StartcodePresentFlag is a flag indicating the presence or absence of Startcode in the sample. If all subsamples in the sample include a 3-byte Startcode before the NAL unit, StartcodePresentFlag is 1.
- ZeroBytePresentFlag is a flag indicating the presence or absence of 1-byte zero data before Startcode. When this Flag is 1, it indicates that Startcode is 4 bytes.
- StartcodePresentFlag and ZeroBytePresentFlag
- a 2-bit flag may be used to indicate whether the Startcode is 3 bytes or 4 bytes.
- LeadingZeroBytePresentFlag is a flag indicating the presence or absence of 0 data in the sample.
- LeadingZeroBytePresentFlag becomes 1 when a plurality of 1-byte 0x00 is included before 3 bytes or 4 bytes of at least one of the subsamples in the sample.
- LeadingZeroBytePresentFlag is 0, it can be seen that the top of the subsample is a fixed-length start code.
- TrailingZeroBytePresentFlag is a flag indicating the presence or absence of 0 data in the sample. TrailingZeroBytePresentFlag is 1 when a plurality of 1-byte 0x00 is included after the 3-byte NAL unit of at least one of the sub-samples in the sample.
- FIG. 31 is a diagram illustrating an example of an MP4 video sample structure in the case of pattern 1 having 0x00 (0 data) before and after the NAL unit. That is, in the example of FIG. 31, an example of the MP4 video sample structure in the case where StartcodePresentFlag, ZeroBytePresentFlag, LeadingZeroBytePresentFlag, and TrailingZeroBytePresentFlag, which are the above-described byte stream format information flags, are all 1 is shown.
- the sample is composed of 5 subsamples, and the size of the 5 subsamples is stored in the sample size box as the sample size.
- the subsample is composed of leading 0 data (LeadingZeroBytes), Startcode (4 bytes), NAL unit, and trailing 0 data (TrailingZeroBytes).
- the size from the leading 0 data to the trailing 0 data is sub
- the sample size is stored in the subsample information box. That is, since the subsample information box has the size of the subsample, the subsample boundary can be known.
- the sample auxiliary information function is referred to by 'saiz' which is a sample auxiliary information function size box (SampleAuxiliaryInformationSizesBox) to be used and 'saio' which is a sample auxiliary information function offset box.
- this operation may be used in CBR (constant bit rate) for business use. Therefore, this pattern 1 is suitable, for example, when it is used for a stream in which all for business use is composed of intra pictures.
- the separation between LeadingZeroBytes and TrailingZeroBytes may be set by operating the application, for example.
- FIG. 32 is a diagram illustrating an example of the MP4 video sample structure in the case of the pattern 2 in which the subsample starts from Startcode and does not have 0x00 (0 data). That is, in the example of FIG. 32, an example of the MP4 video sample structure in the case where StartcodePresentFlag and ZeroBytePresentFlag are 1 and LeadingZeroBytePresentFlag and TrailingZeroBytePresentFlag is 0 is shown.
- the subsample is composed of Startcode (4 bytes) and NAL unit, and the size from Startcode to NAL unit is stored in the subsample information box as the size of the subsample. That is, since the subsample information box has the size of the subsample, the subsample boundary can be known.
- This pattern 2 is the simplest example.
- FIG. 33 is a diagram illustrating an example of the MP4 video sample structure in the case of the pattern 3 in which the subsample starts from Startcode and NAL is followed by 0x00 (0 data). That is, in the example of FIG. 33, an example of an MP4 video sample structure in the case where StartcodePresentFlag, ZeroBytePresentFlag, and TrailingZeroBytePresentFlag is 1 and LeadingZeroBytePresentFlag is 0 is shown.
- the sample is composed of five subsamples, and the size of the five subsamples is stored in the sample size box as the sample size.
- the subsample consists of Startcode (4 bytes), NAL unit, and trailing 0 data (TrailingZeroBytes).
- Startcode 4 bytes
- NAL unit NAL unit
- trailing 0 data TrailingZeroBytes
- the size from Startcode to trailing 0 data is stored in the subsample information box as the subsample size. ing. That is, since the subsample information box has the size of the subsample, the subsample boundary can be known.
- this pattern 3 has an advantage that it is easy to edit because, for example, in a stream editing machine composed of all intra pictures for business use, it can be seen that TrailingZero has a fixed length.
- the 3 byte start code may be used in a video conference system.
- the byte stream format information is boxed and the byte stream format information is defined.
- the subsample is configured as any one of the patterns 1 to 3 described above with reference to FIGS. 31 to 33, it is possible to identify whether or not the sample is a byte stream.
- the files of the MP4 video samples shown in FIGS. 31 to 33 are generated by the file generation process shown in FIG. 4 or 5 by the file generation unit 2 having the configuration shown in FIG.
- each MP4 video sample file shown in FIG. 31 to FIG. 33 is decoded by the file reading unit 51 shown in FIG.
- FIG. 34 is a diagram for explaining an example data structure of byte stream format information stored in each sample entry. That is, in the example of FIG. 34, another example of the data structure described above with reference to FIG. 30 is shown.
- StartcodePresentFlag is a 2-bit flag indicating the structure of Startcode of all subsamples.
- StartcodePresentFlag 00b indicates reserved.
- StartcodePresentFlag 01b indicates that all subsamples in the sample include a 3-byte Startcode before the NAL unit.
- StartcodePresentFlag 10b indicates that all subsamples in the sample include 3 bytes of Startcode and 1 byte of ZeroByte data (ie, 4 bytes) before the NAL unit.
- StartcodePresentFlag 11b indicates that all sub-samples in the sample include 3 bytes of Startcode and 1 byte of ZeroByte data before the NAL unit. That is, in this case, since there is a possibility that 3 bytes and 4 bytes of Startcode are mixed, it cannot be guaranteed whether it is 01b or 10b.
- This example is another example of the structure example described with reference to FIG. 30 and is an example in which the size of the Startcode is known.
- a 2 bit flag indicates 3 bytes, 4 bytes, or a mixture thereof.
- LeadingZeroBytePresentFlag indicates that among the subsamples in the sample, a plurality of 1 byte 0x00 may be included before 3 bytes or 4 bytes of Startcode of at least one subsample.
- TrailingZeroBytePresentFlag indicates that a plurality of 1 byte 0x00 may be included after the NAL unit of at least one subsample among the subsamples in the sample.
- FIG. 35 is a block diagram illustrating a configuration example of a file conversion apparatus as an image processing apparatus to which the present technology is applied.
- the file conversion apparatus 300 in FIG. 35 converts, for example, MPEG-2 TS into an MP4 file.
- the file conversion apparatus 300 is configured to include a video stream analysis unit 311 and the file generation unit 2 of FIG.
- the video stream analysis unit 311 analyzes the format of the input video stream, and supplies the video stream to the file generation unit 2 when analyzing the MPEG-2 TS.
- the file generation unit 2 performs processing to convert MPEG-2 TS to MP4 file. That is, the file generation unit 2 generates an MP4 file that stores MPEG-2 TS as in the example of FIG.
- step S311 the video stream analysis unit 311 analyzes the format of the input video stream, and if the video stream analysis unit 311 analyzes that it is MPEG-2 TS, supplies the video stream to the file generation unit 2.
- step S312 the file generation unit 2 generates an MP4 file storing MPEG-2 TS. Since this file generation process is the same as the file generation process described above with reference to FIG. 5, the description thereof will be omitted to avoid repetition.
- the file conversion apparatus 300 can also be configured.
- the encoding device and decoding device based on the HEVC method have been described, but the present technology can also be applied to an encoding device and decoding device based on the AVC method, as will be described below.
- FIG. 37 is a block diagram illustrating another configuration example of the encoding device as the image processing device to which the present technology is applied.
- FIG. 37 differs from the configuration of FIG. 1 in that an encoder 401 is provided instead of the encoder 1.
- the configuration of the encoding device in FIG. 37 is common to the configuration in FIG. 1 in that the file generation unit 2 is provided.
- an image such as a captured image in units of frames is input to the encoder 401 as an input signal. Further, SPS set in the preceding stage of the encoder 401 (not shown), VUI, SEI, and the like indicating the characteristics of the image corresponding to the encoded data for each sequence are also input.
- Encoder 401 encodes an input signal by the AVC method using parameters included in SPS, PPS, VUI, and SEI. Then, the encoder 401 generates an encoded stream such as MPEG-2 TS from the SPS, PPS, VUI, SEI and the encoded data obtained as a result, and transmits the generated encoded stream to the file generation unit 2. Supply. Details of the encoder 401 will be described later with reference to FIG.
- the file generation unit 2 generates a file that stores the encoded stream (encoded series of image data) from the encoder 401.
- the encoding apparatus of FIG. 36 is different from the encoding apparatus of FIG. 1 only in that encoding processing by the AVC method is performed.
- FIG. 38 is a block diagram illustrating a configuration example of the encoder 401 in FIG.
- a / D conversion unit 11 includes an A / D conversion unit 11, a screen rearrangement buffer 12, a calculation unit 13, an orthogonal transformation unit 14, a quantization unit 15, a lossless encoding unit 16, a storage buffer 17, an inverse quantization unit 18, An inverse orthogonal transform unit 19, an addition unit 20, a deblock filter 21, a frame memory 22, a switch 23, an intra prediction unit 24, a motion prediction / compensation unit 25, a predicted image selection unit 26, and a rate control unit 27 are configured. Is done.
- the configuration of the encoder 401 in FIG. 38 is only illustrated in that the adaptive offset filter 141 and the adaptive loop filter 142 are removed, and that the lossless encoding unit 16 performs encoding using the AVC method instead of the HEVC method. Different from the configuration of 2. Therefore, in the encoder 401, encoding processing is performed in units of blocks, not in units of CUs.
- the object of the encoding process of the lossless encoding unit 16 is basically the same as that of the lossless encoding unit 16 of FIG. 2 except for the parameters of the adaptive offset filter and the adaptive loop filter. That is, the lossless encoding unit 16 acquires the intra prediction mode information from the intra prediction unit 24 as in the case of the lossless encoding unit 16 of FIG. Also, inter prediction mode information, motion vectors, information for specifying a reference image, and the like are acquired from the motion prediction / compensation unit 25.
- the lossless encoding unit 16 performs variable length encoding (for example, CAVLC) and arithmetic encoding on the quantized coefficient supplied from the quantization unit 15.
- Variable length encoding for example, CAVLC
- CABAC for example, CABAC
- the lossless encoding unit 16 similarly to the lossless encoding unit 16 of FIG. 2, intra prediction mode information, inter prediction mode information, motion vector, information specifying a reference image, offset filter information, and filter coefficients Etc. are losslessly encoded as encoding information relating to encoding.
- the lossless encoding unit 16 supplies the encoding information and the coefficients that have been losslessly encoded to the accumulation buffer 17 as encoded data and accumulates them.
- the losslessly encoded information may be the header information of the losslessly encoded coefficient.
- the deblocking filter 21 removes block distortion by filtering the locally decoded image supplied from the adding unit 20.
- the deblocking filter 21 supplies the image obtained as a result to the frame memory 22 and accumulates it.
- the image stored in the frame memory 22 is output as a reference image to the intra prediction unit 24 or the motion prediction / compensation unit 25 via the switch 23.
- the present technology can also be applied to such an AVC encoding device.
- FIG. 39 is a block diagram illustrating another configuration example of a decoding device to which the present technology is applied, which reads and decodes a file generated by the encoding device of FIG.
- FIG 39 differs from the configuration of FIG. 8 in that a decoder 451 is provided instead of the decoder 52.
- the configuration of the decryption device 251 is common to the configuration of FIG. 8 in that the file reading unit 51 is provided.
- the file reading unit 51 of the decoding device receives the MP4 file generated by the encoding device of FIG. 37, and from the received file, the SPS, PPS, and SPS that constitute the encoded stream encoded by the encoder 401 of FIG. Read VUI, SEI, encoded data, etc.
- the file reading unit 51 supplies SPS, PPS, VUI, SEI, and encoded data to the decoder 451.
- the decoder 451 Under the control of the file reading unit 51, the decoder 451 refers to SPS, PPS, VUI, SEI, etc. supplied from the file reading unit 51, and decodes the encoded data supplied from the file reading unit 51 by the AVC method. To do.
- the decoder 451 supplies an image obtained as a result of decoding to the subsequent stage as an output signal.
- the decoding device of FIG. 39 is different from the decoding device of FIG. 8 only in that the decoding process by the AVC method is performed.
- FIG. 40 is a block diagram illustrating a configuration example of the decoding unit 261 in FIG.
- the 40 includes a storage buffer 101, a lossless decoding unit 102, an inverse quantization unit 103, an inverse orthogonal transform unit 104, an addition unit 105, a deblock filter 106, a screen rearrangement buffer 107, a D / A conversion unit 108, The frame memory 109, the switch 110, the intra prediction unit 111, the motion compensation unit 112, and the switch 113 are included.
- the configuration of the decoder 451 in FIG. 40 is the same as the configuration in FIG. 10 except that the adaptive offset filter 141 and the adaptive loop filter 142 are removed and that the lossless decoding unit 102 performs decoding by the AVC method instead of the HEVC method. Different. Therefore, in the decoding unit 261, the decoding process is performed in units of blocks, not in units of CUs.
- the object of the decoding process of the lossless decoding unit 102 is basically the same as that of the lossless decoding unit 102 of FIG. 10 except for the parameters of the adaptive offset filter and the adaptive loop filter. That is, the lossless decoding unit 102 is quantized by performing lossless decoding such as variable-length decoding and arithmetic decoding on the encoded data from the storage buffer 101, similarly to the lossless decoding unit 102 of FIG. Coefficient and coding information are obtained. The lossless decoding unit 102 supplies the quantized coefficient to the inverse quantization unit 103.
- the lossless decoding unit 102 supplies intra prediction mode information or the like as encoded information to the intra prediction unit 111 in the same manner as the lossless decoding unit 102 of FIG. 10, and information for specifying a motion vector and a reference image, Inter prediction mode information and the like are supplied to the motion compensation unit 112. Further, the lossless decoding unit 102 supplies intra prediction mode information or inter prediction mode information as encoded information to the switch 113.
- the deblock filter 106 removes block distortion by filtering the image supplied from the addition unit 105.
- the deblocking filter 106 supplies the resulting image to the frame memory 109 and the screen rearrangement buffer 107.
- the present technology can also be applied to such an AVC decoding device.
- the file format is not limited to the MP4 file format or the AVC file format. If the problems and effects of the present technology are the same, the present invention can be similarly applied to another file format, a stream used for transmission, and a stream used for storing in a file.
- the present disclosure provides, for example, image information (bitstream) compressed by orthogonal transformation such as discrete cosine transformation and motion compensation, such as HEVC, satellite broadcasting, cable television, the Internet, or a mobile phone.
- image information such as discrete cosine transformation and motion compensation
- HEVC discrete cosine transformation and motion compensation
- the present invention can be applied to an image encoding device and an image decoding device used when receiving via a network medium.
- the present disclosure can be applied to an image encoding device and an image decoding device that are used when processing on a storage medium such as an optical disk, a magnetic disk, and a flash memory.
- the series of processes described above can be executed by hardware or can be executed by software.
- a program constituting the software is installed in the computer.
- the computer includes, for example, a general-purpose personal computer capable of executing various functions by installing various programs by installing a computer incorporated in dedicated hardware.
- FIG. 41 is a block diagram showing an example of a hardware configuration of a computer that executes the above-described series of processing by a program.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- an input / output interface 805 is connected to the bus 804.
- An input unit 806, an output unit 807, a storage unit 808, a communication unit 809, and a drive 810 are connected to the input / output interface 805.
- the input unit 806 includes a keyboard, a mouse, a microphone, and the like.
- the output unit 807 includes a display, a speaker, and the like.
- the storage unit 808 includes a hard disk, a nonvolatile memory, and the like.
- the communication unit 809 includes a network interface or the like.
- the drive 810 drives a removable medium 811 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
- the CPU 801 loads the program stored in the storage unit 808 to the RAM 803 via the input / output interface 805 and the bus 804 and executes the program, for example. Is performed.
- the program executed by the computer 800 can be provided by being recorded in, for example, a removable medium 811 as a package medium or the like.
- the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
- the program can be installed in the storage unit 808 via the input / output interface 805 by attaching the removable medium 811 to the drive 810.
- the program can be received by the communication unit 809 via a wired or wireless transmission medium and installed in the storage unit 808.
- the program can be installed in the ROM 802 or the storage unit 808 in advance.
- the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
- the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
- system represents the entire apparatus composed of a plurality of devices (apparatuses).
- the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
- the configurations described above as a plurality of devices (or processing units) may be combined into a single device (or processing unit).
- a configuration other than that described above may be added to the configuration of each device (or each processing unit).
- a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). . That is, the present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present technology.
- the present technology can take a configuration of cloud computing in which one function is shared by a plurality of devices via a network and is jointly processed.
- each step described in the above flowchart can be executed by being shared by a plurality of apparatuses in addition to being executed by one apparatus.
- the plurality of processes included in the one step can be executed by being shared by a plurality of apparatuses in addition to being executed by one apparatus.
- An image encoding device and an image decoding device include a transmitter or a receiver in optical broadcasting, satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, etc.
- the present invention can be applied to various electronic devices such as a recording device that records an image on a medium such as a magnetic disk and a flash memory, or a playback device that reproduces an image from these storage media.
- a recording device that records an image on a medium such as a magnetic disk and a flash memory
- a playback device that reproduces an image from these storage media.
- FIG. 42 illustrates an example of a schematic configuration of a television device to which the above-described embodiment is applied.
- the television apparatus 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface 909, a control unit 910, a user interface 911, And a bus 912.
- Tuner 902 extracts a signal of a desired channel from a broadcast signal received via antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the encoded bit stream obtained by the demodulation to the demultiplexer 903. In other words, the tuner 902 serves as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the demultiplexer 903 separates the video stream and audio stream of the viewing target program from the encoded bit stream, and outputs each separated stream to the decoder 904. Further, the demultiplexer 903 extracts auxiliary data such as EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may perform descrambling when the encoded bit stream is scrambled.
- EPG Electronic Program Guide
- the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. In addition, the decoder 904 outputs audio data generated by the decoding process to the audio signal processing unit 907.
- the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display the video.
- the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network.
- the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting.
- the video signal processing unit 905 may generate a GUI (Graphical User Interface) image such as a menu, a button, or a cursor, and superimpose the generated image on the output image.
- GUI Graphic User Interface
- the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays an image on a video screen of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on the audio data input from the decoder 904, and outputs audio from the speaker 908.
- the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
- the external interface 909 is an interface for connecting the television apparatus 900 to an external device or a network.
- a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also has a role as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the control unit 910 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
- the program stored in the memory is read and executed by the CPU when the television apparatus 900 is activated.
- the CPU executes the program to control the operation of the television device 900 according to an operation signal input from the user interface 911, for example.
- the user interface 911 is connected to the control unit 910.
- the user interface 911 includes, for example, buttons and switches for the user to operate the television device 900, a remote control signal receiving unit, and the like.
- the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
- the bus 912 connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910 to each other.
- the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment (for example, the decoding apparatus including the file reading unit 51 and the decoder 52 in FIG. 8). Thereby, when decoding an image on the television device 900, it is possible to reduce a processing load when decoding a stream used for transmission or a stream used for storing in a file.
- FIG. 43 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
- a cellular phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, a control unit 931, an operation A portion 932 and a bus 933.
- the antenna 921 is connected to the communication unit 922.
- the speaker 924 and the microphone 925 are connected to the audio codec 923.
- the operation unit 932 is connected to the control unit 931.
- the bus 933 connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931 to each other.
- the mobile phone 920 has various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and is used for sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data. Perform the action.
- the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
- the audio codec 923 converts an analog audio signal into audio data, A / D converts the compressed audio data, and compresses it. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
- the communication unit 922 encodes and modulates the audio data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. In addition, the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
- the audio codec 923 decompresses the audio data and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the control unit 931 generates character data constituting the e-mail in response to an operation by the user via the operation unit 932.
- the control unit 931 causes the display unit 930 to display characters.
- the control unit 931 generates e-mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated e-mail data to the communication unit 922.
- the communication unit 922 encodes and modulates email data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to restore the email data, and outputs the restored email data to the control unit 931.
- the control unit 931 displays the content of the electronic mail on the display unit 930 and stores the electronic mail data in the storage medium of the recording / reproducing unit 929.
- the recording / reproducing unit 929 has an arbitrary readable / writable storage medium.
- the storage medium may be a built-in storage medium such as a RAM or a flash memory, or an externally mounted type such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Universal Serial Bus) memory, or memory card. It may be a storage medium.
- the camera unit 926 images a subject to generate image data, and outputs the generated image data to the image processing unit 927.
- the image processing unit 927 encodes the image data input from the camera unit 926 and stores the encoded stream in the storage medium of the storage / playback unit 929.
- the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the multiplexed stream is the communication unit 922. Output to.
- the communication unit 922 encodes and modulates the stream and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- These transmission signal and reception signal may include an encoded bit stream.
- the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
- the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
- the image processing unit 927 decodes the video stream and generates video data.
- the video data is supplied to the display unit 930, and a series of images is displayed on the display unit 930.
- the audio codec 923 decompresses the audio stream and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the image processing unit 927 includes an image encoding device (for example, an encoding device including the encoder 1 and the file generation unit 2 in FIG. 1) and an image decoding device according to the above-described embodiment. (For example, a decoding device including the file reading unit 51 and the decoder 52 in FIG. 8). Accordingly, when encoding and decoding an image with the mobile phone 920, it is possible to reduce a processing load when decoding a stream used for transmission or a stream used for storing in a file.
- FIG. 44 shows an example of a schematic configuration of a recording / reproducing apparatus to which the above-described embodiment is applied.
- the recording / reproducing device 940 encodes audio data and video data of a received broadcast program and records the encoded data on a recording medium.
- the recording / reproducing device 940 may encode audio data and video data acquired from another device and record them on a recording medium, for example.
- the recording / reproducing device 940 reproduces data recorded on the recording medium on a monitor and a speaker, for example, in accordance with a user instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
- the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. 950.
- Tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown), and demodulates the extracted signal. Then, the tuner 941 outputs the encoded bit stream obtained by the demodulation to the selector 946. That is, the tuner 941 has a role as a transmission unit in the recording / reproducing apparatus 940.
- the external interface 942 is an interface for connecting the recording / reproducing apparatus 940 to an external device or a network.
- the external interface 942 may be, for example, an IEEE1394 interface, a network interface, a USB interface, or a flash memory interface.
- video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 serves as a transmission unit in the recording / reproducing device 940.
- the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the encoded bit stream to the selector 946.
- the HDD 944 records an encoded bit stream in which content data such as video and audio is compressed, various programs, and other data on an internal hard disk. Further, the HDD 944 reads out these data from the hard disk when reproducing video and audio.
- the disk drive 945 performs recording and reading of data to and from the mounted recording medium.
- the recording medium mounted on the disk drive 945 is, for example, a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.) or a Blu-ray (registered trademark) disk. It may be.
- the selector 946 selects an encoded bit stream input from the tuner 941 or the encoder 943 when recording video and audio, and outputs the selected encoded bit stream to the HDD 944 or the disk drive 945. In addition, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 during video and audio reproduction.
- the decoder 947 decodes the encoded bit stream and generates video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. The decoder 904 outputs the generated audio data to an external speaker.
- OSD 948 reproduces the video data input from the decoder 947 and displays the video. Further, the OSD 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
- the control unit 949 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the recording / reproducing apparatus 940 is activated, for example.
- the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from the user interface 950, for example, by executing the program.
- the user interface 950 is connected to the control unit 949.
- the user interface 950 includes, for example, buttons and switches for the user to operate the recording / reproducing device 940, a remote control signal receiving unit, and the like.
- the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
- the encoder 943 has the function of the image encoding apparatus according to the above-described embodiment (for example, the encoding apparatus including the encoder 1 and the file generation unit 2 in FIG. 1).
- the decoder 947 has a function of the image decoding apparatus according to the above-described embodiment (for example, a decoding apparatus including the file reading unit 51 and the decoder 52 in FIG. 8).
- FIG. 45 illustrates an example of a schematic configuration of an imaging apparatus to which the above-described embodiment is applied.
- the imaging device 960 images a subject to generate an image, encodes the image data, and records it on a recording medium.
- the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972.
- the optical block 961 is connected to the imaging unit 962.
- the imaging unit 962 is connected to the signal processing unit 963.
- the display unit 965 is connected to the image processing unit 964.
- the user interface 971 is connected to the control unit 970.
- the bus 972 connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970 to each other.
- the optical block 961 includes a focus lens and a diaphragm mechanism.
- the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
- the imaging unit 962 includes an image sensor such as a CCD (Charge-Coupled Device) or a CMOS (Complementary Metal-Oxide Semiconductor), and converts an optical image formed on the imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
- CCD Charge-Coupled Device
- CMOS Complementary Metal-Oxide Semiconductor
- the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
- the signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.
- the image processing unit 964 encodes the image data input from the signal processing unit 963 and generates encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. In addition, the image processing unit 964 may display the image by outputting the image data input from the signal processing unit 963 to the display unit 965. Further, the image processing unit 964 may superimpose display data acquired from the OSD 969 on an image output to the display unit 965.
- the OSD 969 generates a GUI image such as a menu, a button, or a cursor, and outputs the generated image to the image processing unit 964.
- the external interface 966 is configured as a USB input / output terminal, for example.
- the external interface 966 connects the imaging device 960 and a printer, for example, when printing an image.
- a drive is connected to the external interface 966 as necessary.
- a removable medium such as a magnetic disk or an optical disk is attached to the drive, and a program read from the removable medium can be installed in the imaging device 960.
- the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
- the recording medium mounted on the media drive 968 may be any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
- a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive) may be configured.
- the control unit 970 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the imaging device 960 is activated, for example.
- the CPU controls the operation of the imaging device 960 according to an operation signal input from the user interface 971 by executing the program.
- the user interface 971 is connected to the control unit 970.
- the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
- the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
- the image processing unit 964 includes an image encoding device (for example, an encoding device including the encoder 1 and the file generation unit 2 in FIG. 1) and an image decoding device according to the above-described embodiment. (For example, a decoding device including the file reading unit 51 and the decoder 52 in FIG. 8). Accordingly, when encoding and decoding an image in the imaging device 960, it is possible to reduce a processing load when decoding a stream used for transmission or a stream used for storing in a file.
- FIG. 46 illustrates an example of a schematic configuration of a video set to which the present technology is applied.
- the video set 1300 shown in FIG. 46 has such a multi-functional configuration, and a device having a function relating to image encoding and decoding (either or both of them) can be used for the function. It is a combination of devices having other related functions.
- the video set 1300 includes a module group such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, and an associated module 1321, a camera 1322, a sensor 1323, and the like. And a device having a function.
- a cocoon module is a component that has several functions that are related to each other and that have a coherent function.
- the specific physical configuration is arbitrary. For example, a plurality of processors each having a function, electronic circuit elements such as resistors and capacitors, and other devices arranged on a wiring board or the like can be considered. . It is also possible to combine the module with another module, a processor, or the like to form a new module.
- the video module 1311 is a combination of configurations having functions related to image processing, and includes an application processor, a video processor, a broadband modem 1333, and an RF module 1334.
- the processor is a configuration in which a configuration having a predetermined function is integrated on a semiconductor chip by an SoC (System On Chip), and for example, there is also a system LSI (Large Scale Integration) or the like.
- the configuration having the predetermined function may be a logic circuit (hardware configuration), a CPU, a ROM, a RAM, and the like, and a program (software configuration) executed using them. , Or a combination of both.
- a processor has a logic circuit and a CPU, ROM, RAM, etc., a part of the function is realized by a logic circuit (hardware configuration), and other functions are executed by the CPU (software configuration) It may be realized by.
- the application processor 1331 in FIG. 46 is a processor that executes an application related to image processing.
- the application executed in the application processor 1331 not only performs arithmetic processing to realize a predetermined function, but also can control the internal and external configurations of the video module 1311 such as the video processor 1332 as necessary. .
- the video processor 1332 is a processor having a function related to image encoding / decoding (one or both of them).
- the broadband modem 1333 is a processor (or module) that performs processing related to wired or wireless (or both) broadband communication performed via a broadband line such as the Internet or a public telephone line network.
- the broadband modem 1333 digitally modulates data to be transmitted (digital signal) to convert it into an analog signal, or demodulates the received analog signal to convert it into data (digital signal).
- the broadband modem 1333 can digitally modulate and demodulate arbitrary information such as image data processed by the video processor 1332, a stream obtained by encoding the image data, an application program, setting data, and the like.
- the RF module 1334 is a module that performs frequency conversion, modulation / demodulation, amplification, filter processing, and the like on an RF (Radio RF Frequency) signal transmitted and received via an antenna. For example, the RF module 1334 generates an RF signal by performing frequency conversion or the like on the baseband signal generated by the broadband modem 1333. Further, for example, the RF module 1334 generates a baseband signal by performing frequency conversion or the like on the RF signal received via the front end module 1314.
- RF Radio RF Frequency
- the application processor 1331 and the video processor 1332 may be integrated into a single processor.
- the external memory 1312 is a module having a storage device that is provided outside the video module 1311 and is used by the video module 1311.
- the storage device of the external memory 1312 may be realized by any physical configuration, but is generally used for storing a large amount of data such as image data in units of frames. For example, it is desirable to realize it with a relatively inexpensive and large-capacity semiconductor memory such as DRAM (Dynamic Random Access Memory).
- the power management module 1313 manages and controls power supply to the video module 1311 (each component in the video module 1311).
- the front end module 1314 is a module that provides the RF module 1334 with a front end function (a circuit on a transmitting / receiving end on the antenna side). As illustrated in FIG. 46, the front end module 1314 includes, for example, an antenna unit 1351, a filter 1352, and an amplification unit 1353.
- Antenna unit 1351 has an antenna for transmitting and receiving a radio signal and its peripheral configuration.
- the antenna unit 1351 transmits the signal supplied from the amplification unit 1353 as a radio signal, and supplies the received radio signal to the filter 1352 as an electric signal (RF signal).
- the filter 1352 performs a filtering process on the RF signal received via the antenna unit 1351 and supplies the processed RF signal to the RF module 1334.
- the amplifying unit 1353 amplifies the RF signal supplied from the RF module 1334 and supplies the amplified RF signal to the antenna unit 1351.
- Connectivity 1321 is a module having a function related to connection with the outside.
- the physical configuration of the connectivity 1321 is arbitrary.
- the connectivity 1321 has a configuration having a communication function other than the communication standard supported by the broadband modem 1333, an external input / output terminal, and the like.
- the communication 1321 is compliant with wireless communication standards such as Bluetooth (registered trademark), IEEE 802.11 (for example, Wi-Fi (Wireless Fidelity, registered trademark)), NFC (Near Field Communication), IrDA (InfraRed Data Association), etc. You may make it have a module which has a function, an antenna etc. which transmit / receive the signal based on the standard.
- the connectivity 1321 has a module having a communication function compliant with a wired communication standard such as USB (Universal Serial Bus), HDMI (registered trademark) (High-Definition Multimedia Interface), or a terminal compliant with the standard. You may do it.
- the connectivity 1321 may have other data (signal) transmission functions such as analog input / output terminals.
- the connectivity 1321 may include a data (signal) transmission destination device.
- the drive 1321 reads and writes data to and from a recording medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory (not only a removable medium drive, but also a hard disk, SSD (Solid State Drive) NAS (including Network Attached Storage) and the like.
- the connectivity 1321 may include an image or audio output device (a monitor, a speaker, or the like).
- the eyelid camera 1322 is a module having a function of capturing an image of a subject and obtaining image data of the subject.
- Image data obtained by imaging by the camera 1322 is supplied to, for example, a video processor 1332 and encoded.
- the sensor 1323 includes, for example, a voice sensor, an ultrasonic sensor, an optical sensor, an illuminance sensor, an infrared sensor, an image sensor, a rotation sensor, an angle sensor, an angular velocity sensor, a velocity sensor, an acceleration sensor, an inclination sensor, a magnetic identification sensor, an impact sensor, It is a module having an arbitrary sensor function such as a temperature sensor.
- the data detected by the sensor 1323 is supplied to the application processor 1331 and used by an application or the like.
- the configuration described above as a module may be realized as a processor, or conversely, the configuration described as a processor may be realized as a module.
- the present technology can be applied to the video processor 1332 as described later. Therefore, the video set 1300 can be implemented as a set to which the present technology is applied.
- FIG. 47 shows an example of a schematic configuration of a video processor 1332 (FIG. 46) to which the present technology is applied.
- the video processor 1332 receives the video signal and the audio signal, encodes them in a predetermined method, decodes the encoded video data and audio data, A function of reproducing and outputting an audio signal.
- the video processor 1332 includes a video input processing unit 1401, a first image scaling unit 1402, a second image scaling unit 1403, a video output processing unit 1404, a frame memory 1405, and a memory control unit 1406.
- the video processor 1332 includes an encoding / decoding engine 1407, video ES (ElementaryElementStream) buffers 1408A and 1408B, and audio ES buffers 1409A and 1409B.
- the video processor 1332 includes an audio encoder 1410, an audio decoder 1411, a multiplexing unit (MUX (Multiplexer)) 1412, a demultiplexing unit (DMUX (Demultiplexer)) 1413, and a stream buffer 1414.
- MUX Multiplexing unit
- DMUX demultiplexing unit
- the video input processing unit 1401 acquires a video signal input from, for example, the connectivity 1321 (FIG. 46) and converts it into digital image data.
- the first image enlargement / reduction unit 1402 performs format conversion, image enlargement / reduction processing, and the like on the image data.
- the second image enlargement / reduction unit 1403 performs image enlargement / reduction processing on the image data in accordance with the format of the output destination via the video output processing unit 1404, or is the same as the first image enlargement / reduction unit 1402. Format conversion and image enlargement / reduction processing.
- the video output processing unit 1404 performs format conversion, conversion to an analog signal, and the like on the image data and outputs the reproduced video signal to, for example, the connectivity 1321 (FIG. 46).
- the frame memory 1405 is a memory for image data shared by the video input processing unit 1401, the first image scaling unit 1402, the second image scaling unit 1403, the video output processing unit 1404, and the encoding / decoding engine 1407. .
- the frame memory 1405 is realized as a semiconductor memory such as a DRAM, for example.
- the memory control unit 1406 receives the synchronization signal from the encoding / decoding engine 1407, and controls the writing / reading access to the frame memory 1405 according to the access schedule to the frame memory 1405 written in the access management table 1406A.
- the access management table 1406A is updated by the memory control unit 1406 in accordance with processing executed by the encoding / decoding engine 1407, the first image enlargement / reduction unit 1402, the second image enlargement / reduction unit 1403, and the like.
- the encoding / decoding engine 1407 performs encoding processing of image data and decoding processing of a video stream that is data obtained by encoding the image data. For example, the encoding / decoding engine 1407 encodes the image data read from the frame memory 1405 and sequentially writes the data as a video stream in the video ES buffer 1408A. Further, for example, the video stream is sequentially read from the video ES buffer 1408B, decoded, and sequentially written in the frame memory 1405 as image data.
- the encoding / decoding engine 1407 uses the frame memory 1405 as a work area in the encoding and decoding. Also, the encoding / decoding engine 1407 outputs a synchronization signal to the memory control unit 1406, for example, at a timing at which processing for each macroblock is started.
- the video ES buffer 1408A buffers the video stream generated by the encoding / decoding engine 1407 and supplies the buffered video stream to the multiplexing unit (MUX) 1412.
- the video ES buffer 1408B buffers the video stream supplied from the demultiplexer (DMUX) 1413 and supplies the buffered video stream to the encoding / decoding engine 1407.
- the audio ES buffer 1409A buffers the audio stream generated by the audio encoder 1410 and supplies the buffered audio stream to the multiplexing unit (MUX) 1412.
- the audio ES buffer 1409B buffers the audio stream supplied from the demultiplexer (DMUX) 1413 and supplies the buffered audio stream to the audio decoder 1411.
- the audio encoder 1410 converts, for example, an audio signal input from the connectivity 1321 (FIG. 46), for example, into a digital format, and encodes the audio signal using a predetermined method such as an MPEG audio method or an AC3 (Audio Code number 3) method.
- the audio encoder 1410 sequentially writes an audio stream, which is data obtained by encoding an audio signal, in the audio ES buffer 1409A.
- the audio decoder 1411 decodes the audio stream supplied from the audio ES buffer 1409B, performs conversion to an analog signal, for example, and supplies the reproduced audio signal to, for example, the connectivity 1321 (FIG. 46).
- Multiplexer (MUX) 1412 multiplexes the video stream and the audio stream.
- the multiplexing method (that is, the format of the bit stream generated by multiplexing) is arbitrary.
- the multiplexing unit (MUX) 1412 can also add predetermined header information or the like to the bit stream. That is, the multiplexing unit (MUX) 1412 can convert the stream format by multiplexing. For example, the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream to convert it into a transport stream that is a bit stream in a transfer format. Further, for example, the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream, thereby converting the data into file format data (file data) for recording.
- the demultiplexing unit (DMUX) 1413 demultiplexes the bit stream in which the video stream and the audio stream are multiplexed by a method corresponding to the multiplexing by the multiplexing unit (MUX) 1412. That is, the demultiplexer (DMUX) 1413 extracts the video stream and the audio stream from the bit stream read from the stream buffer 1414 (separates the video stream and the audio stream). That is, the demultiplexer (DMUX) 1413 can convert the stream format by demultiplexing (inverse conversion of the conversion by the multiplexer (MUX) 1412).
- the demultiplexing unit (DMUX) 1413 obtains a transport stream supplied from, for example, the connectivity 1321 and the broadband modem 1333 (both in FIG. 46) via the stream buffer 1414 and demultiplexes the transport stream. Can be converted into a video stream and an audio stream. Further, for example, the demultiplexer (DMUX) 1413 obtains the file data read from various recording media by the connectivity 1321 (FIG. 46) via the stream buffer 1414 and demultiplexes it, for example. It can be converted into a video stream and an audio stream.
- the stream buffer 1414 buffers the bit stream.
- the stream buffer 1414 buffers the transport stream supplied from the multiplexing unit (MUX) 1412 and, for example, at the predetermined timing or based on a request from the outside, for example, the connectivity 1321 or the broadband modem 1333 (whichever Are also supplied to FIG.
- MUX multiplexing unit
- the stream buffer 1414 buffers the file data supplied from the multiplexing unit (MUX) 1412 and, for example, the connectivity 1321 (FIG. 46) or the like at a predetermined timing or based on an external request or the like. To be recorded on various recording media.
- MUX multiplexing unit
- the connectivity 1321 FIG. 46
- the stream buffer 1414 buffers the transport stream acquired through, for example, the connectivity 1321 and the broadband modem 1333 (both in FIG. 46), and reverses the stream at a predetermined timing or based on a request from the outside.
- the data is supplied to a multiplexing unit (DMUX) 1413.
- DMUX multiplexing unit
- the stream buffer 1414 buffers file data read from various recording media in the connectivity 1321 (FIG. 46), for example, and at a predetermined timing or based on an external request or the like, a demultiplexing unit (DMUX) 1413.
- DMUX demultiplexing unit
- a video signal input from the connectivity 1321 (FIG. 46) or the like to the video processor 1332 is converted into digital image data of a predetermined format such as 4: 2: 2Y / Cb / Cr format by the video input processing unit 1401.
- the data is sequentially written in the frame memory 1405.
- This digital image data is read by the first image enlargement / reduction unit 1402 or the second image enlargement / reduction unit 1403, and format conversion to a predetermined method such as 4: 2: 0Y / Cb / Cr method and enlargement / reduction processing are performed. Is written again in the frame memory 1405.
- This image data is encoded by the encoding / decoding engine 1407 and written as a video stream in the video ES buffer 1408A.
- an audio signal input to the video processor 1332 from the connectivity 1321 (FIG. 46) or the like is encoded by the audio encoder 1410 and written as an audio stream in the audio ES buffer 1409A.
- the video stream of the video ES buffer 1408A and the audio stream of the audio ES buffer 1409A are read and multiplexed by the multiplexing unit (MUX) 1412 and converted into a transport stream or file data.
- the transport stream generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414 and then output to the external network via, for example, the connectivity 1321 and the broadband modem 1333 (both of which are shown in FIG. 46).
- the file data generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414, and then output to, for example, the connectivity 1321 (FIG. 46) and recorded on various recording media.
- the transport stream input from the external network to the video processor 1332 via the connectivity 1321 or the broadband modem 1333 (both in FIG. 46) is buffered in the stream buffer 1414, and then demultiplexed (DMUX) 1413 is demultiplexed.
- DMUX demultiplexed
- file data read from various recording media in the connectivity 1321 (FIG. 46) and input to the video processor 1332 is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexer (DMUX) 1413. It becomes. That is, the transport stream or file data input to the video processor 1332 is separated into a video stream and an audio stream by the demultiplexer (DMUX) 1413.
- the audio stream is supplied to the audio decoder 1411 via the audio ES buffer 1409B and decoded to reproduce the audio signal.
- the video stream is written to the video ES buffer 1408B, and then sequentially read and decoded by the encoding / decoding engine 1407, and written to the frame memory 1405.
- the decoded image data is enlarged / reduced by the second image enlargement / reduction unit 1403 and written to the frame memory 1405.
- the decoded image data is read out to the video output processing unit 1404, format-converted to a predetermined system such as 4: 2: 2Y / Cb / Cr system, and further converted into an analog signal to be converted into a video signal. Is played out.
- the present technology when the present technology is applied to the video processor 1332 configured as described above, the present technology according to each embodiment described above may be applied to the encoding / decoding engine 1407. That is, for example, the encoding / decoding engine 1407 includes an encoding device (FIG. 1) including the encoder 1 and the file generation unit 2 according to the first embodiment, and a decoding device including the file reading unit 51 and the decoder 52 (FIG. 8). ) Function. In this way, the video processor 1332 can obtain the same effects as those described above with reference to FIGS.
- the present technology (that is, the functions of the image encoding device and the image decoding device according to each embodiment described above) may be realized by hardware such as a logic circuit. It may be realized by software such as an embedded program, or may be realized by both of them.
- FIG. 48 illustrates another example of a schematic configuration of the video processor 1332 (FIG. 46) to which the present technology is applied.
- the video processor 1332 has a function of encoding / decoding video data by a predetermined method.
- the video processor 1332 includes a control unit 1511, a display interface 1512, a display engine 1513, an image processing engine 1514, and an internal memory 1515.
- the video processor 1332 includes a codec engine 1516, a memory interface 1517, a multiplexing / demultiplexing unit (MUX DMUX) 1518, a network interface 1519, and a video interface 1520.
- MUX DMUX multiplexing / demultiplexing unit
- the eyelid control unit 1511 controls the operation of each processing unit in the video processor 1332 such as the display interface 1512, the display engine 1513, the image processing engine 1514, and the codec engine 1516.
- the control unit 1511 includes, for example, a main CPU 1531, a sub CPU 1532, and a system controller 1533.
- the main CPU 1531 executes a program and the like for controlling the operation of each processing unit in the video processor 1332.
- the main CPU 1531 generates a control signal according to the program and supplies it to each processing unit (that is, controls the operation of each processing unit).
- the sub CPU 1532 plays an auxiliary role of the main CPU 1531.
- the sub CPU 1532 executes a child process such as a program executed by the main CPU 1531, a subroutine, or the like.
- the system controller 1533 controls operations of the main CPU 1531 and the sub CPU 1532 such as designating a program to be executed by the main CPU 1531 and the sub CPU 1532.
- the display interface 1512 outputs image data to, for example, the connectivity 1321 (FIG. 46) or the like under the control of the control unit 1511.
- the display interface 1512 converts the digital data image data into an analog signal, and outputs it to the monitor device of the connectivity 1321 (FIG. 46) or the like as a reproduced video signal or as the digital data image data.
- the display engine 1513 Under the control of the control unit 1511, the display engine 1513 performs various conversion processes such as format conversion, size conversion, color gamut conversion, and the like so as to match the image data with hardware specifications such as a monitor device that displays the image. I do.
- the eyelid image processing engine 1514 performs predetermined image processing such as filter processing for improving image quality on the image data under the control of the control unit 1511.
- the internal memory 1515 is a memory provided inside the video processor 1332 that is shared by the display engine 1513, the image processing engine 1514, and the codec engine 1516.
- the internal memory 1515 is used, for example, for data exchange performed between the display engine 1513, the image processing engine 1514, and the codec engine 1516.
- the internal memory 1515 stores data supplied from the display engine 1513, the image processing engine 1514, or the codec engine 1516, and stores the data as needed (eg, upon request). This is supplied to the image processing engine 1514 or the codec engine 1516.
- the internal memory 1515 may be realized by any storage device, but is generally used for storing a small amount of data such as image data or parameters in units of blocks. It is desirable to realize a semiconductor memory having a relatively small capacity but a high response speed (for example, as compared with the external memory 1312) such as “Static Random Access Memory”.
- the codec engine 1516 performs processing related to encoding and decoding of image data.
- the encoding / decoding scheme supported by the codec engine 1516 is arbitrary, and the number thereof may be one or plural.
- the codec engine 1516 may be provided with codec functions of a plurality of encoding / decoding schemes, and may be configured to perform encoding of image data or decoding of encoded data using one selected from them.
- the codec engine 1516 includes, for example, MPEG-2 video 1541, AVC / H.2641542, HEVC / H.2651543, HEVC / H.265 (Scalable) 1544, as function blocks for processing related to the codec.
- HEVC / H.265 (Multi-view) 1545 and MPEG-DASH 1551 are included.
- “MPEG-2” Video 1541 is a functional block that encodes and decodes image data in the MPEG-2 format.
- AVC / H.2641542 is a functional block that encodes and decodes image data using the AVC method.
- HEVC / H.2651543 is a functional block that encodes and decodes image data using the HEVC method.
- HEVC / H.265 (Scalable) 1544 is a functional block that performs scalable encoding and scalable decoding of image data using the HEVC method.
- HEVC / H.265 (Multi-view) 1545 is a functional block that multi-view encodes or multi-view decodes image data using the HEVC method.
- MPEG-DASH 1551 is a functional block that transmits and receives image data in the MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP) method.
- MPEG-DASH is a technology for streaming video using HTTP (HyperText Transfer Protocol), and selects and transmits appropriate data from multiple encoded data with different resolutions prepared in advance in segments. This is one of the features.
- MPEG-DASH 1551 generates a stream compliant with the standard, controls transmission of the stream, and the like.
- MPEG-2 Video 1541 to HEVC / H.265 (Multi-view) 1545 described above are used. Is used.
- the memory interface 1517 is an interface for the external memory 1312. Data supplied from the image processing engine 1514 or the codec engine 1516 is supplied to the external memory 1312 via the memory interface 1517. The data read from the external memory 1312 is supplied to the video processor 1332 (the image processing engine 1514 or the codec engine 1516) via the memory interface 1517.
- a multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes and demultiplexes various data related to images such as a bit stream of encoded data, image data, and a video signal.
- This multiplexing / demultiplexing method is arbitrary.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 can not only combine a plurality of data into one but also add predetermined header information or the like to the data.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 not only divides one data into a plurality of data but also adds predetermined header information or the like to each divided data. it can.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 can convert the data format by multiplexing / demultiplexing.
- the multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes the bitstream, thereby transporting the transport stream, which is a bit stream in a transfer format, or data in a file format for recording (file data).
- the transport stream which is a bit stream in a transfer format, or data in a file format for recording (file data).
- file data file format for recording
- the network interface 1519 is an interface for the broadband modem 1333, the connectivity 1321 (both are FIG. 46), etc., for example.
- the video interface 1520 is an interface for, for example, the connectivity 1321 and the camera 1322 (both are FIG. 46).
- the transport stream is transmitted to the multiplexing / demultiplexing unit (MUX) via the network interface 1519.
- MUX multiplexing / demultiplexing unit
- DMUX 1518 is demultiplexed and decoded by the codec engine 1516.
- the image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by the image processing engine 1514, subjected to predetermined conversion by the display engine 1513, and connected to, for example, the connectivity 1321 (see FIG. 46) etc., and the image is displayed on the monitor.
- image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by a multiplexing / demultiplexing unit (MUX DMUX) 1518, converted into file data, and video
- MUX DMUX multiplexing / demultiplexing unit
- the data is output to, for example, the connectivity 1321 (FIG. 46) via the interface 1520 and recorded on various recording media.
- encoded data file data obtained by encoding image data read from a recording medium (not shown) by the connectivity 1321 (FIG. 46) is multiplexed / demultiplexed via the video interface 1520. Is supplied to a unit (MUX DMUX) 1518, demultiplexed, and decoded by the codec engine 1516. Image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by the image processing engine 1514, subjected to predetermined conversion by the display engine 1513, and, for example, connectivity 1321 (FIG. 46) via the display interface 1512. And the image is displayed on the monitor.
- MUX DMUX unit
- image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by the multiplexing / demultiplexing unit (MUX DMUX) 1518, and converted into a transport stream,
- MUX DMUX multiplexing / demultiplexing unit
- the connectivity 1321 and the broadband modem 1333 are supplied via the network interface 1519 and transmitted to another device (not shown).
- image data and other data are exchanged between the processing units in the video processor 1332 using, for example, the internal memory 1515 and the external memory 1312.
- the power management module 1313 controls power supply to the control unit 1511, for example.
- the present technology when the present technology is applied to the video processor 1332 configured as described above, the present technology according to each of the above-described embodiments may be applied to the codec engine 1516. That is, for example, the codec engine 1516 uses the encoding device (FIG. 1) including the encoder 1 and the file generation unit 2 according to the first embodiment, and the decoding device (FIG. 8) including the file reading unit 51 and the decoder 52. What is necessary is just to have a functional block to implement
- the present technology (that is, the functions of the image encoding device and the image decoding device according to each of the above-described embodiments) may be realized by hardware such as a logic circuit or an embedded program. It may be realized by software such as the above, or may be realized by both of them.
- the configuration of the video processor 1332 is arbitrary and may be other than the two examples described above.
- the video processor 1332 may be configured as one semiconductor chip, but may be configured as a plurality of semiconductor chips. For example, a three-dimensional stacked LSI in which a plurality of semiconductors are stacked may be used. Further, it may be realized by a plurality of LSIs.
- Video set 1300 can be incorporated into various devices that process image data.
- the video set 1300 can be incorporated into the television device 900 (FIG. 42), the mobile phone 920 (FIG. 43), the recording / reproducing device 940 (FIG. 44), the imaging device 960 (FIG. 45), or the like.
- the apparatus can obtain the same effects as those described above with reference to FIGS.
- each configuration of the video set 1300 described above can be implemented as a configuration to which the present technology is applied as long as it includes the video processor 1332.
- the video processor 1332 can be implemented as a video processor to which the present technology is applied.
- the processor or the video module 1311 indicated by the dotted line 1341 can be implemented as a processor or a module to which the present technology is applied.
- the video module 1311, the external memory 1312, the power management module 1313, and the front end module 1314 can be combined and implemented as a video unit 1361 to which the present technology is applied. In any case, the same effects as those described above with reference to FIGS. 1 to 36 can be obtained.
- any configuration including the video processor 1332 can be incorporated into various devices that process image data, as in the case of the video set 1300.
- a video processor 1332 a processor indicated by a dotted line 1341, a video module 1311, or a video unit 1361, a television device 900 (FIG. 42), a mobile phone 920 (FIG. 43), a recording / playback device 940 (FIG. 44), The imaging device 960 (FIG. 45) can be incorporated.
- the apparatus can obtain the same effects as those described above with reference to FIGS. 1 to 36, as in the case of the video set 1300. .
- various information such as startcode and filler ⁇ data, parameters for managing decoder buffers, identification parameters, FixedStartCodeSizeFlag, etc. are multiplexed in the encoded stream and transmitted from the encoding side to the decoding side.
- the method for transmitting such information is not limited to such an example.
- these pieces of information may be transmitted or recorded as separate data associated with the encoded bitstream without being multiplexed into the encoded bitstream.
- the term “associate” means that an image (which may be a part of an image such as a slice or a block) included in the bitstream and information corresponding to the image can be linked at the time of decoding. Means.
- information may be transmitted on a transmission path different from that of the image (or bit stream).
- Information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream).
- the information and the image (or bit stream) may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
1.第1の実施の形態(HEVC方式の符号化装置、復号装置)
2.第2の実施の形態(画像符号化装置、画像復号装置)
3.第3の実施の形態(MP4ビデオサンプル構造)
4.第4の実施の形態(バイトストリームフォーマットインフォメーションボックス)
5.第5の実施の形態(ファイル変換装置)
6.第6の実施の形態(AVC方式の符号化装置、復号装置)
7.応用例
8.第7の実施の形態(セット・ユニット・モジュール・プロセッサ)
[符号化装置の第1実施の形態の構成例]
図1は、本技術を適用した画像処理装置としての、符号化装置の第1実施の形態の構成例を示すブロック図である。
図2は、図1のエンコーダ1の構成例を示すブロック図である。エンコーダ1の各部は、図示せぬ前段からのSPS、PPS、VUI、SEIに含まれるパラメータを用いて、入力信号である画像を符号化し、符号化ストリームを生成する。
ISO/IEC 14496-15において規定されているAVCファイルフォーマットでは、startcodeとfiller dataとを、ビットストリーム(Elementary Stream)に含めることが許容されていない。しかしながら、ISO base media file format及びMPEG-2 TS(Transport Stream)などのデータを扱う際の処理負荷を増大する要因となっている。
そこで、ファイル生成部2は、伝送する際に用いるストリーム又はファイルに格納する際に用いるストリームを生成する場合に、画像を符号化したビットストリームを含むファイルを対象として、startcodeとfiller dataとを設定し、設定されたstartcodeとfiller dataとを、ファイルのmedia dataにおいて、デコーダバッファを管理するパラメータの特性を保持してファイルを構成するように、startcodeとfiller dataとの設定を制御するようにした。
Therefore, this contribution proposes to allow to include startcode and filler data in the elementary streams for new brands ony.
In the original version of ISO/IEC 14496-15, SPS/PPS can't be included in the elementary stream. In ISO/IEC 14496-16 PDAM2, it is allowed to include SPS/PPS now. If it is allowed to include startcode and filler data in the elementary stream, then the burden for bitstream converter is significantly reduced. Rewriting of HRD parameters, e.g. buffering period SEI and picture timing SEI, is not necessary in this case.
In order to ensure backward compatibility, this change should be applied to new brands. (new AVC brand and HEVC)
When startcode, filler data, etc were removed from the elementary stream to store ISOMFF, HRD parameters, e.g. buffering period SEI, picture timing SEI, etc are not correct. However, decoder can not know if HRD parameters in the elementary stream is correct. There should be an id to indicate the HRD parameters in the elementary stream maybe wrong.
Currently in HEVC and AVC, filler data is categorized as non-VCL. That mean the bit for filler data is counted as non-VCL (header information). However, if we specify filler data as VCL data, the bit for filler is counted as video bitstream itself. In this case, filler data is not necessary to remove from the elementary stream and HRD parameters are not changed. The table for HEVC is attached.
For example, in case of AVC, such id can be defined as an optional box in AVCSampleEntry as follows. (The same approach can be applied to other AVC sample entries and HEVCSampleEntry.)
AVCSampleEntry() extends VisualSampleEntry(type') {
//type is 'avc1' or 'avc3'
AVCConfigurationBox config;
MPEG4BitRateBox(); //Optional
MPEG4ExtensionDescriptorsBox(); //Optional
HRDConformanceBox(); //Optional
}
Add HRDConformanceBox into AVCSampleEntry and AVC2SVVSampleEntry in 5.4.2.1
Add HRDConformanceBox into AVCSVCSampleEntry, AVC2SVCSampleEntry and SVCSampleEntry in 6.5.3.1.
Add HRDConformanceBox into AVCMVCSampleEntry, AVC2MVCSampleEntry and MVCSampleEntry in section7.6.3.3.
Add HRDConformanceBox into HEVC SampleEntry in section 8.4.1.1.
HRDConformanceBox can be defined as follows.
class HRDConformanceBox extends Box('hrdc') {
HRDConformanceData() HRDConformance;
}
aligned(8) class HRDConformanceData {
unsigned int(7) reserved =0;
unsigned int(1) HRDConformanceFlag;
unsigned int (24) reserved;
Box[] any_box;//Optional
}
HRDConformanceFlag is the identifier if HRD characteristics was changed by removing startcode, filler data, etc from the elementary stream. When HRDConformanceFlag is equal to1, the HRD parameters, e.g. buffering period SEI, picture timing SEI, was changed by removing startcode, filler data, etc from the elementary stream.
図3は、上述した処理を行うファイル生成部の構成例を示すブロック図である。
次に、図4のフローチャートを参照して、ファイル生成部2のファイル生成処理を説明する。
次に、図5のフローチャートを参照して、ファイル生成部2のファイル生成処理を説明する。
次に、図6のフローチャートを参照して、図4のステップS2(または図5のステップS12)における従来のmdatデータの生成処理について説明する。
これに対して、図7のフローチャートを参照して、図4のステップS3(図5のステップS13)における本技術のmdatデータの生成処理について説明する。
図8は、図1の符号化装置から伝送される符号化ストリームを復号する、本技術を適用した画像処理装置としての、復号装置の第1実施の形態の構成例を示すブロック図である。
図9は、ファイル読取部51の構成例を示すブロック図である。
図10は、図8のデコーダ52の構成例を示すブロック図である。デコーダ52の各部は、ファイル読取部51からのSPS、PPS、VUI、SEIに含まれるパラメータを用いて、符号化データを復号して、画像を生成する。
次に、図11のフローチャートを参照して、図8の復号装置のファイル復号処理を説明する。なお、このファイル復号処理は、図4のファイル生成処理により生成されたファイルに対する処理である。すなわち、このファイルにおけるHRDパラメータの特性は、startcodeとfiller dataが削除されていたとしても、再度設定されている。
次に、図12のフローチャートを参照して、図8の復号装置のファイル復号処理を説明する。なお、このファイル復号処理は、図5のファイル生成処理により生成されたファイルに対する処理である。すなわち、このファイルのmoovには、HRDパラメータの特性が正しいか異なっているかを識別する識別パラメータが設定されている。
[エンコーダの構成例]
図13は、上述したMP4のファイルを生成するための、一実施形態に係る画像符号化装置201の構成の一例を示すブロック図である。図13を参照すると、画像符号化装置201は、符号化部211、VCLバッファ212、非VCLバッファ213、ファイル生成部214及び制御部215を備える。
図14は、上述したMP4のファイルから画像を復号するための、一実施形態に係る画像復号装置の構成の一例を示すブロック図である。図14を参照すると、画像復号装置251は、VCLバッファ261、非VCLバッファ262、パラメータメモリ263、復号部264及び制御部265を備える。
[従来のMP4ビデオサンプル構造]
図15は、従来のMP4ビデオサンプル構造の例を示す図である。ビデオサンプルを構成するNALユニットは、図15に示されるように規定されている。
図16は、AVCストリームの1アクセスユニットの構成例を示す図である。
図17および図18は、本技術のMP4ビデオサンプル構造の例を示す図である。
図19は、HRD Conformance Box拡張の例を示す図である。以下にも、HRD Conformance Box拡張の例を同様に示す。
// type is ‘avc3’ or ‘avc4’, (and all hevc)
AVCConfigurationBox config;
MPEG4BitRateBox(); //Optional
MPEG4ExtensionDescriptorsBox(); //Optional
HRDConformanceBox(); //Optional
}
Add HRDConformanceBox into AVCSampleEntry and AVC2SVVSampleEntry in 5.4.2.1
Add HRDConformanceBox into AVCSVCSampleEntry, AVC2SVCSampleEntry and SVCSampleEntry in 6.5.3.1.
Add HRDConformanceBox into AVCMVCSampleEntry, AVC2MVCSampleEntry and MVCSampleEntry in section7.6.3.3.
Add HRDConformanceBox into HEVC SampleEntry in section 8.4.1.1.
Sample entry without HRDConformanceBox is used only for samples without start codes nor fillers.
HRDConformanceBox can be defined as follows.
class HRDConformanceBox extends Box('hrdc') {
HRDConformanceData() HRDConformance;
}
aligned(8) class HRDConformanceData {
unsigned int(1) HRDConformanceFlag;
unsigned int(1) FixedStartCodeSizeFlag;
unsigned int(2) OffsetSizeMinusOne;
unsigned int(4) reserved =0;
unsigned int(24) reserved;
Box[] any_box; //Optional
}
HRDConformanceFlag is the identifier if HRD characteristics was changed by removing startcode, filler data, etc from the elementary stream. When HRDConformanceFlag is equal to1, the HRD parameters, e.g. buffering period SEI, picture timing SEI, was changed by removing startcode, filler data, etc from the elementary stream.
FixedStartCodeSizeFlag is the idetifier when startcode in each NAL is fixed size of 4 bytes. When FixedStartCodeSizeFlag is equal to 1, no offset field is for each NAL in sample data to indicate the size of Start Code.
OffsetSizeMinusOne indicates the length in bytes of the StartcodeLength field in a video sample minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
HRDConformanceBox is useful to indicate the status of HRD conformance even in the other options.
図20は、本技術のMP4ビデオサンプル構造の他の例を示す図である。
extends FullBox(‘nalo’, version=0, 0) {
unsigned int(32) sample_count;
for (i=1; i <= sample_count; i++){
unsigned int(8) offset_count;
unsigned int(8) offset_size;
for (j=1; j <= offset_count; j++){
unsigned int(offset_size*8) offset;
}
}
}
sample_count is an integer that gives the number of entries in the following table.
offset_count is an integer that gives the number of entries in the following subtable.
offset_size is an integer that gives the byte size of the offset field in the following subtable.
offset is an integer that gives the offset of the start of a NAL unit into its containing sample.
図23は、本技術のMP4ビデオサンプル構造の、さらに他の例を示す図である。
図24は、サンプル補助情報機能のフォーマットの例を示す図である。以下にも、サンプル補助情報機能のフォーマットの例を同様に示す。
{
unsigned int(2) StartcodeSizeMinusOne;
unsigned int(2) NALunitSizeMinusOne;
unsigned int(4) reserved;
unsigned int(32) subsample_count;
for (i=1; i <= subsample_count; i++){
switch (StartcodeSizeMinusOne){
case 0:
unsigned int(8) Startcode Size;
break;
case 1:
unsigned int(16) Startcode Size;
break;
case 3:
unsigned int(32) Startcode Size;
break;
}
switch (NALUnitSizeMinusOne){
case 0:
unsigned int(8) NALUnit Size;
break;
case 1:
unsigned int(16) NALUnit Size;
break;
case 3:
unsigned int(32) NALUnit Size;
break;
}
}
}
StartcodeSizeMinusOne indicates the length in bytes of the Startcode Size field minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
NALUnitSizeMinusOne indicates the length in bytes of the NALUnit Size field minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
StartcodeSize indicates the length in bytes of the Startcode of subsample in a sampleNALUnitSize indicates the length in bytes of the Startcode of subsample in a sample
図25は、サンプル補助情報機能のフォーマットの他の例を示す図である。以下にも、サンプル補助情報機能のフォーマットの他の例を同様に示す。
{
unsigned int(1) FixedStartCodeSizeFlag;
unsigned int(2) StartcodeSizeMinusOne;
unsigned int(2) NALunitSizeMinusOne;
unsigned int(3) reserved;
unsigned int(32) subsample_count;
for (i=1; i <= subsample_count; i++){
if (FixedStartCodeSizeFlag == 0){
switch (StartcodeSizeMinusOne){
case 0:
unsigned int(8) Startcode Size;
break;
case 1:
unsigned int(16) Startcode Size;
break;
case 3:
unsigned int(32) Startcode Size;
break;
}
}
switch (NALUnitSizeMinusOne){
case 0:
unsigned int(8) NALUnit Size;
break;
case 1:
unsigned int(16) NALUnit Size;
break;
case 3:
unsigned int(32) NALUnit Size;
break;
}
}
}
FixedStartCodeSizeFlag is the identifier when startcode before each NAL unit has fixed size of 4 bytes. When FixedStartCodeSizeFlag is equal to 1.
StartcodeSizeMinusOne indicates the length in bytes of the Startcode Size field minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
NALUnitSizeMinusOne indicates the length in bytes of the NALUnit Size field minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
StartcodeSize indicates the length in bytes of the Startcode of subsample in a sample
NALUnitSize indicates the length in bytes of the Startcode of subsample in a sample
Each length of start code and NAL unit are provided as Sample Auxiliary Information with aux_info_type equal to 'nalz' and aux_info_type_parameter equal to 0.Sample Auxiliary Information is referenced by using a
SampleAuxiliaryInformationSizesBox ('saiz') and a
SampleAuxiliaryInformationOffsetsBox ('saio')
The format of the sample auxiliary information for samples with this type shall be:
aligned(8) class NalsizeSampleAuxiliaryDataFormat
{
unsigned int(1) FixedStartCodeSizeFlag;
unsigned int(2) StartcodeSizeMinusOne;
unsigned int(2) NALunitSizeMinusOne;
unsigned int(3) reserved;
unsigned int(32) subsample_count;
for (i=1; i <= subsample_count; i++){
if (FixedStartCodeSizeFlag == 0){
switch (StartcodeSizeMinusOne){
case 0:
unsigned int(8) Startcode Size;
break;
case 1:
unsigned int(16) Startcode Size;
break;
case 3:
unsigned int(32) Startcode Size;
break;
}
}
switch (NALUnitSizeMinusOne){
case 0:
unsigned int(8) NALUnit Size;
break;
case 1:
unsigned int(16) NALUnit Size;
break;
case 3:
unsigned int(32) NALUnit Size;
break;
}
}
}
FixedStartCodeSizeFlag is the identifier when startcode before each NAL unit has fixed size of 4 bytes. When FixedStartCodeSizeFlag is equal to 1.
StartcodeSizeMinusOne indicates the length in bytes of the Startcode Size field minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
NALUnitSizeMinusOne indicates the length in bytes of the NALUnit Size field minus one. For example, a size of one byte is indicated with a value of 0. The value of this field shall be one of 0, 1, or 3 corresponding to a length encoded with 1, 2, or 4 bytes, respectively.
StartcodeSize indicates the length in bytes of the Startcode of subsample in a sample
NALUnitSize indicates the length in bytes of the NAL unit of subsample in a sample
図26の例においては、上述したMP4ビデオサンプル構造を比較するための表が示されている。
図27は、図23のMP4ビデオサンプル構造の他の例を示す図である。
ここで、従来、MP4のエレメンタリーストリームをMPEG2-PSに格納しようとしたとき、ユニットサイズを抜いて、スタートコードを入れて作らないといけなかった。逆に、MPEG2-PSのエレメンタリーストリームをMP4に格納しようとしたとき、スタートコードを抜いて、ユニットサイズを入れて作らないといけなかった。すなわち、少なくとも、2種類のストリームが存在し、ファイル化をする際に、ストリームの変更が必要であり、HRD conformanceに準拠しているのかどうかを示すフラグが必要であった。
次に、図28を参照して、バイトストリームフォーマットインフォメーションボックスについて説明する。
This box SHALL be stored when sample data is structured by Byte Stream Format as defined in ISO/IEC 14496-10.
The Sub-Sample Information Box may be used to store one or more contiguous Byte stream NAL unit size
a sub-sample is defined as one or more contiguous Byte stream NAL units as defined in ISO/IEC 14496-10.
Box Type: ‘bsfi’
Container: Sample Entry (‘avc3’, ‘avc4’, ‘mvc3’, ‘mvc4’ or ‘hev1‘ )Mandatory: No
Quantity: Zero or one
Class ByteStreamFormatInformationBox extends Box(‘bsfi') {
ByteStreamFormatInformation() ByteStreamInformation;
}
This box SHALL be stored when sample data is structured by Byte Stream Format as defined in ISO/IEC 14496-10.
The Sub-Sample Information Box may be used to store one or more contiguous Byte stream NAL unit size
a sub-sample is defined as one or more contiguous Byte stream NAL units as defined in ISO/IEC 14496-10.
Box Type: ‘bsfi’
Container: Sample Entry (‘avc5’, ‘avc6’, ‘mvc5’, ‘mvc6’ or ‘hev2‘ )Mandatory: No
Quantity: Zero or one
Class ByteStreamFormatInformationBox extends Box(‘bsfi') {
ByteStreamFormatInformation() ByteStreamInformation;
}
図30は、各サンプルエントリに格納されるバイトストリームフォーマットインフォメーションのデータ構造例を説明する図である。
unsigned int(1) StartcodePresentFlag;
unsigned int(1) ZeroBytePresentFlag;
unsigned int(1) LeadingZeroBytesPresentFlag;
unsigned int(1) TrailingZeroBytesPresentFlag;
unsigned int(4) reserved =0;
unsigned int(24) reserved;
Box[] any_box; //Optional
}
次に、上述したバイトストリームフォーマットインフォメーションを用いた場合のNALユニットの格納例について説明する。図31は、NALユニットの前後に0x00(0データ)があるパターン1の場合のMP4ビデオサンプル構造の例を示す図である。すなわち、図31の例においては、上述したバイトストリームフォーマットインフォメーションのフラグであるStartcodePresentFlag、ZeroBytePresentFlag、LeadingZeroBytePresentFlag、およびTrailingZeroBytePresentFlagがすべて1の場合のMP4ビデオサンプル構造の例が示されている。
図34は、各サンプルエントリに格納されるバイトストリームフォーマットインフォメーションのデータ構造例を説明する図である。すなわち、図34の例においては、図30を参照して上述したデータ構造の他の例が示されている。
unsigned int(2) StartcodePresentFlag;
unsigned int(1) LeadingZeroBytesPresentFlag;
unsigned int(1) TrailingZeroBytesPresentFlag;
unsigned int(4) reserved =0;
unsigned int(24) reserved;
Box[] any_box; //Optional
}
StartcodePresentFlag = 00bは、reservedを示す。
StartcodePresentFlag = 01bは、サンプル中のすべてのサブサンプルはNALユニットの前に、3byteのStartcodeを含むことを示す。
StartcodePresentFlag = 10bは、サンプル中のすべてのサブサンプルはNALユニットの前に、3byteのStartcodeと、1byteのZeroByteデータを含む(すなわち、4byteで構成される)ことを示す。
StartcodePresentFlag = 11bは、サンプル中のすべてのサブサンプルはNALユニットの前に、3byteのStartcodeを含み、1byteのZeroByteデータを含むことがあることを示す。すなわち、この場合、3byteと4byteのStartcodeが混在している可能性があるため、01bであるか10bであるかが保証できない。
[ファイル変換装置の構成例]
図35は、本技術を適用した画像処理装置としての、ファイル変換装置の構成例を示すブロック図である。図35のファイル変換装置300は、例えば、MPEG-2 TS を MP4ファイルに変換する。
次に、図36のフローチャートを参照して、図35のファイル変換装置300のファイル変換処理について説明する。
[符号化装置の構成例]
図37は、本技術を適用した画像処理装置としての、符号化装置の他の構成例を示すブロック図である。
図38は、図37のエンコーダ401の構成例を示すブロック図である。
図39は、図37の符号化装置により生成されたファイルを読み取って復号する、本技術を適用した復号装置の他の構成例を示すブロック図である。
図40は、図39の復号部261の構成例を示すブロック図である。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
[第1の応用例:テレビジョン受像機]
図42は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
図43は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
図44は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
図45は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
[実施のその他の例]
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
本技術をセットとして実施する場合の例について、図46を参照して説明する。図46は、本技術を適用したビデオセットの概略的な構成の一例を示している。
図47は、本技術を適用したビデオプロセッサ1332(図46)の概略的な構成の一例を示している。
図48は、本技術を適用したビデオプロセッサ1332(図46)の概略的な構成の他の例を示している。図48の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図42)、携帯電話機920(図43)、記録再生装置940(図44)、撮像装置960(図45)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図36を参照して上述した効果と同様の効果を得ることができる。
Claims (15)
- 画像を符号化したビットストリームを含むファイルを対象として、startcodeとfiller dataとを設定する設定部と、
前記設定部において設定されたstartcodeとfiller dataとを、ファイルのmedia dataにおいて、デコーダバッファを管理するパラメータの特性を保持してファイルを構成するように、前記設定部を制御する制御部と
を備える画像処理装置。 - 前記デコーダバッファを管理するパラメータは、VUI(Video Usability Information)に含まれるパラメータ、またはbuffering period SEI(Supplemental Enhancement Information)に含まれるパラメータ、または、picture timing SEIに含まれるパラメータである
請求項1に記載の画像処理装置。 - 前記設定部は、filler dataを、VCLデータとして設定する
請求項1に記載の画像処理装置。 - 画像処理装置が、
画像を符号化したビットストリームを含むファイルを対象として、startcodeとfiller dataとを設定し、
設定されたstartcodeとfiller dataとを、ファイルのmedia dataにおいて、デコーダバッファを管理するパラメータの特性を保持してファイルを構成するように、startcodeとfiller dataとの設定を制御する
画像処理方法。 - 画像を符号化したビットストリームを含み、startcodeとfiller dataとがファイルのmedia dataにおいて、デコーダバッファを管理するパラメータの特性を保持してファイルを構成するように制御されて設定されているファイルを受け取る受け取り部と、
前記受け取り部により受け取られたファイルから、前記startcodeとfiller dataとを読み取り、前記デコーダバッファを管理するパラメータを用いて、前記ビットストリームを復号する復号部と
を備える画像処理装置。 - 前記デコーダバッファを管理するパラメータは、VUI(Video Usability Information)に含まれるパラメータ、または、buffering period SEI(Supplemental Enhancement Information)、に含まれるパラメータ、または、picture timing SEIに含まれるパラメータである
請求項5に記載の画像処理装置。 - 前記filler dataは、VCLデータとして設定されている
請求項5に記載の画像処理装置。 - 画像処理装置が、
画像を符号化したビットストリームを含み、startcodeとfiller dataとがファイルのmedia dataにおいて、デコーダバッファを管理するパラメータの特性を保持してファイルを構成するように制御されて設定されているファイルを受け取り、
受け取られたファイルから、前記startcodeとfiller dataとを読み取り、前記デコーダバッファを管理するパラメータを用いて、前記ビットストリームを復号する
画像処理方法。 - 画像を符号化したビットストリームを含むファイルのmedia dataにおいて、startcodeとfiller dataがビットストリームから削除された場合に、デコーダバッファを管理するパラメータの特性を設定する設定部と、
前記設定部により設定された特性を用いて、前記ファイルを生成する生成部と
を備える画像処理装置。 - 前記設定部は、デコーダバッファを管理するパラメータの特性が変更されたことを識別する識別パラメータを設定する
請求項9に記載の画像処理装置。 - 前記設定部は、前記識別パラメータを、前記ファイルのサンプルエントリにおけるオプショナルボックスとして設定する
請求項10に記載の画像処理装置。 - 画像処理装置が、
画像を符号化したビットストリームを含むファイルのmedia dataにおいて、startcodeとfiller dataがビットストリームから削除された場合に、デコーダバッファを管理するパラメータの特性を設定し、
設定された特性を用いて、前記ファイルを生成する
画像処理方法。 - 画像を符号化したビットストリームを含むファイルのmedia dataにおいて、startcodeとfiller dataが削除された場合に、デコーダバッファを管理するパラメータの特性が設定され、設定された特性を用いて生成されているファイルを受け取る受け取り部と、
前記受け取り部により受け取られたファイルから、前記デコーダバッファを管理するパラメータを読み取り、読み取ったパラメータを用いて前記ビットストリームを復号する復号部と
を備える画像処理装置。 - 前記ファイルには、デコーダバッファを管理するパラメータの特性が変更されたことを識別する識別パラメータが設定されている
請求項13に記載の画像処理装置。 - 画像処理装置が、
画像を符号化したビットストリームを含むファイルのmedia dataにおいて、startcodeとfiller dataがビットストリームから削除された場合に、デコーダバッファを管理するパラメータの特性が設定され、設定された特性を用いて生成されているファイルを受け取り、
受け取られたファイルから、前記デコーダバッファを管理するパラメータを読み取り、読み取ったパラメータを用いて前記ビットストリームを復号する
画像処理方法。
Priority Applications (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014540806A JP6492661B2 (ja) | 2012-10-09 | 2013-09-30 | 画像処理装置および方法 |
EP13845300.6A EP2908523B1 (en) | 2012-10-09 | 2013-09-30 | Image-processing device and method |
MX2015004140A MX340964B (es) | 2012-10-09 | 2013-09-30 | Dispositivo y metodo de procesamiento de imagenes. |
CN201380051814.1A CN104704823B (zh) | 2012-10-09 | 2013-09-30 | 图像处理装置和方法 |
BR112015007530A BR112015007530A2 (pt) | 2012-10-09 | 2013-09-30 | dispositivo e método de processamento de imagem |
MX2016009728A MX358606B (es) | 2012-10-09 | 2013-09-30 | Dispositivo y metodo de procesamiento de imagenes. |
US14/432,786 US10313694B2 (en) | 2012-10-09 | 2013-09-30 | Image processing device and method |
RU2015112109A RU2653308C2 (ru) | 2012-10-09 | 2013-09-30 | Устройство и способ обработки изображений |
KR1020157007429A KR102134049B1 (ko) | 2012-10-09 | 2013-09-30 | 화상 처리 장치 및 방법 |
CA2886943A CA2886943C (en) | 2012-10-09 | 2013-09-30 | Image processing device and method |
EP19197683.6A EP3618434B1 (en) | 2012-10-09 | 2013-09-30 | Image-processing device and method |
AU2013327962A AU2013327962A1 (en) | 2012-10-09 | 2013-09-30 | Image-processing device and method |
AU2017204793A AU2017204793B2 (en) | 2012-10-09 | 2017-07-12 | Image-processing device and method |
AU2019219782A AU2019219782B2 (en) | 2012-10-09 | 2019-08-21 | Image-processing device and method |
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012224597 | 2012-10-09 | ||
JP2012-224597 | 2012-10-09 | ||
JP2012225159 | 2012-10-10 | ||
JP2012-225159 | 2012-10-10 | ||
JP2012-262803 | 2012-11-30 | ||
JP2012262803 | 2012-11-30 | ||
JP2013004988 | 2013-01-15 | ||
JP2013-004988 | 2013-01-15 | ||
JP2013010585 | 2013-01-23 | ||
JP2013-010585 | 2013-01-23 | ||
JP2013-060438 | 2013-03-22 | ||
JP2013060438 | 2013-03-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014057832A1 true WO2014057832A1 (ja) | 2014-04-17 |
Family
ID=50477300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/076486 WO2014057832A1 (ja) | 2012-10-09 | 2013-09-30 | 画像処理装置および方法 |
Country Status (13)
Country | Link |
---|---|
US (1) | US10313694B2 (ja) |
EP (2) | EP2908523B1 (ja) |
JP (2) | JP6492661B2 (ja) |
KR (1) | KR102134049B1 (ja) |
CN (1) | CN104704823B (ja) |
AU (3) | AU2013327962A1 (ja) |
BR (1) | BR112015007530A2 (ja) |
CA (1) | CA2886943C (ja) |
MX (2) | MX340964B (ja) |
MY (1) | MY174138A (ja) |
RU (1) | RU2653308C2 (ja) |
TW (1) | TWI652938B (ja) |
WO (1) | WO2014057832A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015178112A1 (ja) * | 2014-05-19 | 2015-11-26 | ソニー株式会社 | 情報処理装置、情報生成装置、情報記録媒体、および情報処理方法、並びにプログラム |
WO2016132836A1 (ja) * | 2015-02-16 | 2016-08-25 | ソニー株式会社 | 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6329246B2 (ja) * | 2014-03-14 | 2018-05-23 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 画像復号装置 |
JP6706784B2 (ja) * | 2014-09-12 | 2020-06-10 | パナソニックIpマネジメント株式会社 | 送信装置、受信装置、送信方法及び受信方法 |
KR102299573B1 (ko) * | 2014-10-22 | 2021-09-07 | 삼성전자주식회사 | 실시간으로 인-루프 필터링을 수행할 수 있는 애플리케이션 프로세서, 이의 작동 방법, 및 이를 포함하는 시스템 |
US10257107B1 (en) | 2016-06-30 | 2019-04-09 | Amazon Technologies, Inc. | Encoder-sensitive stream buffer management |
JP7431330B2 (ja) | 2019-12-26 | 2024-02-14 | バイトダンス インコーポレイテッド | ビデオコーディングにおけるプロファイル、層及びレイヤの指示 |
CN114868158A (zh) | 2019-12-26 | 2022-08-05 | 字节跳动有限公司 | 层级视频中的解码图片缓冲区参数的信令通知 |
CN117395441A (zh) | 2020-01-09 | 2024-01-12 | 字节跳动有限公司 | 视频流中的填充数据单元的处理 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999031888A1 (en) * | 1997-12-15 | 1999-06-24 | Matsushita Electric Industrial Co., Ltd. | Optical disc and computer-readable storage medium, and recording method and apparatus therefor |
JP2004079087A (ja) * | 2002-08-20 | 2004-03-11 | Sony Corp | 記録装置および方法、記録媒体、並びにプログラム |
AU2004214313B2 (en) * | 2003-02-18 | 2010-05-20 | Nokia Technologies Oy | Picture coding method |
WO2005071970A1 (en) * | 2004-01-16 | 2005-08-04 | General Instrument Corporation | Method and apparatus for determining timing information from a bit stream |
US9143788B2 (en) * | 2008-11-13 | 2015-09-22 | Thomson Licensing | Multiple thread video encoding using HRD information sharing and bit allocation waiting |
US9313512B2 (en) * | 2009-11-25 | 2016-04-12 | Vudu, Inc. | Multiple bit rate encoding by segments |
CN101800892B (zh) * | 2010-03-04 | 2013-03-06 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
CN103907347B (zh) * | 2011-08-31 | 2018-01-30 | 诺基亚技术有限公司 | 多视图视频编码和解码 |
US9648317B2 (en) * | 2012-01-30 | 2017-05-09 | Qualcomm Incorporated | Method of coding video and storing video content |
-
2013
- 2013-09-30 EP EP13845300.6A patent/EP2908523B1/en not_active Not-in-force
- 2013-09-30 RU RU2015112109A patent/RU2653308C2/ru active
- 2013-09-30 MY MYPI2015700995A patent/MY174138A/en unknown
- 2013-09-30 AU AU2013327962A patent/AU2013327962A1/en not_active Abandoned
- 2013-09-30 BR BR112015007530A patent/BR112015007530A2/pt not_active Application Discontinuation
- 2013-09-30 MX MX2015004140A patent/MX340964B/es active IP Right Grant
- 2013-09-30 WO PCT/JP2013/076486 patent/WO2014057832A1/ja active Application Filing
- 2013-09-30 CN CN201380051814.1A patent/CN104704823B/zh not_active Expired - Fee Related
- 2013-09-30 TW TW102135324A patent/TWI652938B/zh not_active IP Right Cessation
- 2013-09-30 JP JP2014540806A patent/JP6492661B2/ja active Active
- 2013-09-30 US US14/432,786 patent/US10313694B2/en active Active
- 2013-09-30 CA CA2886943A patent/CA2886943C/en not_active Expired - Fee Related
- 2013-09-30 KR KR1020157007429A patent/KR102134049B1/ko active IP Right Grant
- 2013-09-30 EP EP19197683.6A patent/EP3618434B1/en active Active
- 2013-09-30 MX MX2016009728A patent/MX358606B/es unknown
-
2017
- 2017-07-12 AU AU2017204793A patent/AU2017204793B2/en not_active Ceased
-
2019
- 2019-02-14 JP JP2019024525A patent/JP6721069B2/ja not_active Expired - Fee Related
- 2019-08-21 AU AU2019219782A patent/AU2019219782B2/en not_active Ceased
Non-Patent Citations (5)
Title |
---|
BENJAMIN BROSS; WOO-JIN HAN; JENS-RAINER OHM; GARY J. SULLIVAN; THOMAS WIEGAND: "High efficiency video coding (HEVC) text specification draft 6", JCTVC-H1003 VER20, February 2012 (2012-02-01) |
See also references of EP2908523A4 |
STEPHAN WENGER ET AL.: "Adaptation Parameter Set(APS)", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 6TH MEETING, 14 July 2011 (2011-07-14) - 22 July 2011 (2011-07-22), TORINO,IT, pages 1 - 10, XP030009770 * |
STEPHAN WENGER; JILL BOYCE; YU-WEN HUANG; CHIA-YANG TSAI; PING WU; MING LI: "Adaptation Parameter Set (APS", JCTVC-F747R3, July 2011 (2011-07-01) |
YE-KUI WANG: "On NAL unit header", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 6TH MEETING, 14 July 2011 (2011-07-14) - 22 July 2011 (2011-07-22), TORINO,IT, pages 1 - 6, XP030009486 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015178112A1 (ja) * | 2014-05-19 | 2015-11-26 | ソニー株式会社 | 情報処理装置、情報生成装置、情報記録媒体、および情報処理方法、並びにプログラム |
JPWO2015178112A1 (ja) * | 2014-05-19 | 2017-04-20 | ソニー株式会社 | 情報処理装置、情報生成装置、情報記録媒体、および情報処理方法、並びにプログラム |
US10535369B2 (en) | 2014-05-19 | 2020-01-14 | Sony Corporation | Information processing device, information generation device, information recording medium, information processing method, and program |
WO2016132836A1 (ja) * | 2015-02-16 | 2016-08-25 | ソニー株式会社 | 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム |
JPWO2016132836A1 (ja) * | 2015-02-16 | 2017-11-24 | ソニー株式会社 | 情報処理装置、情報記録媒体、および情報処理方法、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
AU2017204793B2 (en) | 2019-05-23 |
US20150281713A1 (en) | 2015-10-01 |
EP2908523B1 (en) | 2019-09-18 |
AU2019219782B2 (en) | 2021-02-11 |
CN104704823B (zh) | 2019-01-29 |
CA2886943C (en) | 2020-12-15 |
CA2886943A1 (en) | 2014-04-17 |
RU2653308C2 (ru) | 2018-05-07 |
MX2015004140A (es) | 2015-07-06 |
KR102134049B1 (ko) | 2020-07-14 |
EP3618434A1 (en) | 2020-03-04 |
JP2019110567A (ja) | 2019-07-04 |
AU2013327962A1 (en) | 2015-04-02 |
MX340964B (es) | 2016-08-01 |
JP6721069B2 (ja) | 2020-07-08 |
JP6492661B2 (ja) | 2019-04-03 |
EP2908523A1 (en) | 2015-08-19 |
TW201419872A (zh) | 2014-05-16 |
JPWO2014057832A1 (ja) | 2016-09-05 |
MX358606B (es) | 2018-08-24 |
EP3618434B1 (en) | 2021-04-14 |
EP2908523A4 (en) | 2016-09-21 |
MY174138A (en) | 2020-03-10 |
US10313694B2 (en) | 2019-06-04 |
AU2017204793A1 (en) | 2017-07-27 |
BR112015007530A2 (pt) | 2017-07-04 |
AU2019219782A1 (en) | 2019-09-12 |
KR20150067147A (ko) | 2015-06-17 |
RU2015112109A (ru) | 2016-10-20 |
TWI652938B (zh) | 2019-03-01 |
CN104704823A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6721069B2 (ja) | 画像処理装置および方法 | |
US10779009B2 (en) | Image decoding device and method | |
US20150010059A1 (en) | Image processing device and method | |
US10893279B2 (en) | Decoding apparatus and decoding method, and coding apparatus and coding method | |
JP6646883B2 (ja) | 画像符号化装置および方法、並びに、プログラム | |
KR102197557B1 (ko) | 화상 처리 장치 및 방법 | |
JP6150134B2 (ja) | 画像符号化装置および方法、画像復号装置および方法、プログラム、並びに記録媒体 | |
JP6402802B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
WO2014002618A1 (ja) | 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13845300 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014540806 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 20157007429 Country of ref document: KR Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2015/004140 Country of ref document: MX |
|
ENP | Entry into the national phase |
Ref document number: 2886943 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14432786 Country of ref document: US Ref document number: 2013845300 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2013327962 Country of ref document: AU Date of ref document: 20130930 Kind code of ref document: A Ref document number: 2015112109 Country of ref document: RU Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: IDP00201501977 Country of ref document: ID |
|
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: 112015007530 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 112015007530 Country of ref document: BR Kind code of ref document: A2 Effective date: 20150402 |