WO2010041472A1 - 画像復号化装置および画像復号化方法 - Google Patents
画像復号化装置および画像復号化方法 Download PDFInfo
- Publication number
- WO2010041472A1 WO2010041472A1 PCT/JP2009/005298 JP2009005298W WO2010041472A1 WO 2010041472 A1 WO2010041472 A1 WO 2010041472A1 JP 2009005298 W JP2009005298 W JP 2009005298W WO 2010041472 A1 WO2010041472 A1 WO 2010041472A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- slice
- stream
- unit
- divided
- decoding
- Prior art date
Links
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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
Definitions
- the present invention relates to an image decoding apparatus and an image decoding method for decoding a coded image, and more particularly to an image decoding apparatus and an image decoding method for executing decoding in parallel.
- An image coding apparatus that encodes a moving image divides each picture constituting the moving image into macroblocks and encodes each of the macroblocks. Then, the image coding apparatus generates a coded stream indicating a coded moving image.
- FIG. 25 shows the structure of a picture to be encoded.
- a picture is divided into macroblocks of 16 ⁇ 16 pixels and encoded.
- a slice is composed of a plurality of macroblocks included in the picture, and a picture is composed of a plurality of slices.
- a structural unit having one column of a plurality of macroblocks arranged in the horizontal direction from the left end to the right end of a picture is referred to as a macroblock line (MB line).
- FIG. 26 is a diagram showing the configuration of a coded stream.
- the coded stream is hierarchized and, as shown in (a) of FIG. 26, is configured to include a header and a plurality of pictures arranged in coding order.
- the above-mentioned header includes, for example, a sequence parameter set (SPS) which is referred to in order to decode a sequence of a plurality of pictures.
- the encoded picture is configured to include a header and a plurality of slices as shown in (b) of FIG. 26, and the slice is a header and as shown in (c) of FIG. , And a plurality of macroblocks (MB).
- the header at the beginning of the picture shown in (b) of FIG. 26 includes, for example, a picture parameter set (PPS) to be referred to for decoding the picture.
- PPS picture parameter set
- FIG. 27 shows a configuration of a conventional image decoding apparatus.
- the image decoding apparatus 200 includes a memory 210 and a decoding engine 220.
- the memory 210 includes a stream buffer 211 having an area for storing a coded stream, and a frame memory 212 having an area for storing decoded image data output from the decoding engine 220.
- the image decoding apparatus 200 stores the encoded image data in the stream buffer 211 when sequentially obtaining encoded image data such as macroblocks and pictures included in the encoded stream from the top side.
- the decoding engine 220 sequentially reads and decodes the encoded image data from the stream buffer 211 in decoding order, and stores the decoded image data generated by the decoding in the frame memory 212. Further, when decoding, the decoding engine 220 decodes the encoded image data while referring to the decoded image data already stored in the frame memory 212.
- the decoded image data stored in the frame memory 212 is output to the display device in display order and displayed.
- FIG. 28 shows a configuration of the decoding engine 220. As shown in FIG.
- the decoding engine 220 includes an entropy decoding unit 221, an inverse conversion unit 222, an adder 223, a deblocking filter 224, a motion compensation unit 225, a weighted prediction unit 226, an intra prediction unit 227, and a switch 228.
- the entropy decoding unit 221 performs entropy decoding on the encoded image data to generate quantized data indicating a quantization value, and outputs the quantized data to the inverse transform unit 222.
- the inverse transform unit 222 transforms the quantized data into differential image data by performing inverse quantization and inverse orthogonal transform on the quantized data.
- the adder 223 adds the difference image data output from the inverse conversion unit 222 and the predicted image data output from the weighted prediction unit 226 or the in-screen prediction unit 227 via the switch 228 to obtain decoded image data.
- the deblocking filter 224 removes coding distortion included in the decoded image data generated by the adder 223, and stores the decoded image data from which the coding distortion has been removed in the frame memory 212.
- the motion compensation unit 225 reads the decoded image data stored in the frame memory 212 and performs motion compensation to generate predicted image data, and outputs the predicted image data to the weighted prediction unit 226.
- the weighted prediction unit 226 weights the prediction image data output from the motion compensation unit 225 and outputs the weighted prediction image data to the switch 228.
- the in-screen prediction unit 227 performs in-screen prediction. That is, the in-screen prediction unit 227 generates in-screen prediction by performing in-screen prediction using the decoded image data generated by the adder 223 and outputs the generated predicted image data to the switch 228.
- the switch 228 outputs the predicted image data output from the in-screen prediction unit 227 to the adder 223 when the differential image data output from the inverse conversion unit 222 is generated by the in-screen prediction. Also, when the differential image data output from the inverse transform unit 222 is generated by inter-frame prediction, the switch 228 outputs the predicted image data output from the weighted prediction unit 226 to the adder 223.
- FIG. 29 is an explanatory diagram for explaining HD and 4k2k.
- the HD encoded stream is distributed by terrestrial digital broadcasting, BS digital broadcasting, etc., and a picture of resolution "1920 ⁇ 1080 pixels" is decoded and displayed at a frame rate of 30 frames per second.
- the 4k2k coded stream will be trially distributed in advanced BS digital broadcasting from 2011, and pictures of resolution "3840 x 2160 pixels” will be decoded and displayed at a frame rate of 60 frames per second .
- 4k2k has twice as high resolution and two times the frame rate in both vertical and horizontal respectively than HD.
- the processing load on the decoding engine of the image decoding apparatus is increased.
- the decoding engine 220 of the image decoding apparatus 200 shown in FIG. 27 requires a practically difficult operating frequency of 1 GHz or more when decoding a 4k2k coded stream. Therefore, parallel processing of decoding is being studied.
- FIG. 30 is a block diagram showing an example of the configuration of an image decoding apparatus that executes parallel processing of decoding.
- the image decoding apparatus 300 includes a memory 210 and a decoder 320.
- Each of the N decoding engines 321 (first decoding engine 321 to Nth decoding engine 321) extracts a portion to be processed by itself from the encoded stream stored in the stream buffer 211, and the extracted portion Are decoded and output to the frame memory 212.
- 31A and 31B are explanatory diagrams for describing an example of parallel processing of decoding.
- the image decoding apparatus 300 acquires a coded stream composed of four area coded streams and stores the coded stream in the stream buffer 211.
- Each of the four area coded streams is an independent stream, and as shown in FIG. 31A, is a stream showing a moving image of one area of one screen divided into four equal parts.
- the image decoding apparatus 300 acquires a coded stream including a picture consisting of four slices and stores the coded stream in the stream buffer 211.
- Four slices are generated by vertically dividing the picture into four equal parts, as shown in FIG. 31B.
- MPEG-2 and H There is also considered an image decoding apparatus that decodes in parallel a coded stream representing a moving image coded according to the H.264 / AVC operating standard without any restriction or change to the operating standard.
- Patent Document 1 and Patent Document 2 separate the pictures of the encoded stream generated by MPEG-2 for each slice, and execute the decoding process of each slice in parallel.
- Patent Document 3 the image decoding apparatus of Patent Document 3 is described in the following.
- the picture of the encoded stream generated by H.264 / AVC is separated for each MB line, and the decoding process of each MB line is executed in parallel.
- FIG. 32 is an explanatory diagram for describing a decoding process by the image decoding device of Patent Document 3.
- the first decoding engine of the image decoding apparatus decodes the 0th MB line in the picture
- the second decoding engine decodes the 1st MB line in the picture
- the third decoding engine Decode the second MB line in the picture.
- each decoding engine sequentially decodes the macroblocks from the left end to the right end of the MB line.
- the decoding of the macroblock there is a dependency between the macroblock to be decoded and the macroblocks on the left, top left, top, and top right as viewed from the macroblock to be decoded. That is, when decoding each macroblock, each decoding engine needs information obtained by decoding the left, upper left, upper, and upper right macroblocks from the viewpoint of the macroblock to be decoded. Therefore, each decoding engine starts decoding the macroblock to be decoded after the decoding of those macroblocks is completed.
- each decoding engine of the decoding target macroblock after decoding of the other macroblocks is completed. Start decryption. That is, the image decoding apparatus executes decoding of the macro blocks located at the position of Keima in parallel.
- the image decoding apparatus of Patent Document 4 is based on H.264.
- a coded stream generated by H.264 / AVC is obtained, a row header is inserted at the MB line boundary of the coded stream, and decoding processing of each MB line is executed in parallel.
- Each decoding engine of this image decoding apparatus uses the row header as a mark to extract the MB line to be processed from itself from the encoded stream, and executes decoding of the MB line.
- Patent Documents 1 to 4 have a problem that parallel processing of decoding can not be appropriately performed, and a problem that the configuration of the apparatus becomes complicated.
- the picture is divided into slices and decoding of a plurality of slices is performed in parallel.
- Parallel processing of decoding can not be appropriately performed on a coded stream in which the size and position of a slice are arbitrarily set as in the H.264 / AVC coded stream.
- load bias occurs in each of the plurality of decoding engines provided in the image decoding apparatus, and decoding that effectively utilizes parallel processing can not be performed. For example, if one picture is composed of one slice, the picture can not be divided, and one decoding engine has to perform decoding of the entire picture.
- H.264, H.264, and H.323 are included.
- the slice included in the H.264 / AVC picture may be divided. In this case, it is necessary to provide each decoding engine with a function to appropriately recognize a part of the divided slice as a slice, which complicates the configuration of the image decoding apparatus.
- an object of the present invention is to provide an image decoding apparatus and an image decoding method that appropriately execute parallel processing of decoding with a simple configuration.
- an image decoding apparatus is an image decoding apparatus that decodes a coded stream obtained by coding image data, and an acquisition unit that acquires the coded stream
- the encoded picture is divided into a plurality of constituent units for each encoded picture included in the encoded stream acquired by the acquisition unit, and N pieces of each of the plurality of constituent units are generated (N (N Is a stream dividing unit that generates N divided streams by allocating to any part of the divided streams of 2 or more), and the N divided streams generated by the stream dividing unit And N decoding units for decoding in parallel, and the stream division unit is included in the encoded picture when generating the N division streams.
- a slice partial group consisting of at least one slice part allocated to the divided stream is N for each divided stream. Reconstructing the slice portion group as a new slice so as to be recognized as a slice in any of the units.
- the coded picture is divided into constituent units such as a plurality of macroblock lines, for example, and each of the plurality of macroblock lines is allocated to N decoding units as part of a divided stream and decoded.
- the burden of decoding processing by the N decoding units can be equalized, and parallel processing of decoding can be appropriately performed.
- H. Even if the H.264 / AVC coded picture is composed of one slice, the coded picture is divided into a plurality of macroblock lines, so that decoding of one slice is performed by one decoding unit.
- the burden can be evenly shared by the N decoding units without burdening.
- slices across a plurality of macroblock lines may be divided into a plurality of slice portions, and those slice portions may be allocated to different division streams.
- one divided stream does not include the entire slice of a coded picture, but includes a slice portion group configured by gathering one or more slice portions that are fragments of the slice.
- such a slice portion group may not include a header indicating the beginning thereof and end information indicating the end thereof.
- the decoding unit that decodes the divided stream including the slice partial group recognizes the slice partial group and appropriately decodes it.
- the slice subsets can be easily recognized as new slices and appropriately decoded without requiring any special processing. That is, in the present invention, since it is not necessary to provide a function or configuration for performing special processing to each of the N decoding units, the conventional decoding circuit should be diverted to the decoding unit for decoding the divided stream. Thus, the overall configuration of the image decoding apparatus can be simplified.
- the stream division unit adds auxiliary information necessary for decoding the slice at the beginning of the slice partial group. By inserting, the slice subsets are reconstructed as new slices.
- the decoding unit that decodes the divided stream performs special processing by acquiring and using the auxiliary information.
- the slice subsets can be properly decoded without
- the stream division unit generates a copy auxiliary information by copying auxiliary information necessary for decoding the slice, which is at the beginning of a slice included in the encoded picture, and the copy auxiliary information
- the inserting section for inserting at the top of the slice portion group as the auxiliary information
- the image decoding apparatus further comprises: a macro of a head portion included in the slice portion group, the address information included in the copy auxiliary information
- An address updating unit may be provided to update the address information indicating the block address.
- the decoding unit since the address information indicating the address of the first macro block of the slice partial group is included in the auxiliary information of the slice partial group, the decoding unit does not perform special processing, and the address information is By reading out, it is possible to properly grasp the address of the leading macroblock of the slice partial group.
- auxiliary information processing unit for sequentially acquiring data and outputting the auxiliary information to the N buffers when the data is the auxiliary information, each of the N buffers being the divided output unit
- auxiliary information processing unit simply outputs the auxiliary information obtained from the encoded stream to the N buffers, it is necessary for the N divided streams among the auxiliary information output to the N buffers. Only the auxiliary information to be output can be output from the N buffers at an appropriate timing. As a result, with a simple configuration, auxiliary information can be appropriately inserted at the beginning of a slice partial group that was not at the beginning of a slice of a coded picture.
- the stream division unit when the end of the slice partial group is not the end of a slice included in the encoded picture, the stream division unit further includes end information indicating that the end of the slice partial group is the slice partial group By setting at the end of, the slice partial groups are reconstructed as new slices.
- the decoding unit that decodes the divided stream appropriately terminates the slice partial group without performing special processing. It can be recognized.
- the stream division unit further acquires mode information indicating whether or not division is to be performed, and when the mode information indicates that division is not to be performed, a plurality of encoded streams acquired by the acquisition unit
- mode information indicates that division is not to be performed
- a plurality of encoded streams may be decoded in parallel.
- processing for dividing one encoded stream into a plurality of divided streams and decoding those divided streams in parallel, and processing for decoding a plurality of encoded streams in parallel correspond to the mode information. It is switched. As a result, for example, high-resolution images of 4k2k can be reproduced in real time, or HD images of a plurality of channels can be reproduced simultaneously.
- the present invention can not only be realized as such an image decoding apparatus, but also as a method, a program, a storage medium for storing the program, and an integrated circuit.
- the image decoding apparatus has the advantage of being able to appropriately execute parallel processing of decoding with a simple configuration.
- FIG. 1 is a block diagram showing the configuration of an image decoding apparatus according to an embodiment of the present invention.
- FIG. 2A is a diagram showing the order of decoding when the above picture is not configured by MBAFF.
- FIG. 2B is a diagram showing the order of decoding in the case where the same picture as above is composed of MBAFF.
- FIG. 3 is an explanatory view for explaining the insertion process of the slice header of the same.
- FIG. 4 is an explanatory view for explaining update processing of MB address information of the same.
- FIG. 5 is an explanatory diagram for explaining the above-mentioned slice termination process.
- FIG. 6 is a flow chart showing the overall operation of the above-mentioned image decoding apparatus.
- FIG. 7 is a block diagram showing the configuration of the above-mentioned stream division unit.
- FIG. 8 is an explanatory diagram for explaining the operation of the above-mentioned slice header insertion unit and slice data processing unit.
- FIG. 9 is a block diagram showing a configuration of a slice header insertion unit of the same.
- FIG. 10 is a diagram showing MB lines and slice headers allocated to the first to fourth areas of the split stream buffer of the same as the above.
- FIG. 11A is a diagram showing the position where the slice end information of the same is set.
- FIG. 11B is a diagram showing another position where the slice end information of the same is set.
- FIG. 12 is a flowchart showing the operation of the division point detection unit of the same.
- FIG. 13A is an explanatory diagram for explaining high resolution decoding of the same.
- FIG. 13B is an explanatory diagram for describing high-speed decoding of the same.
- FIG. 13C is an explanatory diagram for describing multi-channel decoding of the same.
- FIG. 14 is a diagram showing a code for the decoding engine according to the first modification of the above to change MB address information.
- FIG. 15 is a block diagram showing a stream dividing unit, a divided stream buffer, and four decoding engines of the image decoding apparatus according to the second modification of the above embodiment.
- FIG. 16 is an explanatory diagram for explaining the operation of the stream division unit and the four decoding engines according to the second modification of the above embodiment.
- FIG. 17 is a block diagram showing a stream division unit, a division stream buffer and four decoding engines of the image decoding apparatus according to the third modification of the above.
- FIG. 18 is a diagram showing a pointer of a buffer according to the third modification of the above.
- FIG. 19 is an explanatory diagram for explaining the operation of the stream division unit according to the third modification of the above.
- FIG. 20 is a diagram showing an application example of the image decoding apparatus of the present invention.
- FIG. 21 is a block diagram showing the minimum configuration of the image decoding apparatus of the present invention.
- FIG. 22 is a block diagram showing the configuration of the stream division unit of the present invention.
- FIG. 23 is a block diagram showing another minimum configuration of the image decoding apparatus of the present invention.
- FIG. 24 is a block diagram showing another configuration of the stream division unit of the present invention.
- FIG. 25 shows the structure of a picture to be encoded.
- FIG. 26 is a diagram showing the configuration of a coded stream.
- FIG. 27 shows a configuration of a conventional image decoding apparatus.
- FIG. 28 shows a structure of a conventional decoding engine.
- FIG. 29 is an explanatory diagram for explaining HD and 4k2k.
- FIG. 30 is a block diagram showing a configuration of an image decoding apparatus that executes conventional decoding parallel processing.
- FIG. 31A is an explanatory diagram for describing an example of conventional decoding parallel processing.
- FIG. 31B is an explanatory diagram for describing another example of conventional decoding parallel processing.
- FIG. 32 is an explanatory diagram for describing a decoding process by a conventional image decoding apparatus.
- FIG. 1 is a block diagram showing the configuration of an image decoding apparatus according to an embodiment of the present invention.
- An image decoding apparatus 100 is an apparatus for appropriately executing parallel processing of decoding with a simple configuration, and includes a decoder 110 and a memory 150.
- the memory 150 has an area for storing data input to the decoder 110, data intermediately generated by the decoder 110, and data finally generated and output by the decoder 110.
- the memory 150 includes a stream buffer 151, a divided stream buffer 152, and a frame memory 153.
- the stream buffer 151 stores the encoded stream generated and transmitted by the image encoding device. That is, in the present embodiment, the stream buffer 151 is configured as an acquisition unit that acquires a coded stream.
- the divided stream buffer 152 stores N divided streams generated by the decoder 110 as the above-described intermediately generated data.
- the frame memory 153 the N divided decoded image data generated by the N decoding engines (decoding units) 120 are stored as the data that is ultimately generated and output as described above.
- the decoded image data is stored in the frame memory 153, read by the display device, and displayed as a moving image.
- the decoder 110 reads out and decodes the encoded stream stored in the stream buffer 151 of the memory 150 to generate decoded image data, and stores the decoded image data in the frame memory 153 of the memory 150.
- the decoder 110 also includes a stream division unit 130 and N decoding engines (first to N-th decoding engines) 120.
- the decoding engine 120 in the present embodiment has a processing capability capable of decoding an HD image (1920 ⁇ 1088 pixels, 60i) for two channels.
- the stream division unit 130 acquires mode information to be described later, and divides the encoded stream into N divided streams (first divided stream to Nth divided stream) according to the mode information. That is, the stream division unit 130 in the present embodiment divides the picture into a plurality of MB lines for each of the coded pictures included in the coded stream. Then, the stream division unit 130 generates N divided streams by allocating each of the plurality of MB lines to any one of N divided streams to be generated.
- the MB line is a structural unit having one row of a plurality of macroblocks arranged in the horizontal direction from the left end to the right end of the picture.
- the stream division unit 130 divides the picture into a plurality of MB lines when the picture is not configured by MBAFF (macroblock adaptive frame field), but when the picture is configured by MBAFF,
- the two MB lines are treated as one structural unit (hereinafter referred to as MB line pair), and the picture is divided into a plurality of MB line pairs.
- the stream division unit 130 divides the picture into a plurality of MB lines, and sets two MB lines belonging to the MB line pair to parts of the same divided stream. assign.
- the present invention will be described on the assumption that the picture is not composed of MBAFF.
- different processes are required for the case where the picture is not composed of MBAFF and the case where it is composed of MBAFF.
- the MB line is replaced with an MB line pair to explain the explanation in the case where the picture is composed of MBAFF. It can be replaced by the description of the invention.
- the stream division unit 130 divides a picture into a plurality of MB lines, if there is a header immediately before the MB line in the encoded stream, or between two macro blocks belonging to the MB line, the header Is attached to the MB line and assigned to part of the split stream.
- the division for each MB line by the stream division unit 130 as described above results in division of slices arranged over a plurality of MB lines included in a picture. Also, when dividing into N divided streams, the stream dividing unit 130 removes the dependency in the variable-length decoding process between macroblocks that straddle each of the N divided streams.
- Each of the N decoding engines 120 reads out a divided stream to be processed by itself from the divided stream buffer 152, and decodes the read divided streams in parallel to generate N divided decoded image data.
- the first decoding engine 120 reads the first divided stream from the divided stream buffer 152
- the second decoding engine 120 reads the second divided stream from the divided stream buffer 152
- the third decoding engine 120 divides the third divided stream.
- Reading from the stream buffer 152 the fourth decoding engine 120 reads the fourth divided stream from the divided stream buffer 152. Then, the first decoding engine 120 to the fourth decoding engine 120 respectively decode the first divided stream to the fourth divided stream in parallel.
- the N decoding engines 120 refer to the decoded image data already stored in the frame memory 153, and decode the divided stream by performing motion compensation as necessary. .
- each of N decoding engines 120 decodes the macroblocks in the upper left, upper and upper right of the macroblock to be decoded when decoding a macroblock encoded by intra prediction included in the divided stream.
- the information of those decoded macroblocks is acquired as adjacent MB information from the decoded decoding engine 120.
- the decoding engine 120 that has acquired the adjacent MB information decodes the decoding target macroblock using the adjacent MB information. Further, even when, for example, deblocking filter processing and motion vector prediction processing are performed, the decoding engine 120 similarly decodes the information of the decoded macroblocks at the upper left, upper and upper right of the macroblock to be processed, as described above. It is acquired as adjacent MB information, and the above processing is performed.
- N 4 in the following, in order to simplify the description.
- the neighboring MB information is used to start decoding of the macroblock to be decoded.
- the first decoding engine 120 to the fourth decoding engine 120 respectively decode in parallel the macroblocks located at mutually different positions in the horizontal direction in each MB line.
- FIG. 2A is a diagram showing the order of decoding when the picture is not configured by MBAFF.
- the first decoding engine 120 decodes the 0th MB line
- the second decoding engine 120 decodes the first MB line
- the third decoding engine 120 decodes the second MB line
- the 4-decode engine 120 decodes the third MB line.
- the k-th (k is an integer of 0 or more) MB line indicates the MB line k-th from the top of the picture.
- the 0 MB line is the MB line 0-th from the top of the picture.
- the first decoding engine 120 starts decoding of the 0th MB line.
- the second decoding engine 120 starts decoding of the macroblock at the left end of the first MB line.
- the third decoding engine 120 starts decoding of the macroblock at the left end of the second MB line.
- the fourth decoding engine 120 starts decoding of the macroblock at the left end of the third MB line.
- the (k + 1) th MB line is decoded from the leftmost macroblock to the rightmost macroblock with a delay of two macroblocks compared to the kth MB line.
- FIG. 2B is a diagram showing the order of decoding when the picture is composed of MBAFF.
- a MB line pair is a configuration unit having two columns (MB lines) of a plurality of macro blocks arranged horizontally from the left edge to the right edge of the picture. is there.
- the MB line pair is field-coded for each of two macroblocks (macroblock pairs) located above and below. In the macroblock pair, the upper macroblock is decoded first, and then the lower macroblock is decoded.
- the first decoding engine 120 decodes the 0 MB line pair, and the second decoding engine 120 decodes the 1 MB line pair, as in the case where the picture is not configured with MBAFF, and the third decoding engine 120 decodes the second MB line pair, and the fourth decoding engine 120 decodes the third MB line pair.
- the k-th (k is an integer of 0 or more) MB line pair indicates a constitutional unit consisting of two MB lines located k-th from the top of the picture, for example, the 0-MB line is 0th from the top of the picture It is a structural unit consisting of two MB lines.
- the first decoding engine 120 starts decoding of the 0-th MB line pair.
- the second decoding engine 120 starts decoding of the upper left end macroblock of the first MB line pair.
- the third decoding engine 120 starts decoding of the macroblock at the upper left end of the second MB line pair.
- the fourth decoding engine 120 starts decoding of the macroblock at the upper left end of the third MB line pair.
- the (k + 1) th MB line pair is decoded from the leftmost macroblock pair to the rightmost macroblock pair with a delay of two macroblock pairs compared to the kth MB line pair.
- the (k + 1) -th MB line or the (k + 1) -th MB line pair is the k-th MB line or the k-th MB line It may be decoded later by at least two macroblocks or two macroblocks compared to a pair. That is, decoding may be performed with a delay of 3 macroblocks or 3 macroblock pairs or more. For example, when the (k + 1) -th MB line or the (k + 1) -th MB line pair is decoded by two macroblocks or two macroblock pairs later than the k-th MB line or the k-th MB line pair. The time required to decode a picture can be minimized, and when decoding is delayed by three macroblocks or three macroblock pairs or more, the time taken to decode a picture according to the delay amount Will be longer.
- the feature of the image decoding apparatus 100 is that a new slice portion group formed of one or more portions (slice portions) of slices, which is generated by the division by the stream division unit 130, is used. It is to reconstruct as a slice.
- the slice reconstruction includes slice header insertion processing, slice termination processing, and MB address information update processing.
- FIG. 3 is an explanatory diagram for explaining a process of inserting a slice header.
- the stream division unit 130 divides the picture p1 shown in (a) of FIG.
- the picture p1 is composed of slice A, slice B and slice C, and is composed of MB lines L1 to L12.
- the slice A is disposed across the MB lines L1 to L7, and includes a slice header ha and a plurality of macroblocks mba disposed consecutively from the slice header ha.
- the slice B is disposed across the MB lines L7 to L8, and includes a slice header hb and a plurality of macroblocks mbb sequentially disposed from the slice header hb.
- the slice C is disposed across the MB lines L9 to L12, and includes a slice header hc and a plurality of macroblocks mbc sequentially disposed from the slice header hc.
- the slice header includes auxiliary information necessary for decoding a slice having the slice header.
- the stream division unit 130 divides the above picture p1 into MB lines as shown in FIG. 3 (b). Then, the stream division unit 130 allocates each of the MB lines L1 to L12 to a part of any of the first to fourth divided streams in order from the top. For example, the stream division unit 130 allocates the MB line L1 to a part of the first divided stream, allocates the MB line L2 to a part of the second divided stream, and allocates the MB line L3 to a part of the third divided stream, The MB line L4 is allocated to part of the fourth split stream. Then, when the allocation of the MB line to the fourth divided stream is completed, the stream division unit 130 repeats the allocation of the MB line to the first divided stream.
- the stream division unit 130 allocates the MB line L5 to a part of the first divided stream, allocates the MB line L6 to a part of the second divided stream, and allocates the MB line L7 to a part of the third divided stream,
- the MB line L8 is allocated to a part of the fourth split stream.
- the first divided stream includes consecutive MB lines L1, L5, L9
- the second divided stream includes consecutive MB lines L2, L6, L10
- the third divided stream includes consecutive MB lines L3, L7
- the fourth divided stream includes consecutive MB lines L4, L8, and L12.
- a set of MB lines L1 to L6, a set of 6 macro blocks on the head side of MB line L7, a set of 10 macro blocks on the end side of MB line L7, and MB lines L8 to L12 are slice A, respectively. It is a slice part which constitutes a part of ⁇ C. Then, in the first divided stream, a slice portion group (slice A in the first divided stream) is configured from the MB lines L1 and L5 which are slice portions of the slice A. Also, in the second divided stream, slice portions (slice A in the second divided stream) are configured from the MB lines L2 and L6 that are slice portions of the slice A.
- the first divided stream includes the continuous MB lines L1, L5, and L9 as described above.
- MB lines L1 and L5 should be recognized as slice A
- MB line L9 should be recognized as slice C.
- the slice header ha of slice A needs to be arranged at the head of MB line L1 that should be the head of slice A in the first divided stream
- MB that should be the head of slice C in the first divided stream The slice header hc of slice C needs to be arranged at the beginning of the line L9. In the example shown in FIG.
- the stream division unit 130 performs the first processing of the MB lines L1, L5 and L9 with the slice headers ha and hc. It suffices to assign to divided streams.
- the second divided stream includes the continuous MB lines L2, L6, and L10 as described above.
- MB lines L2 and L6 should be recognized as slice A
- MB line L10 should be recognized as slice C.
- the slice header ha of slice A needs to be arranged at the head of MB line L2 that should be the head of slice A in the second divided stream
- MB that should be the head of slice C in the second divided stream The slice header hc of slice C needs to be arranged at the beginning of the line L10.
- the stream dividing unit 130 in the present embodiment allocates the MB line to a part of the divided stream, the slice header ha ', hb', hb ', and hc' are copied by duplicating the slice header ha, hb and hc as necessary. Generate hc 'and insert them into the split stream.
- the stream segmentation unit 130 duplicates the slice header ha to generate three duplicate slice headers ha ', and inserts the duplicate slice headers ha' immediately before the MB lines L2, L3, and L4. Furthermore, the stream segmentation unit 130 duplicates the slice header hb to generate one duplicate slice header hb ', and inserts the duplicate slice header hb' immediately before the MB line L8. Furthermore, the stream dividing unit 130 generates three copied slice headers hc 'by copying the slice header hc, and inserts the copied slice headers hc' immediately before the MB lines L10, L11, and L12.
- a duplicate slice header ha ′ which is a duplicate of the slice header ha of slice A, is placed immediately before the MB line L 2 at the beginning of slice A, and MB line L 10 at the beginning of slice C.
- a duplicate slice header hc ' which is a duplicate of the slice header hc of the slice C is disposed immediately before.
- the stream splitting unit 130 updates the MB address information included in the duplicate slice header according to the position to be inserted.
- the slice header of each slice constituting the picture included in the encoded stream includes MB address information "first_mb_in_slice" for specifying the address in the picture of the first macroblock of the slice. Therefore, the duplicate slice header generated by duplicating such a slice header initially includes the same MB address information as the MB address information of the duplicate slice header. As a result, if such a duplicate slice header is inserted at a different position in the picture from the slice header of the duplicate source, the address specified by the MB address information of the duplicate slice header points to an incorrect address. It will be.
- the address specified by the MB address information of the duplicate slice header does not indicate the address in the above picture of the leading macroblock of the slice having the duplicate slice header in the split stream, but the slice having the slice header of the duplicate source. It points to the address of the start macroblock.
- the slice header ha of the slice A of the picture p1 includes MB address information indicating the address in the picture p1 of the top macroblock (the top macroblock of the MB line L1) of the slice A.
- the duplicate slice header ha 'generated by duplicating such a slice header ha initially includes MB address information for specifying the address in the picture p1 of the top macroblock of the MB line L1. There is.
- the address specified by the MB address information of the duplicate slice header ha' is the duplicate slice header in the second divided stream. It does not indicate the address in the picture p1 of the start macro block of the slice A having ha '(the start macro block of the MB line L2), but indicates the address of the start macro block of the MB line L1.
- the stream division unit 130 in the present embodiment updates the MB address information included in the copy slice header.
- FIG. 4 is an explanatory diagram for explaining update processing of MB address information.
- the stream division unit 130 first acquires “pic_width_in_mbs_minus1” that is information related to the number of macroblocks in the horizontal direction of the picture from the SPS (sequence parameter set) included in the encoded stream.
- the stream division unit 130 uses the MB address information “first_mb_in_slice” included in the slice header of the copy source to calculate the address of the start macroblock of the slice having the slice header of the copy source.
- the stream division unit 130 calculates a value “mbposv” indicating on which line of MB line the top macroblock is in the picture, based on the calculated address of the top macroblock.
- the value "mbposv” is an integer of 0 or more.
- the stream division unit 130 updates the MB address information initially contained in the duplicate slice header to the MB address information calculated as described above.
- the address specified by the MB address information of the duplicate slice header correctly points to the address within the picture of the top macroblock of the slice having the duplicate slice header in the split stream.
- slice end information indicating that the end of the slice is set. Therefore, as shown in FIG. 3, if a picture is simply divided into a plurality of MB lines, and the plurality of MB lines are respectively allocated to any part of the first to fourth divided streams, In some cases, the end of the slice included in the divided stream can not be properly recognized by the decoding engine 120.
- the stream division unit 130 in the present embodiment executes slice termination processing as well as slice header insertion processing.
- FIG. 5 is an explanatory diagram for explaining the slice end process.
- the slice C included in the picture p1 of the coded stream includes a slice header hc, MB lines L9 to L12, and slice end information ec.
- the stream division unit 130 divides the picture p1 into MB lines.
- the MB line L9 is allocated to the first divided stream together with the slice header hc
- the MB line L10 is allocated to the second divided stream
- the MB line L11 is
- the MB line L12 is assigned to the third split stream
- the MB line L12 is assigned to the fourth split stream.
- the stream division unit 130 duplicates the slice header hc by the above-mentioned slice header insertion processing to generate three duplicate slice headers hc ', and respectively divides the three duplicate slice headers hc' into the second split. It is inserted immediately before the MB lines L10, L11 and L12 of the stream to the fourth divided stream. Also, the stream division unit 130 updates the MB address information included in the copy slice header hc 'according to the position of the copy slice header hc' to be inserted, by the above-described MB address information update processing.
- the stream division unit 130 performs, as slice end processing, the end of slice C (MB line L9) in the first divided stream, the end of slice C (MB line L10) in the second divided stream, and the slice in the third divided stream
- the slice end information ec ′ indicating the end of C (MB line L11) and the end of slice C (MB line L12) in the fourth divided stream is generated.
- the stream division unit 130 sets the generated slice end information ec 'immediately after the MB lines L9, L10, L11, and L12 of the first to fourth divided streams.
- the stream dividing unit 130 discards the slice end information ec originally contained in the coded stream. If the slice end information ec and the slice end information ec 'are the same information, finally, the MB line L12 is assigned to the fourth divided stream together with the slice end information ec' (ec).
- each decoding engine 120 can appropriately recognize the end of the slice included in the divided stream.
- FIG. 6 is a flowchart showing an overall operation of the image decoding apparatus 100 according to the present embodiment.
- the image decoding apparatus 100 acquires a coded stream (step S10), and specifies a coded picture to be processed from the coded stream (step S12). Furthermore, the image decoding apparatus 100 extracts one MB line by dividing the picture to be processed (step S14). If there is a slice header immediately before the MB line or between two macro blocks belonging to the MB line, the MB line is extracted together with the slice header.
- the image decoding apparatus 100 slices one MB line extracted by the division in step S14 immediately before the MB line before assigning it to any of the first to Nth divided streams to be generated. It is determined whether it is necessary to insert a header and whether or not slice end information needs to be set immediately after the already allocated MB line (step S16).
- step S16 When the image decoding apparatus 100 determines in step S16 that it is necessary to insert a slice header, it determines that it is necessary to set slice end information, or it is necessary to perform both the insertion and the setting. If it is determined that there is (Yes at step S16), slice reconstruction processing is executed (step S18). That is, the image decoding apparatus 100 performs at least one of the above-mentioned slice header insertion process and slice end process. When the image decoding apparatus 100 executes the slice header insertion process, it also executes the MB address information update process.
- the image decoding apparatus 100 assigns the MB line to any one of the first to Nth divided streams to be generated (step S20).
- step S20 MB lines are sequentially assigned to the first to Nth divided streams, and the first to Nth divided streams are generated.
- the image decoding apparatus 100 decodes in parallel the MB lines allocated to each of the first to Nth divided streams (step S22). If no MB line is assigned to any one of the first to N-th split streams, the image decoding apparatus 100 removes the remainder of the split stream to which the MB line is not assigned. Decode a split stream of
- the image decoding apparatus 100 determines whether all the MB lines included in the picture have been allocated (step S24), and when it is determined that the MB lines are not allocated (No in step S24), the process from step S14. Run repeatedly. On the other hand, when the image decoding apparatus 100 determines that all the MB lines have been allocated (Yes in step S24), it further determines whether all the pictures included in the encoded stream have been divided (step S26). . Here, when the image decoding apparatus 100 determines that all the pictures have not been divided (No in step S26), the process from step S12 is repeatedly performed, and it is determined that all the pictures have been divided (No Yes in step S26, the decoding process is ended.
- the processing operation shown in the flowchart of FIG. 6 is an example of the processing operation of the image decoding apparatus 100 of the present invention, and the present invention is not limited to the processing operation shown in the flowchart.
- the stream division unit 130 of the image decoding apparatus 100 performs slice header insertion processing in the slice reconstruction processing of step S18, but does not perform slice header insertion processing.
- the duplicate slice header may be passed directly to the decoding engine 120 which requires
- the stream division unit 130 performs the update process of MB address information in the slice reconstruction process of step S18, but the update process may not be performed.
- the decoding engine 120 updates MB address information of a duplicate slice header included in the divided stream.
- the stream segmentation unit 130 performs slice termination processing in the slice reconstruction processing in step S18, but the slice reconstruction processing may not be performed.
- the next new MB line is divided from the stream division unit 130 to any one of the divided streams.
- slice end processing may be performed on already assigned MB lines.
- FIG. 7 is a block diagram showing the configuration of the stream division unit 130. As shown in FIG.
- the stream division unit 130 includes a start code detection unit 131, an EPB removal unit 132a, an EPB insertion unit 132b, a slice header insertion unit 133, and slice data processing units 134a and 134b.
- the start code detection unit 131 reads the encoded stream from the stream buffer 151 and detects the start code for each NAL unit.
- the EPB removing unit 132a removes the EPB (emulation prevention byte) from the encoded stream, and outputs the encoded stream from which the EPB has been removed to the slice data processing units 134a and 134b. Furthermore, the EPB removing unit 132a obtains information on layers above the slice, such as SPS (sequence parameter set) and PPS (picture parameter set) included in the encoded stream, and the information is added to each of the four divided streams. The information is output to the EPB insertion unit 132b so as to be inserted.
- SPS sequence parameter set
- PPS picture parameter set
- the EPB insertion unit 132 b inserts the EPB removed by the EPB removal unit 132 a into a divided stream generated by dividing the encoded stream.
- the slice header insertion unit 133 executes the above-described slice header insertion process and MB address information update process.
- the slice header insertion unit 133 sends a slice header processing content notification M1 indicating whether or not to insert the slice header at a predetermined timing to the slice data processing units 134a and 134b, and the slice data processing units 134a and 134b.
- the slice header insertion processing is executed.
- the slice header insertion unit 133 outputs the slice header immediately before the MB line and the duplicate slice header in which the MB address information is updated to the EPB insertion unit 132 b by the slice header insertion processing.
- the slice data processing units 134a and 134b generate four divided streams by dividing the coded stream from which the EPB has been removed, and output the four divided streams.
- the divided stream output from the slice data processing units 134a and 134b does not include the slice header and the duplicate slice header immediately before or within the MB line.
- the slice data processing unit 134a executes a process according to CAVLD (Context Adaptive Variable Length Decoding), and divides the coded stream generated by CAVLC (Context-Adaptive Variable Length Coding) into four divided streams. .
- CAVLD Context Adaptive Variable Length Decoding
- the slice data processing unit 134b executes processing according to CABAD (Context-Adaptive Binary Arithmetic Decoding), and divides the encoded stream generated by CABAC (Context-Adaptive Binary Arithmetic Coding) into four divided streams. .
- CABAD Context-Adaptive Binary Arithmetic Decoding
- CABAC Context-Adaptive Binary Arithmetic Coding
- the slice data processing unit 134a includes a slice data layer decoding unit 135a, a macroblock layer decoding unit 136a, a skip run division unit 137a, a QP calculation unit 138a, and a division point detection unit 139a.
- the slice data layer decoding unit 135a performs variable length decoding on the encoded data of the slice data layer included in the encoded stream.
- the macroblock layer decoding unit 136a performs variable length decoding on encoded data of the macroblock layer included in the encoded stream. Such variable length decoding by the slice data layer decoding unit 135a and the macroblock layer decoding unit 136a removes the dependency between adjacent macroblocks. Note that the slice data layer decoding unit 135a and the macroblock layer decoding unit 136a need only information (specifically, n-C (non-zero coefficient) of CAVLC, etc.) that depends on the macroblock adjacent to the macroblock to be processed. It may be decrypted.
- the skip run division unit 137a corrects the MB skip run information "mb_skip_run" decoded by the slice data layer decoding unit 135a, re-encodes the corrected MB skip run information, and decodes the encoded MB skip run information. Output.
- the MB skip run information indicates the number of macro blocks skipped in succession.
- the MB skip run information decoded by the slice data layer decoding unit 135a is It indicates the number of consecutively skipped macroblocks included in the set.
- the number of continuously skipped macroblocks changes in each divided stream.
- the skip run division unit 137a specifies, for each MB line including a part of the above-mentioned set, the number of continuously skipped macro blocks which constitute the above-mentioned part included in the MB line. Then, for each MB line, the skip run division unit 137a corrects the MB skip run information so that the number indicated by the MB skip run information becomes the number specified for that MB line.
- the QP calculation unit 138a converts, for each macroblock, the QP variation “mb_qp_delta” of the macroblock decoded by the macroblock layer decoding unit 136a into a QP value (quantization parameter value), and the QP value Output
- the QP variation is included in the macro block (target macro block), and the QP value of the target macro block and the QP value of the macro block next to the left of the target macro block (left adjacent macro block) are included. Indicates the difference.
- the decoding engine 120 that targets a divided stream including one of the macro blocks (target macro block) adjacent to each other as the target of decoding is the QP value of the target macro block from the QP variation of the target macro block. Can not be derived.
- the QP calculation unit 138a adds the QP value of the left adjacent macroblock to the QP variation of the macroblock (target macroblock) for each macroblock before the picture is divided. Calculate the QP value of the macroblock.
- the division point detection unit 139a divides the encoded stream into four divided streams. That is, the division point detection unit 139a divides the picture into a plurality of MB lines, and assigns each of the MB lines to any of the four divided streams. If there is a slice header between the two macroblocks immediately before or between the MB line, the division point detection unit 139a divides the MB line into a division stream without assigning the slice header. assign. Also, the division point detection unit 139a includes, in each of the division streams, the MB skip run information acquired from the skip run division unit 137a and the QP value acquired from the QP calculation unit 138a.
- the division point detection unit 139a detects the end of the slice of the divided stream and receives the slice header processing content notification M1 from the slice header insertion unit 133, the division point detection unit 139a responds to the content indicated by the slice header processing content notification M1. Execute slice end processing of. Further, when the slice end processing is completed, the division point detection unit 139a sends a termination processing completion notification M2 to the slice header insertion unit 133.
- the slice data processing unit 134 b includes a slice data layer decoding unit 135 b, a macroblock layer decoding unit 136 b, a QP calculation unit 138 b, and a division point detection unit 139 b.
- the slice data layer decoding unit 135 b performs variable-length decoding (arithmetic decoding) on encoded data of the slice data layer included in the encoded stream.
- the macroblock layer decoding unit 136 b performs variable-length decoding (arithmetic decoding) on encoded data of the macroblock layer included in the encoded stream. Such variable length decoding by the slice data layer decoding unit 135b and the macroblock layer decoding unit 136b removes the dependency between adjacent macroblocks.
- the QP calculating unit 138b like the above-described QP calculating unit 138a, for each macroblock, the QP variation (mb_qp_delta) of the macroblock decoded by the macroblock layer decoding unit 136b is the QP value (quantization parameter Convert to value) and output its QP value.
- the division point detection unit 139b divides the encoded stream into four division streams.
- the division point detection unit 139 b includes the QP value acquired from the QP calculation unit 138 b in each of the division streams.
- the division point detection unit 139b detects the end of the slice of the division stream and receives the slice header processing content notification M1 from the slice header insertion unit 133, according to the content indicated by the slice header processing content notification M1 Execute the above-mentioned slice termination process.
- the division point detection unit 139 b sends an end processing completion notification M2 to the slice header insertion unit 133.
- slice header insertion unit 133 and the slice data processing units 134a and 134b will be described in detail.
- slice data processing units 134a and 134b When describing the common functions and processing operations of the slice data processing units 134a and 134b, they will be generically referred to as a slice data processing unit 134 without distinction.
- FIG. 8 is an explanatory diagram for explaining the operations of the slice header insertion unit 133 and the slice data processing unit 134.
- the slice data processing unit 134 divides the picture including slice A and slice B into MB lines, and the MB lines are sequentially included in the divided stream buffer 152 from the MB line on the top side through the EPB insertion unit 132 b. It is stored in four areas (first area df1 to fourth area df4). At this time, the slice data processing unit 134 repeatedly stores the MB line storage destination in the order of the first area df1, the second area df2, the third area df3, the fourth area df4, and the first area df1 for each 1 MB line storage. change.
- the slice data processing unit 134 stores the MB line La1 of slice A in the first area df1 of the divided stream buffer 152, and the MB line La2 next to slice A. , And stores the MB line La3 next to slice A in the third area df3 of the divided stream buffer 152. Further, the slice data processing unit 134 stores the MB line Lb1 of the slice B next to the slice A in the fourth area df4 of the divided stream buffer 152.
- MB lines are stored in each of the four first to fourth areas df1 to df4 of the divided stream buffer 152, and the next MB line of slice B is stored again in the first area df1 in the divided stream buffer 152.
- the slice data processing unit 134 When storing the MB line La3 in the third area df3, the slice data processing unit 134 stores the slice end information ea even if there is slice end information ea immediately after the MB line La3 in the encoded stream. Instead, only the MB line La3 is stored in the third area df3. Then, when the MB data belonging to the new slice is stored in the third area df3 after that, the slice data processing unit 134 outputs the slice end information ea 'corresponding to the slice end information ea in the third area df3.
- the slice header insertion unit 133 Store in When the slice data processing unit 134 stores the MB line Lb1 in the fourth area df4, the slice header insertion unit 133 stores the slice header hb of slice B in the fourth area df4 in advance.
- the division point detection units 139a and 139b of the slice data processing unit 134 determine whether or not all the macroblocks of 1 MB line have been output each time the macroblocks are output. As a result, when it is determined that all the macroblocks have been output, the division point detection units 139a and 139b detect the MB line boundary (the end of the MB line). Then, each time the division point detection units 139a and 139b detect the boundary of the MB line, the division point detection units 139a and 139b interrupt the output processing of the macroblock and notify the slice header insertion unit 133 that the boundary of the MB line is detected.
- the slice header insertion unit 133 receive notification that the boundary of the MB line is detected.
- the slice header insertion unit 133 that has received the MB line boundary detection notification sends a slice header processing content notification M1 to the slice data processing unit 134 as shown in (b) of FIG. 8. Whether the slice header processing content notification M1 is intended to output the slice header to the divided stream buffer 152 and store it immediately before the next MB line is stored from the slice data processing unit 134 to the divided stream buffer 152. Is information to notify the slice data processing unit 134 of that and indicates “output” or “non-output”. That is, the slice header processing content notification M1 indicating “output” is a notification for prompting the slice data processing unit 134 to perform the slice end processing.
- the slice header insertion unit 133 outputs the copied slice header hb ′ to the divided stream buffer 152 and stores it immediately before the next MB line Lb2 is stored from the slice data processing unit 134 to the divided stream buffer 152. to decide. At this time, the slice header insertion unit 133 outputs a slice header processing content notification M1 indicating “output” to the slice data processing unit 134.
- the slice data processing unit 134 acquires the slice header processing content notification M1 if the slice header processing content notification M1 indicates “output”, the slice data processing unit 134 generates slice termination information and stores it in the divided stream buffer 152, The termination processing completion notification M2 is output to the slice header insertion unit 133. On the other hand, if the slice header processing content notification M1 indicates “not output”, the slice data processing unit 134 does not store the slice end information in the divided stream buffer 152, and transmits the termination processing completion notification M2 to the slice header insertion unit. Output to 133.
- the slice data processing unit 134 when acquiring the slice header processing content notification M1 indicating “output”, the slice data processing unit 134 generates slice end information ea ′ as shown in (c) of FIG. 1) Store in area df1. When the storage is completed, the slice data processing unit 134 outputs the termination processing completion notification M2 to the slice header insertion unit 133.
- the slice header insertion unit 133 acquires the termination processing completion notification M2 from the slice data processing unit 134, if the slice header processing content notification M1 output immediately before indicates “output”, the slice header insertion unit 133 via the EPB insertion unit 132b. The slice header is output to and stored in the split stream buffer 152, and then the slice header processing completion notification M3 is output to the slice data processing unit 134. On the other hand, when the slice header processing content notification M1 output immediately before indicates “non-output”, the slice header insertion unit 133 notifies the slice header processing completion without storing the slice header in the divided stream buffer 152. M3 is output to the slice data processing unit 134.
- the slice header insertion unit 133 acquires the termination processing completion notification M2 from the slice data processing unit 134 when the slice header processing content notification M1 output immediately before indicates “output”, (d in FIG. As shown in), the duplicate slice header hb ′ is generated and stored in the first area df1 of the divided stream buffer 152. Thereafter, the slice header insertion unit 133 outputs the slice header processing completion notification M3 to the slice data processing unit 134.
- the division point detection units 139a and 139b of the slice data processing unit 134 resume the output processing of the interrupted macro block, and output the next MB line. Then, the divided stream buffer 152 stores it.
- the slice data processing unit 134 outputs the next MB line Lb2 and stores the next MB line Lb2 in the first area df1 of the divided stream buffer 152.
- the slice header insertion unit 133 and the slice data processing unit 134 By the processing by the slice header insertion unit 133 and the slice data processing unit 134, in each area of the divided stream buffer 152, the slice end information, the slice header, and the next MB line are ordered in the order of these data as MB lines. You can write to the boundary.
- FIG. 9 is a block diagram showing the configuration of the slice header insertion unit 133. As shown in FIG.
- division point detection unit 139 When describing the functions and processing operations common to the division point detection units 139a and 139b with reference to FIG. 9, they will be collectively referred to as the division point detection unit 139 without distinction.
- the slice header insertion unit 133 includes an NAL type determination unit 133a, a header insertion counter 133b, a header address update unit 133c, and a header buffer 133d.
- the NAL type determination unit 133a determines whether the type of the NAL unit is a slice. When the NAL type determination unit 133a determines that the type is a slice, the NAL type determination unit 133a notifies the header buffer 133d and the header insertion counter 133b that the type of the NAL unit is a slice.
- the header buffer 133d When receiving the notification from the NAL type determination unit 133a, the header buffer 133d extracts and stores the slice header from the NAL unit if the NAL unit corresponding to the notification includes the slice header. Furthermore, if the subsequent NAL unit includes a new slice header, the header buffer 133d replaces the slice header already stored with the new slice header. That is, the header buffer 133d always holds the latest slice header.
- the header insertion counter 133b counts the number of boundaries (ends) of MB lines in the encoded stream detected by the division point detection unit 139 in order to specify the timing of generating and inserting a duplicate slice header. Specifically, the header insertion counter 133b counts values from 0 to 4 (total number of decoding engines 120). When receiving the notification from the NAL type determination unit 133a, the header insertion counter 133b resets the count value to 0 if the slice header is included in the NAL unit corresponding to the notification. Furthermore, when the MB line boundary (end of MB line) is detected, the header insertion counter 133 b counts up the count value by one. When the MB line boundary is further detected after the count value reaches 4, the header insertion counter 133b maintains the count value at 4 without counting up.
- the header insertion counter 133b updates or holds the count value when the MB line boundary is detected, and resets the count value to 0 if the slice header is included in the NAL unit.
- a slice header processing content notification M1 indicating “output” or “not output” is output to the division point detection unit 139. Specifically, when the count value immediately after the MB line boundary is detected is 0 to 3, the header insertion counter 133 b outputs a slice header processing content notification M1 indicating “output”, and the count value is 4 In the case of, the slice header processing content notification M1 indicating “not output” is output. Further, the header insertion counter 133 b outputs the slice header processing content notification M 1 indicating “output” not only when the boundary of the MB line is detected but also when the count value becomes 0.
- the header insertion counter 133 b outputs the slice header processing content notification M 1 to the division point detection unit 139
- the output slice header processing content notification M 1 Indicates “output”
- the slice header stored in the header buffer 133 d is output from the header buffer 133 d.
- the header insertion counter 133 b outputs the slice header processing completion notification M 3 to the division point detection unit 139.
- the slice header insertion unit 133 stores the area as a storage destination of the divided stream buffer 152 according to the value indicated by the MB address information included in the slice header.
- the slice header insertion unit 133 stores the slice header in the area to be the selected storage destination.
- the header insertion counter 133b does not output the slice header stored in the header buffer 133d from the header buffer 133d. , Keep in the stored state. Thereafter, as described above, the header insertion counter 133 b outputs the slice header processing completion notification M 3 to the division point detection unit 139.
- FIG. 10 is a diagram showing MB lines and slice headers allocated to the first area df1 to the fourth area df4 of the divided stream buffer 152. As shown in FIG.
- the stream division unit 130 reads the slices A to C of the coded stream stored in the stream buffer 151 in the order of slice A, slice B, and slice C.
- the header buffer 133 d of the slice header insertion unit 133 extracts and stores the slice header ha from the beginning of the slice A.
- the header insertion counter 133b resets the count value to zero. Therefore, since the count value is 0, the header buffer 133 d stores the slice header ha in the first area df 1 of the divided stream buffer 152 by outputting the stored slice header ha.
- the slice data processing unit 134 divides the first MB line by outputting the first MB line following the slice header ha of slice A in the encoded stream. It is stored in the first area df1 of 152. As a result, those data are stored in the first area df1 in the order of the slice header ha and the first MB line belonging to the slice A.
- the above-mentioned header insertion counter 133b counts up the count value to one. Therefore, since the header buffer 133d outputs the stored slice header ha as the copied slice header ha 'because the count value is 1 at the end of the first MB line, the copied slice header ha' is divided stream buffer It is stored in the second area df2 of 152.
- the MB address information of the duplicate slice header ha ' is updated by the header address update unit 133c.
- the slice data processing unit 134 When the duplicate slice header ha ′ is output from the header buffer 133 d, the slice data processing unit 134 outputs the second MB line following the first MB line in the encoded stream, thereby dividing the second MB line into the divided stream buffer 152. Is stored in the second area df2.
- the second MB line includes a plurality of macroblocks belonging to slice A, a slice header hb of slice B, and a plurality of macroblocks belonging to slice B. Therefore, the division point detection unit 139 of the slice data processing unit 134 first stores all macroblocks belonging to slice A included in the second MB line in the second area df2. When the storage is completed, the division point detection unit 139 temporarily suspends the output processing of the macro block, and stands by until the slice header processing content notification M1 is received from the slice header insertion unit 133.
- the slice header insertion unit 133 resets the count value to 0, and sends a slice header processing content notification M1 indicating “output” to the division point detection unit 139.
- the division point detection unit 139 that has received this slice header processing content notification M1 performs slice termination processing on the end of the slice A of the second area df2, and sends a termination processing completion notification M2 to the slice header insertion unit 133.
- the slice header insertion unit 133 that has received the termination processing completion notification M2 stores the slice header hb of slice B in the second area df2, and sends the slice header processing completion notification M3 to the division point detection unit 139.
- the division point detection unit 139 having received this slice header processing completion notification M3 resumes the interrupted output processing, and stores a plurality of macro blocks belonging to the next slice B included in the second MB line in the second area df2. Do.
- the header buffer 133d of the slice header insertion unit 133 extracts and stores the slice header hc from the beginning of the slice C following the second MB line in the encoded stream. .
- the header insertion counter 133b resets the count value to zero. Therefore, since the count value is 0 at the end of the second MB line, the header buffer 133d stores the slice header hc in the third area df3 of the divided stream buffer 152 by outputting the stored slice header hc. Do.
- the slice data processing unit 134 divides the third MB line by outputting the third MB line following the slice header hc of slice C in the encoded stream. It is stored in the third area df3 of 152. As a result, those data are stored in the third area df3 in the order of the slice header hc and the third MB line belonging to the slice C.
- the header insertion counter 133b described above counts up the count value to one. Therefore, since the header buffer 133d outputs the stored slice header hc as the copied slice header hc 'because the count value is 1 at the end of the third MB line, the copied slice header hc' is divided stream buffer It is stored in the fourth area df4 of 152.
- the MB address information of the duplicate slice header hc ' is updated by the header address updating unit 133c.
- data is sequentially stored in the first area df1 to the fourth area df4 of the divided stream buffer 152.
- the first divided stream to the fourth divided stream are stored in each of the first area df1 to the fourth area df4.
- 11A and 11B show positions where slice end information is set.
- the picture includes slice A and slice B, and the top macroblock of slice B following slice A is at the left end of the MB line.
- the division point detection unit 139 of the slice data processing unit 134 is located 4 MB lines before the top MB line of the slice B immediately before the slice header hb of the slice B is output from the slice header insertion unit 133.
- the slice end information ea ′ of slice A is set at the end of the MB line of slice A.
- the division point detection unit 139 of the slice data processing unit 134 is located 3 MB before the top MB line of the slice B immediately before the copied slice header hb ′ of the slice B is output from the slice header insertion unit 133.
- slice end information ea ′ of slice A is set.
- the slice end information ea ' is set at the end of each MB line 1 to 4 MB before the MB line.
- the picture includes slice A and slice B, and the top macroblock of slice B following slice A is other than the left end of the MB line.
- the division point detection unit 139 of the slice data processing unit 134 generates an MB line including the slice header hb of the slice B immediately before the copied slice header hb 'of the slice B is output from the slice header insertion unit 133.
- the slice end information ea ′ of slice A is set at the end of the MB line of slice A, which is 3 MB lines before.
- FIG. 12 is a flowchart showing the operation of the division point detection unit 139.
- the division point detection unit 139 specifies and outputs data (for example, a macro block) to be processed from the top side of the encoded stream, and stores the data in the division stream buffer 152 (step S100).
- the division point detection unit 139 manages the address (MB address value) of the macro block to be output. That is, if the output macroblock is the first macroblock of a slice included in the encoded stream, the division point detection unit 139 includes the MB address value of the output macroblock in the slice header of the slice. Update to the value indicated by the MB address information. Then, the division point detection unit 139 increments the MB address value every time the macroblock following the leading macroblock is output.
- the MB address value is an integer of 0 or more.
- the division point detection unit 139 determines whether there is data to be processed next in the encoded stream, that is, whether or not output processing should be ended. (Step S114). On the other hand, when the division point detection unit 139 determines that the end (the boundary of the MB line) is reached, that is, when the boundary of the MB line is detected (Yes in step S102), it is detected that the boundary of the MB line is detected. While notifying the unit 133 and interrupting the output processing, it is then determined whether or not the slice header processing content notification M1 has been received from the slice header insertion unit 133 (step S104).
- the division point detection unit 139 determines that the slice header processing content notification M1 has not been received (No in step S104).
- the division point detection unit 139 waits until the slice header processing content notification M1 is received.
- the division point detection unit 139 determines whether the slice header processing content notification M1 indicates "output" (step S106). ).
- step S108 slice end processing is performed (step S108). That is, when the encoded stream is decoded by CABAD, the division point detection unit 139 sets “1” to “end_of_slice_flag” as slice end information. Also, when the encoded stream is decoded by CAVLD, the dividing point detection unit 139 adds “rbsp_slice_trailing_bits” as slice end information.
- the slice header insertion unit 133 completes the end process.
- a notification M2 is sent (step S110).
- the division point detection unit 139 determines whether the slice header processing completion notification M3 has been received from the slice header insertion unit 133 (step S112).
- the division point detection unit 139 stands by until the slice header processing completion notification M3 is received.
- step S112 determines in step S112 that the slice header processing completion notification M3 has been received (Yes in step S112), whether or not there is data to be processed next in the encoded stream, that is, It is determined whether the output process should be ended (step S114).
- step S114 when the division point detection unit 139 determines that the process should be ended (Yes in step S114), the process is ended, and when it is determined that the process should not be ended (No in step S114), the next processing target is performed again.
- the data to be output is output and stored in the divided stream buffer 152 (step S100).
- a coded picture is divided into a plurality of MB lines (structural units), and each of the plurality of MB lines is N as a part of the divided stream. Since the decoding engine 120 is assigned and decoded, the burden of decoding processing by the N decoding engines 120 can be equalized, and parallel processing of decoding can be appropriately performed. For example, H. Even if the H.264 / AVC coded picture is composed of one slice, the coded picture is divided into a plurality of MB lines, so that one decoding engine 120 is burdened with decoding of one slice. It is possible to share the N decoding engines 120 equally without having to do it.
- slices extending over a plurality of MB lines are divided into a plurality of slice portions (for example, MB lines L1 to L6 shown in FIG. 3 or MB line L7). It may be divided into a set of top 6 macroblocks, etc., and their slice parts may be assigned to different divided streams. That is, one divided stream does not include the entire slice of a coded picture, and a slice portion group configured by gathering one or more slice portions that are fragments of that slice (for example, the third portion illustrated in FIG.
- the MB lines L2 and L6) included in the 2-divided stream are included.
- such slice partial groups (MB lines L2 and L6) may not include a slice header indicating the beginning thereof and slice end information indicating the end thereof.
- the decoding engine 120 since the stream segmentation unit 130 reconstructs the slice partial group as a new slice, the decoding engine 120 that decodes the partial stream including the slice partial group recognizes the slice partial group and is appropriate.
- the slice subsets can be easily recognized as new slices and appropriately decoded without requiring any special processing for decoding into. That is, in the present invention, since it is not necessary to provide each of the N decoding engines 120 with a function or configuration for performing special processing, the overall configuration of the image decoding apparatus 100 can be simplified.
- the speed of the decoding process can be increased as compared with the image decoding device of Patent Document 3 described above.
- the variable length decoding of the encoded stream and the parallelization of the deblocking filter process are not performed. That is, in the image decoding apparatus according to Patent Document 3, the encoded stream is not divided appropriately. In other words, a stream generated by dividing the encoded stream can be decoded by the conventional decoding engine. Not configured as.
- each of the decoding engines 120 is a variable-length decoding like the decoding engine 220 shown in FIG. And deblocking filtering can be performed in parallel. As a result, in the image decoding apparatus of the present invention, it is possible to speed up the decoding process.
- the present invention has an advantage that the conventional decoding engine can be diverted as compared with the image decoding device of Patent Document 4 described above.
- the line header is inserted at the boundary of the MB line in the coded stream without dividing the coded stream. Therefore, the plurality of decoding engines of the image decoding apparatus of Patent Document 4 must extract MB lines to be processed from the coded stream, using the row header as a mark. At this time, if the position where the MB line to be processed is stored has already been specified, those decoding engines need to access the coded stream discontinuously in order to extract the MB line to be processed.
- each of the decoding engines 120 since the encoded stream is appropriately divided into a plurality of divided streams, each of the decoding engines 120, as in the decoding engine 220 shown in FIG. It can be treated as a normal coded stream and decoded. As described above, in the image decoding apparatus of the present invention, a conventional decoding engine can be diverted, and an effect that can not be achieved by the image decoding apparatus of Patent Document 4 can be obtained.
- the image decoding apparatus 100 performs one of high resolution decoding, high speed decoding, and multi-channel decoding according to the above-described mode information input to the stream division unit 130. Run.
- 13A to 13C are explanatory diagrams for explaining high resolution decoding, high speed decoding, and multiple channel decoding.
- the stream division unit 130 of the image decoding apparatus 100 acquires mode information instructing execution of high resolution decoding as shown in FIG. 13A, it divides the 4k2k coded stream into four divided streams as described above. , And each of the four divided streams are decoded by each decoding engine 120.
- each of the four decoding engines 120 has a processing capability capable of decoding HD images (1920 ⁇ 1088 pixels, 60i) for two channels
- the image decoding apparatus 100 generates 4k2k images (3840 ⁇ 2160 pixels, 60p) can be processed in real time.
- the stream division unit 130 of the image decoding apparatus 100 acquires mode information instructing execution of high-speed decoding, it divides the HD encoded stream into four divided streams as described above. And each decoding engine 120 to decode each of the four divided streams.
- each of the four decoding engines 120 has a processing capability capable of decoding two channels of HD images (1920 ⁇ 10 88 pixels, 60i)
- the image decoding apparatus 100 performs eight-fold (4 ⁇ ) HD images. It can be processed in 2).
- the stream division unit 130 of the image decoding apparatus 100 acquires mode information instructing execution of multi-channel decoding
- the plurality of HD encoded streams are not divided without dividing the mode information.
- the respective decoding engines 120 are made to decode each of the encoded streams of
- the stream division unit 130 does not copy and insert various NAL units such as SPS, PPS, and slices, and distributes the encoded stream (channel) to each area of the divided stream buffer 152. Do only.
- each of the four decoding engines 120 has a processing capability capable of decoding two channels of HD images (1920 ⁇ 10 88 pixels, 60i)
- the image decoding apparatus 100 has a maximum of eight channels, that is, eight HDs.
- the coded stream can be decoded simultaneously.
- the clock frequency of the decoding engine 120 can be lowered to reduce power consumption.
- the first decoding engine 120 and the second decoding engine 120 are each made to execute two channel decoding, and the remaining third decoding engine 120 and fourth decoding engine 120 are stopped. Let Alternatively, the first decoding engine 120 to the fourth decoding engine 120 are used, and their clock frequency is halved.
- the image decoding apparatus 100 switches the decoding process to high resolution decoding, high speed decoding, and multi-channel decoding according to the mode information, so that the usability for the user can be improved.
- high-resolution decoding and high-speed decoding in the image decoding apparatus 100 are processes for dividing a coded stream into four divided streams and decoding them in parallel, and are identical processes. That is, in high-resolution decoding and high-speed decoding, only the resolution and frame rate (4k2k or HD) of the encoded stream to be decoded are different.
- the image decoding apparatus 100 switches the decoding process between high resolution decoding or high speed decoding and multi-channel decoding according to the mode information, and further performs decoding according to the resolution and frame rate of the encoded stream. Processing is switched to high resolution decoding and high speed decoding.
- the MB address information included in the duplicate slice header is updated by the header address updating unit 133 c of the stream dividing unit 130, but the decoding engine 120 is updated without the stream dividing unit 130. May be That is, in the first modification, the stream segmentation unit 130 outputs the duplicate slice header without changing the MB address information included in the duplicate slice header. Then, the decoding engine 120 changes the MB address information included in the duplicate slice header before acquiring and processing the duplicate slice header.
- FIG. 14 is a diagram showing pseudo code for the decoding engine 120 according to the first modification to change the MB address information.
- the k-th (k is an integer of 0 or more) MB line included in the picture is decoded by the (k% 4) -th decoding engine 120.
- the 0th decoding engine 120 is a first decoding engine 120
- the first decoding engine 120 is a second decoding engine 120
- the second decoding engine 120 is a third decoding engine 120
- the third decoding engine 120 is a third decoding engine.
- the decoding engine 120 is a fourth decoding engine 120.
- the decoding engine 120 updates the MB address information “mb_address” included in the duplicate slice header to “((first_mb_in_slice / pic_width_in_mbs) + d) * pic_width_in_mbs * 2” and the picture If it is not configured by MBAFF, the MB address information “mb_address” of the duplicate slice header is updated to “((first_mb_in_slice / pic_width_in_mbs) + d) * pic_width_in_mbs”.
- the stream division unit 130 since the stream division unit 130 does not update the MB address information, the processing load of the stream division unit 130 can be reduced and the configuration can be simplified.
- the update timing of the MB address information is not limited to when the encoded stream is divided by the stream division unit 130, and even after the divided stream is generated, the duplication slice is generated by the decoding engine 120. Any time before the header is processed.
- the stream division unit 130 inserts the duplicate slice header only in the split stream for which the duplicate slice header is required, but inserts the duplicate slice header in the other split streams. It is also good.
- the stream division unit according to the second modification inserts the copy slice header into all divided streams other than the divided stream including the slice header of the copy source regardless of whether the copy slice header is required.
- FIG. 15 is a block diagram showing a stream division unit, a division stream buffer, and four decoding engines of the image decoding apparatus according to the second modification.
- the stream division unit 130c includes a slice header processing unit 133g, a slice data processing unit 134c, and a control unit 160.
- the stream division unit 130c includes the start code detection unit 131, the EPB removal unit 132a, and the EPB insertion unit 132b in addition to these components, in FIG. 15, in order to simplify the description, the start is performed. Components such as the code detection unit 131 are omitted.
- the divided stream buffer 152 accumulates data output from the slice header processing unit 133 g and the slice data processing unit 134 c, and four areas for forming divided streams from the accumulated data (first area df 1 to fourth It has a region df4).
- the slice data processing unit 134c has the same function and configuration as the slice data processing units 134a and 134b in the above embodiment, divides each picture in the encoded stream into a plurality of MB lines, and those MB lines
- the image data is stored in any of the first area df1, the second area df2, the third area df3 and the fourth area df4 in order from the top side.
- the slice data processing unit 134 c switches the area serving as the storage destination of the MB line in order of the first area df 1, the second area df 2, the third area df 3, and the fourth area df 4 for each MB line.
- the slice data processing unit 134c stores only the MB line in the area of the divided stream buffer 152, and there is a slice header in the MB line. Even, the MB line excluding the slice header is stored in the area of the divided stream buffer 152.
- the slice header processing unit 133 g sequentially acquires data included in the encoded stream from the top side, if the acquired data is a slice header, the slice header is processed as the first of the divided stream buffer 152. It outputs simultaneously to each of the area df1 to the fourth area df4. As a result, the slice header is duplicated into four. That is, the slice header of the duplication source included in the encoded stream is stored in any one of the first to fourth regions df1 to df4, and the three duplicate slice headers are stored in the remaining three regions. Ru.
- the slice header processing unit 133g simultaneously outputs a slice header to each of the first area df1 to the fourth area df4, the slice header of the copy source is stored in the first area df1, and the three copy slice headers are MB lines respectively.
- the second area df2 the third area df3, and the fourth area df4 so as to be inserted at the beginning of the.
- slice data processing unit 134c and slice header processing unit 133g By processing by such slice data processing unit 134c and slice header processing unit 133g, from each area of divided stream buffer 152, not only divided streams having 0 or 1 slice header at the beginning of MB line but also MB lines A split stream having a plurality of slice headers (a duplicate slice header or a slice header of a duplicate source) continuous at the beginning is output.
- the control unit 160 manages the processing by the slice header processing unit 133 g as described above, and for each area of the divided stream buffer 152, the number of slice headers continuously inserted immediately before the MB line stored in the area. Count (total number of headers). Then, the control unit 160 notifies the total number of headers to the decoding engine 121 (all of the first decoding engine 121 to the fourth decoding engine 121) that decodes the divided stream output from the area.
- the first decoding engine 121 to the fourth decoding engine 121 each decode the divided stream output from the stream division unit 130c. At this time, when the first decoding engine 121 to the fourth decoding engine 121 each receive notification of the total number of headers from the control unit 160, they perform processing according to the number of total headers. That is, when the total number of headers is 0, the decoding engine 121 does not perform processing for slice headers, and when the total number of headers is 1, one slice header inserted at the beginning of the MB line To process. In addition, when the total number of headers is 2 to 3, the decoding engine 121 processes slice headers other than the last slice header among the 2 to 3 slice headers sequentially inserted at the beginning of the MB line. Skip and process only the last slice header.
- FIG. 16 is an explanatory diagram for explaining the operations of the stream division unit 130 c and the four decoding engines 121 in the second modification.
- the pictures included in the coded stream include slice A, slice B, slice C and slice D.
- slice A includes slice header ha and first MB line
- slice B includes slice header hb and second MB line
- slice C includes slice header hc and third MB line
- slice D includes slice header hd and Includes 4MB line.
- the slice header processing unit 133g of the stream division unit 130c When acquiring the slice header ha of the encoded stream, the slice header processing unit 133g of the stream division unit 130c simultaneously outputs the slice header ha to each of the first area df1 to the fourth area df4. As a result, the slice header ha is stored in the first area df1 as a part of the first divided stream, and each of the three duplicate slice headers ha 'identical to the slice header ha is the second divided stream, the third divided stream, The divided stream is stored in the second area df2, the third area df3, and the fourth area df4 as part of the fourth divided stream. Then, the slice data processing unit 134c stores the first MB line as a part of the first divided stream in the first area df1.
- the slice header processing unit 133g when acquiring the slice header hb of the encoded stream, the slice header processing unit 133g simultaneously outputs the slice header hb to each of the first area df1 to the fourth area df4.
- the slice header hb is stored in the second area df2 as a part of the second divided stream, and each of the three duplicate slice headers hb 'identical to the slice header hb is the first divided stream, the third divided stream,
- the divided stream is stored in the first area df1, the third area df3, and the fourth area df4 as part of the fourth divided stream.
- the slice data processing unit 134c stores the second MB line as a part of the second divided stream in the second area df2.
- the stream division unit 130c repeatedly performs such processing on slice C and slice D as well.
- a first divided stream including the slice header ha, the first MB line, the duplicate slice header hb ', the duplicate slice header hc' and the duplicate slice header hd ' is output.
- the fourth divided stream including the duplicate slice header ha ', the duplicate slice header hb', the duplicate slice header hc ', the slice header hd and the fourth MB line is outputted.
- the MB line following the fourth MB line is sequentially stored in each of the first area df1 to the fourth area df4, and other MBs are also included after the end of the first divided stream to the fourth divided stream shown in FIG. A line is placed next.
- slice data of 4 MB lines or more belonging to slice D follows the fourth MB line after the encoded stream, and the end of the first divided stream to the fourth divided stream shown in FIG. There is no new slice header following.
- the slice header ha is placed before the first MB line, and three slice headers consisting of the duplicate slice header hb ', the duplicate slice header hc' and the duplicate slice header hd 'follow the first MB line It is arranged continuously.
- two slice headers consisting of a duplicate slice header ha 'and a slice header hb are sequentially arranged in front of the second MB line, and are composed of a duplicate slice header hc' and a duplicate slice header hd '2 Two slice headers are placed consecutively after the second MB line.
- three slice headers consisting of the duplicate slice header ha ', the duplicate slice header hb' and the slice header hc are sequentially arranged in front of the third MB line, and the duplicate slice header hd 'is the third MB It is placed after the line.
- four slice headers consisting of a duplicate slice header ha ', a duplicate slice header hb', a duplicate slice header hc 'and a slice header hd are sequentially arranged in front of the fourth MB line.
- the first decoding engine 121 skips the processing for two slice headers (duplicate slice header hb ′ and duplicate slice header hc ′), processes duplicate slice header hd ′, and continues to the duplicate slice header hd ′. Decrypt MB line.
- the stream division unit 130 c inserts the copy slice header into the divided stream regardless of whether the copy slice header is required.
- the processing load required to determine the necessity can be reduced.
- the stream division unit 130c may simply output the slice header when acquiring the slice header included in the encoded stream, it is necessary to include the header buffer 133d as the stream division unit 130 of the above embodiment. There is no As a result, the configuration of the stream division unit 130c can be simplified.
- Modification 3 In the second modification, regardless of whether the duplicate slice header is necessary or not, the duplicate slice header is continuously inserted into all the split streams other than the split stream including the slice header of the duplicate source. A split stream was generated including multiple slice headers arranged.
- the duplicate slice header is inserted into all split streams other than the split stream including the slice header of the duplicate source. In the case of successively inserting slice headers, a new slice header is overwritten on the already inserted slice header. This prevents a plurality of slice headers from being arranged consecutively in the split stream.
- FIG. 17 is a block diagram showing a stream division unit, a division stream buffer, and four decoding engines of the image decoding apparatus according to the third modification.
- the stream division unit 130d includes a slice header processing unit 133h, a slice data processing unit 134d, and four buffers (first to fourth buffers 141 to 144).
- the stream division unit 130d includes the start code detection unit 131, the EPB removal unit 132a, and the EPB insertion unit 132b in addition to these components, in FIG. 17, in order to simplify the description, the start is performed. Components such as the code detection unit 131 are omitted.
- the slice data processing unit 134d has the same function and configuration as the slice data processing units 134a and 134b in the above embodiment, divides each picture in the coded stream into a plurality of MB lines, and those MB lines
- the data is output to any one of the first buffer 141, the second buffer 142, the third buffer 143, and the fourth buffer 144 in order from the head side.
- the slice data processing unit 134d switches the buffer serving as the output destination of the MB line in order of the first buffer 141, the second buffer 142, the third buffer 143, and the fourth buffer 144 for each MB line. Output MB line to the buffer.
- the slice data processing unit 134 d outputs only the MB line to the buffer, and even if there is a slice header in the MB line, the slice is also the slice. Output MB line excluding header to buffer.
- the slice header processing unit 133h sequentially acquires data included in the encoded stream from the top side, if the acquired data is a slice header, the slice header is transmitted to the first buffer 141 to the fourth buffer. It outputs simultaneously to each of the buffers 144. As a result, the slice header is duplicated into four. That is, the slice header of the duplication source included in the encoded stream is stored in any one of the first buffer 141 to the fourth buffer 144, and the three duplicate slice headers are stored in the remaining three buffers. Ru.
- the slice header processing unit 133h simultaneously outputs the slice header to each of the first buffer 141 to the fourth buffer 144
- the slice header of the duplication source is stored in the first buffer 141
- the three duplicate slice headers are the second buffer. 142, and stored in the third buffer 143 and the fourth buffer 144, respectively.
- the buffer (the first buffer 141 to the fourth buffer 144) has a capacity sufficient to store at least one slice header, and temporarily outputs data output from the slice header processing unit 133h and the slice data processing unit 134d. It accumulates and outputs to the area
- the buffer has a capacity capable of storing one slice header and one macroblock.
- the buffer When the buffer acquires a slice header (a slice header or a duplicate slice header of the duplication source) from the slice header processing unit 133h, the buffer temporarily holds the slice header and holds the slice header, and the next When a new slice header is obtained, the new slice header is overwritten on the slice header already held.
- a slice header a slice header or a duplicate slice header of the duplication source
- the buffer acquires and holds the macro block from the slice data processing unit 134 d, and outputs the held data in the order of the slice header and the macro block. Furthermore, when acquiring a new macroblock from the slice data processing unit 134d following the previous macroblock, the buffer sequentially erases the slice header and the macroblock already held to hold the new macroblock, Output the new macroblock.
- each time the buffer obtains a macroblock it immediately outputs the macroblock.
- the buffer holds the slice header without outputting it immediately, and outputs the slice header before the macro block when acquiring and outputting the macro block.
- the buffer when the buffer holds a slice header, when acquiring a new slice header, the buffer overwrites the slice header already held with the new slice header.
- the decoding engine 120 reads the divided stream from the area of the divided stream buffer 152 associated with the decoding engine 120 and decodes the same, as in the above embodiment.
- FIG. 18 shows a pointer of the buffer.
- the buffer When the buffer acquires a slice header from the slice header processing unit 133 h and writes it in the storage area, the buffer rewinds the write pointer WP of the storage area to the guard pointer GP and writes the slice header from the guard pointer GP. As a result, the slice header already stored is overwritten and erased.
- the buffer normally reads out the data written in the storage area from the read pointer RP and outputs it, but the read pointer RP is set so as not to exceed the guard pointer GP.
- the buffer removes the guard of the read pointer RP by the guard pointer GP only when writing the macro block to the storage area immediately after writing the slice header to the storage area, and writes the slice header and the macro block Read out and output.
- the slice header and the macroblock thus output will be overwritten and erased when a new slice header or macroblock is written.
- FIG. 19 is an explanatory diagram for explaining the operation of the stream division unit 130 d in the third modification.
- the pictures included in the coded stream include slice A, slice B, slice C and slice D.
- slice A includes slice header ha and the first MB line
- slice B includes slice header hb, a part of the second MB line and a portion of the third MB line
- slice C includes slice header hc and the remaining one of the third MB line
- slice D includes a slice header hd and a fourth MB line.
- the slice header processing unit 133h of the stream division unit 130d acquires the slice header ha of the encoded stream
- the slice header processing unit 133h simultaneously outputs the slice header ha to each of the first buffer 141 to the fourth buffer 144.
- the slice header ha is output to the first buffer 141 as part of the first divided stream
- each of the three duplicate slice headers ha 'identical to the slice header ha is the second divided stream, the third divided stream
- the divided stream is output to the second buffer 142, the third buffer 143, and the fourth buffer 144 as a part of the fourth divided stream.
- the slice header ha is written to the first buffer 141, and the duplicate slice header ha 'is written to each of the second buffer 142 to the fourth buffer 144.
- the slice data processing unit 134 d sequentially outputs the macroblocks included in the first MB line to the first buffer 141 as a part of the first divided stream from the top side.
- the macro block is written to the first buffer 141 immediately after the slice header ha, and the guard of the read pointer RP of the first buffer 141 is removed. Therefore, the first buffer 141 outputs the slice header ha and the top macroblock of the first MB line to the first area df1 of the divided stream buffer 152.
- the slice header ha and the first macroblock are overwritten and erased by the second and subsequent macroblocks. Then, each time the first buffer 141 acquires the second and subsequent macroblocks of the first MB line, the first buffer 141 erases the data that has already been written, and the second and subsequent macroblocks are first Output sequentially to the area df1.
- the slice header ha and the first MB line are stored in the first area df1 of the divided stream buffer 152 via the first buffer 141 by the processing of the stream division unit 130d.
- the slice header processing unit 133h simultaneously outputs the slice header hb to each of the first buffer 141 to the fourth buffer 144.
- the slice header hb is output to the second buffer 142 as a part of the second divided stream
- each of the three duplicate slice headers hb 'identical to the slice header hb is the first divided stream, the third divided stream
- the divided stream is output to the first buffer 141, the third buffer 143, and the fourth buffer 144 as a part of the fourth divided stream.
- the slice header hb is written to the second buffer 142, and the duplicate slice header hb 'is written to each of the first buffer 141, the third buffer 143, and the fourth buffer 144. That is, the slice header written in each of the second buffer 142 to the fourth buffer 144 is overwritten on the slice header hb or the duplicate slice header hb '.
- the slice data processing unit 134 d sequentially outputs the macroblocks included in the second MB line to the second buffer 142 as a part of the second divided stream from the top side.
- the macroblock is written to the second buffer 142 immediately after the slice header hb, and the guard of the read pointer RP of the second buffer 142 is removed. Therefore, the second buffer 142 outputs the first macroblock of the slice header hb and the second MB line to the second area df2 of the divided stream buffer 152.
- the leading macroblock of the second MB line is written to the second buffer 142 and the second and subsequent macroblocks following the leading macroblock are sequentially written to the second buffer 142
- the second macroblock 142 is written to the second buffer 142.
- the slice header hb and the top macroblock which have been written are overwritten and erased by the second and subsequent macroblocks. Then, each time the second buffer 142 acquires the second and subsequent macroblocks of the second MB line, the second buffer 142 deletes the second and subsequent macroblocks while erasing the data already written. Output sequentially to the area df2.
- the slice header hb and the second MB line are stored in the second area df2 of the divided stream buffer 152 via the second buffer 142 by the process of the stream division unit 130d.
- slice B includes three macroblocks of the second MB line and the third MB line described above. Therefore, after outputting the second MB line, the slice data processing unit 134 d successively outputs three macroblocks of the third MB line sequentially from the top side to the third buffer 143 as a part of the third divided stream.
- the third buffer 143 outputs the duplicate slice header hb 'and the leading macroblock of the third MB line to the third area df3 of the divided stream buffer 152.
- the first macroblock of the third MB line is written to the third buffer 143
- the second and subsequent macroblocks following the first macroblock are sequentially written to the third buffer 143
- they are written to the third buffer 143.
- the duplicate slice header hb 'and the first macroblock are overwritten and erased by the second and subsequent macroblocks.
- the third buffer 143 deletes the second and subsequent macroblocks while erasing the data already written. Output sequentially to the area df3.
- the remaining three macroblocks of slice B included in the third MB line are stored in the third area df3 of the divided stream buffer 152 via the third buffer 143 by the process of the stream division unit 130d.
- the slice header processing unit 133h simultaneously outputs the slice header hc to each of the first buffer 141 to the fourth buffer 144.
- the slice header hc is output to the third buffer 143 as a part of the third divided stream, and each of the three duplicate slice headers hc 'identical to the slice header hc is the first divided stream, the second divided stream
- the divided stream is output to the first buffer 141, the second buffer 142, and the fourth buffer 144 as a part of the fourth divided stream.
- the slice header hc is written to the third buffer 143, and the duplicate slice header hc 'is written to each of the first buffer 141, the second buffer 142, and the fourth buffer 144. That is, the slice header written in each of the first buffer 141 and the fourth buffer 144 is overwritten on the duplicate slice header hc '.
- the slice data processing unit 134 d sequentially outputs the macroblocks of the slice C included in the third MB line as a part of the third divided stream to the third buffer 143 from the top side.
- the macro block is written to the third buffer 143 immediately after the slice header hc, and the guard of the read pointer RP of the third buffer 143 is removed. Therefore, the third buffer 143 outputs the top header of the slice header hc and slice C to the third area df3 of the divided stream buffer 152.
- the third buffer 143 is written The slice header hc and the first macroblock are overwritten and erased by the second and subsequent macroblocks. Then, every time the third buffer 143 acquires the second and subsequent macroblocks of the slice C, the third buffer 143 erases the data already written, and the second and subsequent macroblocks are divided into the third area of the divided stream buffer 152. Output sequentially to df3.
- the macroblocks of the slice header hc and slice C are stored in the third area df3 of the divided stream buffer 152 via the third buffer 143.
- the slice header processing unit 133h simultaneously outputs the slice header hd to each of the first buffer 141 to the fourth buffer 144.
- the slice header hd is output to the fourth buffer 144 as a part of the fourth divided stream
- each of the three duplicate slice headers hd 'identical to the slice header hd is the first divided stream, the second divided stream
- the divided stream is output to the first buffer 141, the second buffer 142, and the third buffer 143 as a part of the third divided stream.
- the slice header hd is written to the fourth buffer 144, and the duplicate slice header hd 'is written to each of the first buffer 141, the second buffer 142, and the third buffer 143. That is, the slice header written in each of the first buffer 141, the second buffer 142, and the fourth buffer 144 is overwritten on the slice header hd or the duplicate slice header hd '.
- the slice data processing unit 134 d sequentially outputs the macroblocks included in the fourth MB line as a part of the fourth divided stream to the fourth buffer 144 from the top side.
- the macroblock is written to the fourth buffer 144 immediately after the slice header hd, and the guard of the read pointer RP of the fourth buffer 144 is removed. Therefore, the fourth buffer 144 outputs the slice header hd and the leading macroblock of the fourth MB line to the fourth area df4 of the divided stream buffer 152.
- the fourth macroblock 144 is written to the fourth buffer 144.
- the slice header hb and the top macroblock which have been written are overwritten and erased by the second and subsequent macroblocks.
- the fourth buffer 144 erases the data that has already been written, while the second and subsequent macroblocks Output sequentially to the area df4.
- the slice header hd and the fourth MB line are stored in the fourth area df4 of the divided stream buffer 152 via the third buffer 143 by the process of the stream division unit 130d.
- the slice header processing unit 133 h outputs the duplicate slice header regardless of whether the duplicate slice header is necessary. Therefore, the slice header processing unit 133 h needs the duplicate slice header. It is possible to reduce the processing load required to determine the sex. Furthermore, since the slice header processing unit 133 h may simply output the slice header when acquiring the slice header included in the encoded stream, the header buffer 133 d may be used as in the slice header insertion unit 133 of the above embodiment. There is no need to prepare. As a result, the configuration of the slice header processing unit 133 h can be simplified.
- the processing load on continuous slice headers can be reduced as compared with the second modification. That is, the process for notifying the decoding engine 120 of the number of consecutive slice headers, the process of determining whether the decoding engine 120 should skip to the slice header, and the like can be omitted. As a result, the functional configuration of the stream dividing unit 130 d and the decoding engine 120 can be simplified, and a conventional decoding engine can be diverted to the decoding engine 120.
- FIG. 20 is a diagram showing an application example of the image decoding apparatus according to the above embodiment or the variation thereof.
- the image decoding apparatus is included in the reproduction apparatus 101 that receives a broadcast wave and reproduces a coded stream included in the broadcast wave.
- the reproduction apparatus 101 includes an antenna 101a for receiving a broadcast wave of BS digital broadcast and an apparatus main body 101b, and the apparatus main body 101b includes the above-described image decoding apparatus.
- the image decoding apparatus provided in the apparatus main body 101b extracts, for example, a 4k2k encoded stream from the broadcast wave received by the antenna 101a. Then, as described above, the image decoding apparatus divides the extracted encoded stream to generate N divided streams, and decodes the N divided streams in parallel.
- the image decoding apparatus 100 includes the divided stream buffer 152 and the like in the above-described embodiment and the modification thereof, the image decoding apparatus 100 may not include these.
- FIG. 21 is a block diagram showing the minimum configuration of the image decoding apparatus of the present invention.
- the image decoding apparatus 10 has a minimum configuration for realizing the present invention, and includes an acquisition unit 11, a stream division unit 12, and N decoding units 13.
- the acquisition unit 11 corresponds to an acquisition device (or a simple acquisition port) for taking a coded stream from the stream buffer 151 or the stream buffer 151 to the image decoding apparatus 10, and is a coded stream obtained by coding image data. get.
- the stream dividing unit 12 corresponds to the stream dividing units 130, 130c, and 130d. That is, for each encoded picture included in the encoded stream acquired by the acquisition unit 11, the stream division unit 12 divides the encoded picture into a plurality of constituent units, and each of the plurality of constituent units is a generation target.
- the N divided streams are generated by assigning to any part of N divided streams (N is an integer of 2 or more) that is.
- the N decoding units 13 correspond to the decoding engines 120 and 121, and decode in parallel each of the N divided streams generated by the stream division unit 12.
- the stream division unit 12 when the stream division unit 12 generates a number N of divided streams, when a slice included in a coded picture is divided into a plurality of slice parts and allocated to a plurality of divided streams, the stream division unit 12 divides the slices for each divided stream.
- the slice subsets are reconstructed as new slices so that a slice subset consisting of at least one slice portion assigned to the split stream is recognized as a slice by any of the N decoding units 13.
- the coded picture is divided into constituent units such as a plurality of macroblock lines, for example, and each of the plurality of macroblock lines is allocated to N decoding units as part of a divided stream and decoded.
- the burden of decoding processing by the N decoding units can be equalized, and parallel processing of decoding can be appropriately performed.
- H. Even if the H.264 / AVC coded picture is composed of one slice, the coded picture is divided into a plurality of macroblock lines, so that decoding of one slice is performed by one decoding unit.
- the burden can be evenly shared by the N decoding units without burdening.
- slices across a plurality of macroblock lines may be divided into a plurality of slice portions, and those slice portions may be allocated to different division streams.
- one divided stream does not include the entire slice of a coded picture, but includes a slice portion group configured by gathering one or more slice portions that are fragments of the slice.
- such a slice portion group may not include a header indicating the beginning thereof and end information indicating the end thereof.
- the decoding unit 13 that decodes the divided stream including the slice partial group recognizes the slice partial group and appropriately decodes it.
- the slice subsets can be easily recognized as a new slice and decoded appropriately without requiring special processing. That is, in the present invention, since it is not necessary to provide each of the N decoding units 13 with a function or configuration for performing special processing, the conventional decoding circuit is diverted to the decoding unit for decoding the divided stream. Thus, the overall configuration of the image decoding apparatus can be simplified.
- the image decoding apparatus 10 does not require the split stream buffer 152 and the like in the above-described embodiment and the modification thereof, and achieves the above-described object even in the absence of them, with the above-mentioned effects unique to the present invention. be able to.
- FIG. 22 is a block diagram showing the configuration of the stream division unit 12.
- the stream division unit 12 includes, for example, a copy unit 12a, an address update unit 12b, and an insertion unit 12c.
- the duplication unit 12a and the insertion unit 12c correspond to the slice header insertion unit 133 or the slice header processing units 133g and 133h.
- the copying unit 12a generates copy auxiliary information by copying auxiliary information necessary for decoding the slice, which is located at the beginning of the slice included in the encoded picture.
- the auxiliary information corresponds to a slice header
- the copy auxiliary information corresponds to a copy slice header.
- the inserting unit 12 c inserts the copy auxiliary information as auxiliary information at the beginning of the slice portion group.
- the address updating unit 12b corresponds to the header address updating unit 133c, and updates the address information included in the copy auxiliary information to the address information indicating the address of the leading macro block included in the slice partial group.
- the address information is MB address information.
- the address updating unit 12 b is included in the stream dividing unit 12 and updates the address information included in the copy auxiliary information generated by the copying unit 12 a. Then, the insertion unit 12 c inserts the copy auxiliary information including the address information updated by the address update unit 12 b at the beginning of the slice portion group.
- the decoding unit 13 since the address information indicating the address of the first macroblock of the slice partial group is included in the auxiliary information of the slice partial group, the decoding unit 13 does not perform any special processing, and the address information thereof By reading out, it is possible to properly grasp the address of the leading macroblock of the slice partial group.
- the address updating unit 12 b may be located outside the stream dividing unit 12.
- FIG. 23 is a block diagram showing another minimum configuration of the image decoding apparatus of the present invention.
- the image decoding apparatus 20 has another minimum configuration for realizing the present invention, and includes an acquiring unit 11, a stream dividing unit 22, an address updating unit 12b, and N decoding units 13.
- the stream dividing unit 22 includes only the duplicating unit 12 a and the inserting unit 12 c, and the address updating unit 12 b is provided outside the stream dividing unit 22.
- the address updating unit 12b updates the address information included in the copy auxiliary information inserted at the beginning of the slice portion group by the inserting unit 12c.
- the address updating unit 12 b may be provided in each of the N decoding units 13.
- the decrypting unit 13 has a function of updating the address information with respect to the divided stream to be processed by the decrypting unit 13. That is, the modification 1 of the above embodiment corresponds to this case.
- FIG. 24 is a block diagram showing another configuration of the stream division unit 12.
- the stream division unit 12 includes an auxiliary information processing unit 12 d, a division output unit 12 e, and N buffers 12 f.
- the auxiliary information corresponds to a slice header.
- Each of the N buffers 12 f corresponds to the first buffer 141 to the fourth buffer 144, and is associated with each of the N decoding units 13.
- the division output unit 12e corresponds to the slice data processing unit 134d, divides a coded picture into a plurality of constituent units, and outputs each of the plurality of constituent units to any one of N buffers 12f.
- the auxiliary information processing unit 12d corresponds to the slice header processing unit 133h, sequentially acquires data included in a coded picture, and when the data is auxiliary information, outputs the auxiliary information to N buffers 12f. .
- each of the N buffers 12 f outputs data each time it acquires data included in the constituent unit output from the division output unit 12 e. Further, each of the N buffers 12 f holds the auxiliary information when acquiring the auxiliary information output from the auxiliary information processing unit 12 d, and only when acquiring the data of the configuration unit immediately after the auxiliary information. The auxiliary information held is output before the data, and when new auxiliary information is acquired immediately after the auxiliary information, the auxiliary information is overwritten on the new auxiliary information.
- Each of the N decoding units 13 decodes a divided stream composed of auxiliary information output from the buffer associated with the decoding unit 13 and data of a configuration unit.
- auxiliary information processing unit 12d simply outputs the auxiliary information obtained from the encoded stream to the N buffers 12f, N divided streams of the auxiliary information output to the N buffers 12f are obtained. Only the auxiliary information required for can be output from the N buffers at an appropriate timing. As a result, with a simple configuration, auxiliary information can be appropriately inserted at the beginning of a slice partial group that was not at the beginning of a slice of a coded picture.
- the duplicate slice header is inserted in the above embodiment and its modification, the duplicate slice header may not be inserted.
- only auxiliary information required to decode a slice having a slice header, which is included in a slice header of a copy source, may be copied, and copy auxiliary information generated by the copy may be inserted.
- 1 MB line is treated as one constitutional unit, and a picture is divided into a plurality of constitutional units.
- the constitutional unit is not limited to 1 MB line, but 2 MB line or 3 MB line It may be a plurality of macroblocks arranged in a line in the vertical direction of the picture.
- 2 MB lines may be treated as a constituent unit
- 1 MB line may be treated as a constituent unit.
- the stream division unit inserts the duplicate slice header into the split stream, and the decoding engine reads out and decodes the split stream into which the duplicate slice header is inserted.
- the stream segmentation unit may directly output the duplicate slice header to the decoding engine without inserting the duplicate slice header into the split stream. For example, the stream division unit determines whether or not the duplicate slice header should exist immediately before the MB line in the divided stream read into the decoding engine, and when it is determined that the duplicate slice header should exist, the MB line is read into the decoding engine Just before being sent out, the duplicate slice header is output to the decoding engine.
- the stream division unit may output only partial information included in the duplicate slice header to the decoding engine without outputting the duplicate slice header itself to the decoding engine.
- Each functional block in the block diagrams (FIG. 1, FIG. 7, FIG. 9, FIG. 15, and FIG. 17, etc.) is typically realized as an LSI (Large Scale Integration) which is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include some or all. For example, functional blocks other than the memory may be integrated into one chip.
- LSI Large Scale Integration
- an LSI Although an LSI is used here, it may be called an IC (Integrated Circuit), a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
- IC Integrated Circuit
- system LSI system LSI
- super LSI super LSI
- ultra LSI ultra LSI depending on the degree of integration.
- the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
- a field programmable gate array FPGA
- a reconfigurable processor that can reconfigure connection and setting of circuit cells in the LSI may be used.
- the image decoding apparatus has the effect of being able to appropriately execute parallel processing of decoding with a simple configuration, and is useful as, for example, a reproduction apparatus that decodes a 4k2k encoded stream.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
ここで、上記実施の形態では、ストリーム分割部130のヘッダアドレス更新部133cで複製スライスヘッダに含まれるMBアドレス情報を更新したが、ストリーム分割部130で更新することなく、デコードエンジン120が更新してもよい。つまり、変形例1では、ストリーム分割部130は、複製スライスヘッダに含まれるMBアドレス情報を変更することなく、その複製スライスヘッダを出力する。そして、デコードエンジン120は、複製スライスヘッダを取得して処理を行う前に、その複製スライスヘッダに含まれるMBアドレス情報を変更する。
ここで、上記実施の形態では、ストリーム分割部130は、複製スライスヘッダが必要とされる分割ストリームにのみ、その複製スライスヘッダを挿入したが、それ以外の分割ストリームに複製スライスヘッダを挿入してもよい。変形例2に係るストリーム分割部は、複製スライスヘッダが必要であるか否かに関わらず、複製元のスライスヘッダを含む分割ストリーム以外の全ての分割ストリームに複製スライスヘッダを挿入する。
ここで上記変形例2では、複製スライスヘッダが必要であるか否かに関わらず、複製元のスライスヘッダを含む分割ストリーム以外の全ての分割ストリームに複製スライスヘッダを挿入することにより、連続して配置された複数のスライスヘッダを含む分割ストリームを生成した。変形例3では、上記変形例2と同様、複製スライスヘッダが必要であるか否かに関わらず、複製元のスライスヘッダを含む分割ストリーム以外の全ての分割ストリームに複製スライスヘッダを挿入するが、連続してスライスヘッダを挿入する場合には、既に挿入されているスライスヘッダに新たなスライスヘッダを上書する。これにより、分割ストリームにおいて複数のスライスヘッダが連続して配置されるのを防ぐ。
110 デコーダ
120 第1~第Nデコードエンジン
130 ストリーム分割部
131 スタートコード検出部
132a EPB除去部
132b EPB挿入部
133 スライスヘッダ挿入部
133a NALタイプ判定部
133b ヘッダ挿入カウンタ
133c ヘッダアドレス更新部
133d ヘッダバッファ
134a,134b スライスデータ処理部
135a,135b スライスデータ層デコード部
136a,136b マクロブロック層デコード部
137a スキップラン分割部
138a,138b QP計算部
139a,139b 分割点検出部
150 メモリ
151 ストリームバッファ
152 分割ストリームバッファ
153 フレームメモリ
Claims (13)
- 画像データが符号化された符号化ストリームを復号化する画像復号化装置であって、
前記符号化ストリームを取得する取得部と、
前記取得部で取得された符号化ストリームに含まれる符号化ピクチャごとに、当該符号化ピクチャを複数の構成単位に分割し、複数の前記構成単位のそれぞれを、生成対象であるN個(Nは2以上の整数)の分割ストリームのうちの何れかの一部に割り当てることにより、N個の分割ストリームを生成するストリーム分割部と、
前記ストリーム分割部により生成されたN個の分割ストリームのそれぞれを並列に復号化するN個の復号化部とを備え、
前記ストリーム分割部は、
前記N個の分割ストリームを生成する際に、前記符号化ピクチャに含まれるスライスが複数のスライス部分に分割されて複数の前記分割ストリームに割り当てられるときには、前記分割ストリームごとに、当該分割ストリームに割り当てられる少なくとも1つのスライス部分からなるスライス部分群が、N個の前記復号化部の何れかにスライスとして認識されるように、前記スライス部分群を新たなスライスとして再構成する、
画像復号化装置。 - 前記ストリーム分割部は、
前記スライス部分群の先頭が、前記符号化ピクチャに含まれるスライスの先頭でない場合には、前記スライス部分群の先頭に、前記スライスの復号化に必要な補助情報を挿入することにより、前記スライス部分群を新たなスライスとして再構成する、
請求項1記載の画像復号化装置。 - 前記ストリーム分割部は、前記スライス部分群の先頭に前記補助情報をヘッダとして挿入する、
請求項2記載の画像復号化装置。 - 前記ストリーム分割部は、
前記符号化ピクチャに含まれるスライスの先頭にある、前記スライスの復号化に必要な補助情報を複製することにより複製補助情報を生成する複製部と、
前記複製補助情報を前記補助情報として前記スライス部分群の先頭に挿入する挿入部とを備え、
前記画像復号化装置は、さらに、
前記複製補助情報に含まれるアドレス情報を、前記スライス部分群に含まれる先頭のマクロブロックのアドレスを示すアドレス情報に更新するアドレス更新部を備える、
請求項2記載の画像復号化装置。 - 前記アドレス更新部は、
前記ストリーム分割部に備えられ、前記複製部によって生成された複製補助情報に含まれるアドレス情報を更新し、
前記挿入部は、
前記アドレス更新部によって更新されたアドレス情報を含む前記複製補助情報を前記スライス部分群の先頭に挿入する、
請求項4記載の画像復号化装置。 - 前記アドレス更新部は、
前記挿入部によって前記スライス部分群の先頭に挿入されている前記複製補助情報に含まれるアドレス情報を更新する、
請求項4記載の画像復号化装置。 - 前記符号化ストリームに含まれるスライスの先頭には、前記スライスの復号化に必要な補助情報があり、
前記ストリーム分割部は、
前記N個の復号化部にそれぞれ対応付けられたN個のバッファと、
前記符号化ピクチャを複数の構成単位に分割し、複数の前記構成単位のそれぞれを、前記N個のバッファのうちの何れかに出力する分割出力部と、
前記符号化ピクチャに含まれるデータを順次取得し、前記データが前記補助情報であるときに、前記補助情報を前記N個のバッファに出力する補助情報処理部とを備え、
前記N個のバッファのそれぞれは、
前記分割出力部から出力された前記構成単位に含まれるデータを取得するごとに、前記データを出力し、
前記補助情報処理部から出力された前記補助情報を取得したときには、前記補助情報を保持し、前記補助情報の直後に前記構成単位のデータを取得したときにのみ、保持している前記補助情報を前記データの前に出力し、前記補助情報の直後に新たな補助情報を取得したときには、前記補助情報を前記新たな補助情報に上書きし、
前記N個の復号化部のそれぞれは、
当該復号化部に対応付けられたバッファから出力される前記補助情報および前記構成単位のデータからなる前記分割ストリームを復号化する、
請求項2記載の画像復号化装置。 - 前記ストリーム分割部は、
前記スライス部分群の終端が、前記符号化ピクチャに含まれるスライスの終端でない場合には、前記スライス部分群の終端であることを示す終端情報を、当該スライス部分群の終端に設定することにより、前記スライス部分群を新たなスライスとして再構成する、
請求項1~7の何れか1項に記載の画像復号化装置。 - 前記ストリーム分割部は、
さらに、分割すべきか否かを示すモード情報を取得し、前記モード情報が分割すべきでないことを示す場合には、前記取得部によって取得される複数の符号化ストリームのそれぞれを、前記N個の復号化部のうちの何れかに出力し、
前記N個の復号化部は、
さらに、前記ストリーム分割部から出力された複数の符号化ストリームを取得したときには、前記複数の符号化ストリームを並列に復号化する、
請求項1~8の何れか1項に記載の画像復号化装置。 - 前記ストリーム分割部は、前記符号化ピクチャの水平方向に一列に配列された複数のマクロブロックからなるマクロブロックラインを少なくとも1つ含む単位を前記構成単位として扱い、前記符号化ピクチャを複数の前記構成単位に分割する、
請求項1~9の何れか1項に記載の画像復号化装置。 - 画像データが符号化された符号化ストリームを復号化する画像復号化方法であって、
前記符号化ストリームを取得し、
取得された符号化ストリームに含まれる符号化ピクチャごとに、当該符号化ピクチャを複数の構成単位に分割し、複数の前記構成単位のそれぞれを、生成対象であるN個(Nは2以上の整数)の分割ストリームのうちの何れかの一部に割り当てることにより、N個の分割ストリームを生成し、
生成されたN個の分割ストリームのそれぞれを並列に復号化し、
前記N個の分割ストリームを生成する際に、前記符号化ピクチャに含まれるスライスが複数のスライス部分に分割されて複数の前記分割ストリームに割り当てられるときには、前記分割ストリームごとに、当該分割ストリームに割り当てられる少なくとも1つのスライス部分からなるスライス部分群が、N個の前記復号化部の何れかにスライスとして認識されるように、前記スライス部分群を新たなスライスとして再構成する、
画像復号化方法。 - 画像データが符号化された符号化ストリームを復号化するためのプログラムであって、
前記符号化ストリームを取得し、
取得された符号化ストリームに含まれる符号化ピクチャごとに、当該符号化ピクチャを複数の構成単位に分割し、複数の前記構成単位のそれぞれを、生成対象であるN個(Nは2以上の整数)の分割ストリームのうちの何れかの一部に割り当てることにより、N個の分割ストリームを生成し、
生成されたN個の分割ストリームのそれぞれを並列に復号化し、
前記N個の分割ストリームを生成する際に、前記符号化ピクチャに含まれるスライスが複数のスライス部分に分割されて複数の前記分割ストリームに割り当てられるときには、前記分割ストリームごとに、当該分割ストリームに割り当てられる少なくとも1つのスライス部分からなるスライス部分群が、N個の前記復号化部の何れかにスライスとして認識されるように、前記スライス部分群を新たなスライスとして再構成する、
ことをコンピュータに実行させるプログラム。 - 画像データが符号化された符号化ストリームを復号化する集積回路であって、
前記符号化ストリームを取得する取得部と、
前記取得部で取得された符号化ストリームに含まれる符号化ピクチャごとに、当該符号化ピクチャを複数の構成単位に分割し、複数の前記構成単位のそれぞれを、生成対象であるN個(Nは2以上の整数)の分割ストリームのうちの何れかの一部に割り当てることにより、N個の分割ストリームを生成するストリーム分割部と、
前記ストリーム分割部により生成されたN個の分割ストリームのそれぞれを並列に復号化するN個の復号化部とを備え、
前記ストリーム分割部は、
前記N個の分割ストリームを生成する際に、前記符号化ピクチャに含まれるスライスが複数のスライス部分に分割されて複数の前記分割ストリームに割り当てられるときには、前記分割ストリームごとに、当該分割ストリームに割り当てられる少なくとも1つのスライス部分からなるスライス部分群が、N個の前記復号化部の何れかにスライスとして認識されるように、前記スライス部分群を新たなスライスとして再構成する、
集積回路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/746,859 US20100254620A1 (en) | 2008-10-10 | 2009-10-09 | Image decoding apparatus and image decoding method |
JP2010532832A JP5345149B2 (ja) | 2008-10-10 | 2009-10-09 | 画像復号化装置および画像復号化方法 |
EP09819011.9A EP2346255B1 (en) | 2008-10-10 | 2009-10-09 | Image decoding apparatus and image decoding method |
CN200980101325.6A CN101897189B (zh) | 2008-10-10 | 2009-10-09 | 图像解码装置以及图像解码方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008264665 | 2008-10-10 | ||
JP2008-264665 | 2008-10-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010041472A1 true WO2010041472A1 (ja) | 2010-04-15 |
Family
ID=42100432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/005298 WO2010041472A1 (ja) | 2008-10-10 | 2009-10-09 | 画像復号化装置および画像復号化方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100254620A1 (ja) |
EP (1) | EP2346255B1 (ja) |
JP (1) | JP5345149B2 (ja) |
CN (1) | CN101897189B (ja) |
WO (1) | WO2010041472A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012014471A1 (ja) * | 2010-07-30 | 2012-02-02 | パナソニック株式会社 | 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法 |
WO2012035728A1 (ja) | 2010-09-16 | 2012-03-22 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
JP2012114637A (ja) * | 2010-11-24 | 2012-06-14 | Fujitsu Ltd | 動画像符号化装置 |
WO2014024491A1 (ja) * | 2012-08-09 | 2014-02-13 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置および画像符号化復号装置 |
JP2015073178A (ja) * | 2013-10-02 | 2015-04-16 | ルネサスエレクトロニクス株式会社 | 動画像復号処理装置およびその動作方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9602821B2 (en) * | 2008-10-01 | 2017-03-21 | Nvidia Corporation | Slice ordering for video encoding |
WO2010067505A1 (ja) * | 2008-12-08 | 2010-06-17 | パナソニック株式会社 | 画像復号化装置および画像復号化方法 |
EP2381685B1 (en) * | 2010-04-13 | 2019-01-02 | BlackBerry Limited | Methods and devices for load balancing in parallel entropy coding and decoding |
PL3267684T3 (pl) | 2010-06-10 | 2022-01-31 | Interdigital Vc Holdings, Inc. | Sposób wyznaczania predyktorów parametrów kwantyzacji na podstawie wielu sąsiednich parametrów kwantyzacji |
EP2842313B1 (en) | 2012-04-13 | 2016-10-19 | GE Video Compression, LLC | Scalable data stream and network entity |
IL299951B2 (en) | 2012-06-29 | 2024-01-01 | Ge Video Compression Llc | Video data stream concept |
JP6080405B2 (ja) * | 2012-06-29 | 2017-02-15 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
US9241163B2 (en) * | 2013-03-15 | 2016-01-19 | Intersil Americas LLC | VC-2 decoding using parallel decoding paths |
US9773536B1 (en) | 2013-07-09 | 2017-09-26 | Ambarella, Inc. | Context-adaptive binary arithmetic decoder with low latency |
GB2524726B (en) * | 2014-03-25 | 2018-05-23 | Canon Kk | Image data encapsulation with tile support |
US9854261B2 (en) * | 2015-01-06 | 2017-12-26 | Microsoft Technology Licensing, Llc. | Detecting markers in an encoded video signal |
GB2534409A (en) * | 2015-01-23 | 2016-07-27 | Sony Corp | Data encoding and decoding |
US9484954B1 (en) | 2015-09-10 | 2016-11-01 | Intel Corporation | Methods and apparatus to parallelize data decompression |
CN105263023B (zh) * | 2015-10-26 | 2018-08-03 | 西安电子科技大学 | 基于高速解码平台的网络码流实时接收方法 |
US10958989B2 (en) * | 2016-02-25 | 2021-03-23 | Synamedia Limited | Framework for embedding data in encoded video |
US10484701B1 (en) * | 2016-11-08 | 2019-11-19 | Amazon Technologies, Inc. | Rendition switch indicator |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06225278A (ja) | 1992-09-23 | 1994-08-12 | Daewoo Electron Co Ltd | 並列構造を有する画像復号装置のための画像データ分割回路 |
JPH08130745A (ja) | 1994-10-28 | 1996-05-21 | Matsushita Electric Ind Co Ltd | 復号化システム、復号化装置および復号化回路 |
JP2006129284A (ja) | 2004-10-29 | 2006-05-18 | Sony Corp | 符号化及び復号装置並びに符号化及び復号方法 |
US7305036B2 (en) | 2002-05-14 | 2007-12-04 | Broadcom Corporation | System and method for entropy code preprocessing |
WO2009119888A1 (en) * | 2008-03-28 | 2009-10-01 | Sharp Kabushiki Kaisha | Methods, devices and systems for parallel video encoding and decoding |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950010337B1 (ko) * | 1993-05-18 | 1995-09-14 | 엘지전자주식회사 | 디지탈 브이씨알의 배속영상 구현방법 및 그 장치 |
US5532744A (en) * | 1994-08-22 | 1996-07-02 | Philips Electronics North America Corporation | Method and apparatus for decoding digital video using parallel processing |
EP0710033A3 (en) * | 1994-10-28 | 1999-06-09 | Matsushita Electric Industrial Co., Ltd. | MPEG video decoder having a high bandwidth memory |
US5920352A (en) * | 1994-10-28 | 1999-07-06 | Matsushita Electric Industrial Co., Ltd. | Image memory storage system and method for a block oriented image processing system |
US6301299B1 (en) * | 1994-10-28 | 2001-10-09 | Matsushita Electric Industrial Co., Ltd. | Memory controller for an ATSC video decoder |
US5903282A (en) * | 1997-07-28 | 1999-05-11 | Lsi Logic Corporation | Video decoder dynamic memory allocation system and method with an efficient freeze mode |
US8401084B2 (en) * | 2002-04-01 | 2013-03-19 | Broadcom Corporation | System and method for multi-row decoding of video with dependent rows |
EP1363458A3 (en) * | 2002-05-14 | 2004-12-15 | Broadcom Corporation | Video bitstream preprocessing method |
US7627039B2 (en) * | 2003-09-05 | 2009-12-01 | Realnetworks, Inc. | Parallel video decoding |
CN101490740B (zh) * | 2006-06-05 | 2012-02-22 | 松下电器产业株式会社 | 声音合成装置 |
JP5042568B2 (ja) * | 2006-09-07 | 2012-10-03 | 富士通株式会社 | Mpegデコーダ及びmpegエンコーダ |
JP4793366B2 (ja) * | 2006-10-13 | 2011-10-12 | 日本ビクター株式会社 | 多視点画像符号化装置、多視点画像符号化方法、多視点画像符号化プログラム、多視点画像復号装置、多視点画像復号方法、及び多視点画像復号プログラム |
US20080170793A1 (en) * | 2007-01-12 | 2008-07-17 | Mitsubishi Electric Corporation | Image encoding device and image encoding method |
US8582656B2 (en) * | 2007-04-13 | 2013-11-12 | Apple Inc. | Method and system for video encoding and decoding |
US8619874B2 (en) * | 2007-04-13 | 2013-12-31 | Apple Inc. | Method and system for video encoding and decoding |
US7813538B2 (en) * | 2007-04-17 | 2010-10-12 | University Of Washington | Shadowing pipe mosaicing algorithms with application to esophageal endoscopy |
-
2009
- 2009-10-09 CN CN200980101325.6A patent/CN101897189B/zh not_active Expired - Fee Related
- 2009-10-09 US US12/746,859 patent/US20100254620A1/en not_active Abandoned
- 2009-10-09 EP EP09819011.9A patent/EP2346255B1/en not_active Not-in-force
- 2009-10-09 WO PCT/JP2009/005298 patent/WO2010041472A1/ja active Application Filing
- 2009-10-09 JP JP2010532832A patent/JP5345149B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06225278A (ja) | 1992-09-23 | 1994-08-12 | Daewoo Electron Co Ltd | 並列構造を有する画像復号装置のための画像データ分割回路 |
JPH08130745A (ja) | 1994-10-28 | 1996-05-21 | Matsushita Electric Ind Co Ltd | 復号化システム、復号化装置および復号化回路 |
US7305036B2 (en) | 2002-05-14 | 2007-12-04 | Broadcom Corporation | System and method for entropy code preprocessing |
JP2006129284A (ja) | 2004-10-29 | 2006-05-18 | Sony Corp | 符号化及び復号装置並びに符号化及び復号方法 |
WO2009119888A1 (en) * | 2008-03-28 | 2009-10-01 | Sharp Kabushiki Kaisha | Methods, devices and systems for parallel video encoding and decoding |
Non-Patent Citations (4)
Title |
---|
JUNG, B. ET AL.: "Adaptive slice-level parallelism for H.264/AVC encoding using pre macroblockmode selection", JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION, vol. 19, no. 8, 2 October 2008 (2008-10-02), pages 558 - 572, XP025691590 * |
ROITZSCH, M: "Slice-Balancing H.264 Video Encoding for Improved Scalability of Multicore Decoding", PROC.OF THE 7TH ACM AND IEEE INT. CONF. ON EMBEDDED SOFTWARE, 2007, pages 269 - 278, XP002518730 * |
See also references of EP2346255A4 * |
ZHAO, J. ET AL.: "New Results using Entropy Slices for Parallel Decoding", ITU - TELECOMMUNICATIONS STANDARDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP VCEG-A32, 16 July 2008 (2008-07-16), XP030003597 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9307260B2 (en) | 2010-07-30 | 2016-04-05 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding apparatus, image decoding method, image coding apparatus, and image coding method |
CN102550029A (zh) * | 2010-07-30 | 2012-07-04 | 松下电器产业株式会社 | 图像解码装置、图像解码方法、图像编码装置以及图像编码方法 |
WO2012014471A1 (ja) * | 2010-07-30 | 2012-02-02 | パナソニック株式会社 | 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法 |
EP2600612A4 (en) * | 2010-07-30 | 2015-06-03 | Panasonic Ip Man Co Ltd | IMAGE DECODING DEVICE, IMAGE DECODING METHOD, IMAGE ENCODING DEVICE, AND IMAGE ENCODING METHOD |
JPWO2012014471A1 (ja) * | 2010-07-30 | 2013-09-12 | パナソニック株式会社 | 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法 |
JP5656879B2 (ja) * | 2010-07-30 | 2015-01-21 | パナソニックIpマネジメント株式会社 | 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法 |
US9185406B2 (en) | 2010-09-16 | 2015-11-10 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device |
WO2012035728A1 (ja) | 2010-09-16 | 2012-03-22 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
US8982964B2 (en) | 2010-09-16 | 2015-03-17 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device |
WO2012035730A1 (ja) | 2010-09-16 | 2012-03-22 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
JP2012114637A (ja) * | 2010-11-24 | 2012-06-14 | Fujitsu Ltd | 動画像符号化装置 |
WO2014024491A1 (ja) * | 2012-08-09 | 2014-02-13 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置および画像符号化復号装置 |
JP5680257B2 (ja) * | 2012-08-09 | 2015-03-04 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 画像復号方法および画像復号装置 |
US9237341B2 (en) | 2012-08-09 | 2016-01-12 | Panasonic Intellectual Property Corporation Of America | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
JP2015062324A (ja) * | 2012-08-09 | 2015-04-02 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 画像符号化方法および画像符号化装置 |
US9800900B2 (en) | 2012-08-09 | 2017-10-24 | Sun Patent Trust | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
RU2646333C2 (ru) * | 2012-08-09 | 2018-03-02 | Сан Пэтент Траст | Способ декодирования изображения, способ кодирования изображения, устройство декодирования изображения, устройство кодирования изображения и устройство кодирования и декодирования изображения |
US9930372B2 (en) | 2012-08-09 | 2018-03-27 | Sun Patent Trust | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
US10244267B2 (en) | 2012-08-09 | 2019-03-26 | Sun Patent Trust | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
US10602193B2 (en) | 2012-08-09 | 2020-03-24 | Sun Patent Trust | Image decoding method, image coding method, image decoding apparatus, image coding apparatus, and image coding and decoding apparatus |
JP2015073178A (ja) * | 2013-10-02 | 2015-04-16 | ルネサスエレクトロニクス株式会社 | 動画像復号処理装置およびその動作方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2346255A1 (en) | 2011-07-20 |
EP2346255A4 (en) | 2012-06-13 |
JPWO2010041472A1 (ja) | 2012-03-08 |
EP2346255B1 (en) | 2015-04-08 |
US20100254620A1 (en) | 2010-10-07 |
JP5345149B2 (ja) | 2013-11-20 |
CN101897189A (zh) | 2010-11-24 |
CN101897189B (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010041472A1 (ja) | 画像復号化装置および画像復号化方法 | |
WO2010067505A1 (ja) | 画像復号化装置および画像復号化方法 | |
JP5656879B2 (ja) | 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法 | |
JP5400888B2 (ja) | 並列処理を用いた復号システムおよび方法 | |
CN103314581B (zh) | 使用列的图像分割方法和系统 | |
JP6090728B2 (ja) | 画像復号化装置および画像復号化方法 | |
WO2018116924A1 (ja) | 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム | |
US20160142740A1 (en) | Data encoding and decoding | |
EP3745723A1 (en) | Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium | |
EP2966865A1 (en) | Picture encoding device, picture decoding device, and picture communication system | |
JP6569665B2 (ja) | 画像復号装置、画像復号方法、及び集積回路 | |
KR102668064B1 (ko) | 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 컴퓨터 프로그램을 저장하기 위한 컴퓨터 판독 가능한 비일시적 저장 매체 | |
KR20180101123A (ko) | 영상 부호화 또는 복호화하기 위한 장치 및 방법 | |
KR20090089960A (ko) | 초고해상도 영상 인코딩 및 디코딩 방법 및 장치 | |
TWI853577B (zh) | 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法 | |
CN113994695B (zh) | 图像编码设备和方法、图像解码设备和方法以及存储介质 | |
JP2812773B2 (ja) | 画像データ分割符号化方法及びその装置 | |
CN114365489A (zh) | 图像编码设备和图像解码设备 | |
CN114128281A (zh) | 用于控制编码工具的方法和装置 | |
EA046975B1 (ru) | Временная обработка для технологии кодирования видео |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200980101325.6 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09819011 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010532832 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12746859 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009819011 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12919089 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1005/CHENP/2011 Country of ref document: IN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |