WO2014097596A1 - 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 - Google Patents
画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 Download PDFInfo
- Publication number
- WO2014097596A1 WO2014097596A1 PCT/JP2013/007350 JP2013007350W WO2014097596A1 WO 2014097596 A1 WO2014097596 A1 WO 2014097596A1 JP 2013007350 W JP2013007350 W JP 2013007350W WO 2014097596 A1 WO2014097596 A1 WO 2014097596A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- slice
- flag
- sao
- unit
- image
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- 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 encoding method and an image encoding device for encoding an image, and an image decoding method and an image decoding device for decoding an image.
- Non-Patent Document 1 There is a technique described in Non-Patent Document 1 as a technique related to an image encoding method and an image encoding apparatus for encoding an image (including a moving image), and an image decoding method and an image decoding apparatus for decoding an image.
- JCT-VC Join Collaborative Team on Video Coding
- the present invention provides an image encoding method and an image encoding device that efficiently encode an image, and an image decoding method and an image decoding device that efficiently decode an image.
- An image encoding method is an image encoding method for encoding an image into a bitstream, the division step of dividing the image into a plurality of slices, and a current slice to be encoded
- a first flag indicating permission or prohibition with respect to the reference of the reference target pixel is generated, and the reference target pixel is A second flag indicating permission or prohibition of reference to the reference target pixel when included in a second slice adjacent to the lower side or the right side of the current slice, wherein the second flag is different from the first flag.
- Filtering a boundary between a generation step to generate and a slice adjacent to the current slice and the current slice Filtering step, and in the filtering step, when the first flag indicates permission for reference to the reference target pixel, the first boundary between the current slice and the first slice If the second flag indicates permission for reference to the reference target pixel, filtering is performed on the second boundary between the current slice and the second slice.
- An image decoding method is an image decoding method for decoding an image from a bitstream, wherein a reference target pixel of a current slice that is a decoding target is adjacent to an upper side or a left side of the current slice.
- a first flag indicating permission or prohibition of reference to the reference target pixel is acquired, and the reference target pixel is included in a second slice adjacent to the lower side or the right side of the current slice
- the first flag indicates permission for reference to the reference target pixel
- filtering is performed on a first boundary between the current slice and the first slice
- the second flag is When permission is given to the reference of the reference target pixel, filtering is performed on a second boundary between the current slice and the second slice.
- a recording medium such as an apparatus, a system, an integrated circuit, a computer program, or a computer-readable CD-ROM for executing the above-described method.
- the present invention may be realized by any combination of an integrated circuit, a computer program, and a recording medium.
- the image encoding method, the image encoding device, the image decoding method, and the image decoding device of the present invention can efficiently encode or decode an image.
- FIG. 1 is a block diagram illustrating an example of a configuration of an image encoding device according to the first embodiment.
- FIG. 2 is a flowchart illustrating an example of a processing procedure of the image encoding method according to the first embodiment.
- FIG. 3 is a block diagram showing an internal configuration of the SAO processing unit 110 according to the first embodiment.
- FIG. 4 is a flowchart showing an example of the processing procedure (overall) of the SAO processing in the first embodiment.
- FIG. 5 is a flowchart showing an example of the processing procedure of the SAO processing (SAO offset addition) in the first embodiment.
- FIG. 6 is a block diagram showing an example of an internal configuration of the picture data encoding unit in the first embodiment.
- FIG. 1 is a block diagram illustrating an example of a configuration of an image encoding device according to the first embodiment.
- FIG. 2 is a flowchart illustrating an example of a processing procedure of the image encoding method according to the first embodiment.
- FIG. 3
- FIG. 7 is a flowchart illustrating an example of a processing procedure for encoding picture data according to the first embodiment.
- FIG. 8 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag according to the first embodiment.
- FIG. 9 is a flowchart illustrating an example of a processing procedure of SAO parameter encoding in the first embodiment.
- FIG. 10A is a diagram illustrating a relationship between a processing target pixel and a reference pixel in the reference pixel position type 0.
- FIG. 10B is a diagram illustrating a relationship between the processing target pixel and the reference pixel in the reference pixel position type 1.
- FIG. 10C is a diagram illustrating a relationship between the processing target pixel and the reference pixel in the reference pixel position type 2.
- FIG. 10D is a diagram illustrating a relationship between the processing target pixel and the reference pixel in the reference pixel position type 3.
- FIG. 11 is a diagram illustrating a relationship between slice_loop_filter_cross_slices_enabled_flag and whether or not SAO processing is executed.
- FIG. 12 is a block diagram illustrating an example of a configuration of the image decoding device according to the second embodiment.
- FIG. 13 is a flowchart illustrating an example of a processing procedure of the image decoding method according to the second embodiment.
- FIG. 14 is a block diagram illustrating an example of an internal configuration of the SAO processing unit according to the second embodiment.
- FIG. 15 is a flowchart illustrating an example of a processing procedure of SAO processing according to the second embodiment.
- FIG. 16 is a block diagram showing an example of an internal configuration of a picture data decoding unit in the second embodiment.
- FIG. 17 is a flowchart illustrating an example of a picture data decoding process procedure according to the second embodiment.
- FIG. 18 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the second embodiment.
- FIG. 19 is a flowchart illustrating an example of a processing procedure of SAO parameter decoding according to the second embodiment.
- FIG. 20 is a block diagram illustrating an example of the configuration of the image encoding device according to the third embodiment.
- FIG. 21 is a flowchart illustrating an example of a processing procedure of the image encoding method according to the third embodiment.
- FIG. 22 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the third embodiment.
- FIG. 23 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the fourth embodiment.
- FIG. 24 is a block diagram illustrating an example of a configuration of an image encoding device according to the fifth embodiment.
- FIG. 25 is a flowchart illustrating an example of a processing procedure of the image coding method according to the fifth embodiment.
- FIG. 26 is a block diagram showing an internal configuration of the SAO processing unit in the fifth embodiment.
- FIG. 27 is a flowchart illustrating an example of a processing procedure of SAO processing (entire) in the fifth embodiment.
- FIG. 28 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag according to the fifth embodiment.
- FIG. 29 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the sixth embodiment.
- FIG. 30 is a block diagram illustrating an example of the configuration of the image encoding device according to the present embodiment.
- FIG. 31 is a flowchart illustrating an example of a processing procedure of the image coding method according to the present embodiment.
- FIG. 32 is a block diagram showing an internal configuration of the SAO processing unit.
- FIG. 33 is a flowchart illustrating an example of a processing procedure of SAO processing (entire).
- FIG. 34 is a block diagram illustrating an example of an internal configuration of a picture data encoding unit.
- FIG. 35 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag.
- FIG. 36 is a block diagram illustrating an example of a configuration of the image decoding device according to the present embodiment.
- FIG. 37 is a block diagram illustrating an example of an internal configuration of the SAO processing unit.
- FIG. 38 is a flowchart illustrating an example of a processing procedure of the SAO processing according to the present embodiment.
- FIG. 39 is a block diagram illustrating an example of an internal configuration of the picture data decoding unit.
- FIG. 40 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the present embodiment.
- FIG. 41 is an overall configuration diagram of a content supply system that realizes a content distribution service.
- FIG. 42 is an overall configuration diagram of a digital broadcasting system.
- FIG. 43 is a block diagram illustrating a configuration example of a television.
- FIG. 44 is a block diagram illustrating a configuration example of an information reproducing / recording unit that reads and writes information from and on a recording medium that is an optical disk.
- FIG. 45 is a diagram illustrating a structure example of a recording medium that is an optical disk.
- FIG. 46A is a diagram illustrating an example of a mobile phone.
- FIG. 46B is a block diagram illustrating a configuration example of a mobile phone.
- FIG. 47 is a diagram showing a structure of multiplexed data.
- FIG. 41 is an overall configuration diagram of a content supply system that realizes a content distribution service.
- FIG. 42 is an overall configuration diagram of a digital broadcasting system.
- FIG. 43 is a block diagram illustrating a configuration example
- FIG. 48 is a diagram schematically showing how each stream is multiplexed in the multiplexed data.
- FIG. 49 is a diagram showing in more detail how the video stream is stored in the PES packet sequence.
- FIG. 50 is a diagram showing the structure of TS packets and source packets in multiplexed data.
- FIG. 51 is a diagram illustrating a data structure of the PMT.
- FIG. 52 is a diagram showing an internal configuration of multiplexed data information.
- FIG. 53 shows the internal structure of stream attribute information.
- FIG. 54 is a diagram showing steps for identifying video data.
- FIG. 55 is a block diagram illustrating a configuration example of an integrated circuit that implements the moving picture coding method and the moving picture decoding method according to each embodiment.
- FIG. 56 is a diagram showing a configuration for switching the drive frequency.
- FIG. 57 is a diagram showing steps for identifying video data and switching between driving frequencies.
- FIG. 58 is a diagram showing an example of a look-up table in which video data standards are associated with drive frequencies.
- FIG. 59A is a diagram illustrating an example of a configuration for sharing a module of a signal processing unit.
- FIG. 59B is a diagram illustrating another example of a configuration for sharing a module of a signal processing unit.
- H.264 As an image coding standard, H.264 is used. H.264 / AVC (MPEG-4 AVC) is available, but the HEVC (High Efficiency Video Coding) standard is being studied as the next generation standard.
- MPEG-4 AVC MPEG-4 AVC
- Non-Patent Document 1 includes a process called SAO (Sample Adaptive Offset).
- SAO processing (hereinafter abbreviated as “SAO” where appropriate) is processing for adding an offset value to each pixel of an image decoded from a code string. By performing the SAO processing, it is possible to more faithfully reproduce the original image before encoding and reduce image quality deterioration due to encoding.
- the processing target pixel is classified into a plurality of categories, and an offset value corresponding to each category is added. Classification of categories is performed with reference to the upper / lower pixels, left / right pixels, upper left / lower right pixels, and upper right / lower left pixels to be processed according to a classification method specified separately.
- Encoding and decoding processes are executed for each unit called a slice obtained by dividing one input image.
- the pixel to be referenced is a pixel of a slice different from the slice of the pixel to be processed, it is determined whether or not to perform the SAO processing by slice_loop_filter_cross_slices_enabled_flag specified for each slice.
- FIG. 11 is a diagram illustrating a relationship between slice_loop_filter_cross_slices_enabled_flag and whether or not SAO processing is executed.
- FIG. 11 illustrates an example in which slice_loop_filter_cross_slices_enabled_flag of slice 2 is designated as 0.
- a slice whose slice_loop_filter_cross_slices_enabled_flag is 0 does not perform SAO processing on a pixel whose reference pixel is another slice.
- a pixel adjacent to the processing target pixel is referred to.
- SAO is not performed on the pixels adjacent to the slice boundary among the pixels in slice 2, depending on the position of the reference pixel. Note that the SAO is not performed when the reference pixel is a different slice in order to prohibit the reference of the pixel between the slices and eliminate the dependency between the slices.
- slice_loop_filter_cross_slices_enabled_flag of slice 1 and slice 2 needs to be set to 0.
- the SAO processing is not executed on the pixels adjacent to the slice 3 in the slice 2 (SAO off).
- the pixels adjacent to slice 0 in slice 1 are also turned off by SAO depending on the reference pixel position. If the SAO is turned off unnecessarily, the image quality will deteriorate.
- FIG. 1 is a block diagram illustrating an example of a configuration of an image encoding device according to the present embodiment.
- an image coding apparatus 100A includes a slice division unit 101, a code block division unit 102, a subtraction unit 103, a conversion unit 104, a picture data coding unit 105, an inverse conversion unit 106, An addition unit 107, a frame memory, a DBF processing unit 109, a SAO processing unit 110, a prediction unit 111, a DBF_SAO processing determination unit 120, and a slice boundary reference determination unit 130 are provided.
- FIG. 2 is a flowchart illustrating an example of a processing procedure of the image encoding method according to the present embodiment.
- the slice dividing unit 101 divides the input image into slices (S101), and the code block dividing unit 102 divides the slice into code blocks (S102).
- the DBF_SAO processing determination unit 120 determines whether or not to execute DBF (Deblock Filter) and SAO processing for the processing target slice (current slice) (S103).
- SAO processing includes processing for luminance (Luma) component pixels (hereinafter referred to as “SAO-Luma” as appropriate) and processing for color difference (Chroma) component pixels (hereinafter referred to as “SAO-Chroma” as appropriate). It is.
- the characteristics of the input image, the degree of image quality improvement when the process is executed, and the like are used.
- dbf_flag is 1 when the DBF process is executed, and 0 when the DBF process is not executed.
- sao_luma_flag is 1 when SAO-Luma is executed, and 0 when it is not executed.
- sao_chroma_flag is 1 when SAO-Chroma is executed, and is 0 when SAO-Chroma is not executed.
- the slice boundary reference determining unit 130 determines whether to permit or prohibit the reference of pixels of another slice across the upper boundary and the left boundary of the processing target slice.
- the slice boundary reference determination unit 130 sets slice_loop_filter_cross_license_enabled_flag of the processing target slice to 1 when it is determined to permit in S104, and sets slice_loop_filter_cross_slices_enabled_flag (104) of the processing target slice to 0 when it is determined to prohibit.
- slice_loop_filter_cross_slices_enabled_flag exists for each slice.
- the prediction unit 111 generates a prediction block of the processing target code block (S105).
- the subtraction unit 103 generates a difference block between the prediction block and the code block (S106).
- the conversion unit 104 frequency-converts the difference block to generate a conversion coefficient (S107).
- the conversion unit 104 performs inverse frequency conversion on the code block after conversion (S108). Thereafter, the adding unit 107 generates a decoded block obtained by adding the code block subjected to inverse frequency conversion and the prediction block generated by the prediction unit 111, and stores the decoded block in the frame memory 108 (S109).
- next code block is set as a processing target (S110), and S105 to S111 are repeated until the processing of all the code blocks in the slice is completed (S111).
- S111 processing target
- S112 processing target slice
- S103 to S113 are repeated until processing of all slices in the picture is completed.
- the slice boundary reference determining unit 130 sets loop_filter_cross_slices_enabled_flag (S114).
- the loop_filter_cross_slices_enabled_flag is 1 when there is at least one slice_loop_filter_cross_slices_enabled_flag of each slice in the picture, and 0 when all 0s.
- One loop_filter_cross_slices_enabled_flag exists in one picture.
- the SAO processing unit 110 performs SAO processing on the luminance component pixel of the slice (S118).
- sao_chroma_flag of the slice to be processed is 1 (SAO Chroma execution flag is on) (Yes in S119)
- the SAO processing unit 110 performs SAO processing on the color difference component pixels (Cb and Cr) of the slice (S120, S121). Details of the SAO processing will be described later.
- next code block is set as a processing target (S122), and S115 to S123 are repeated until the processing of all the code blocks in the slice is completed (S123). Furthermore, when processing of all code blocks in one slice is completed (Yes in S213), the next slice is set as a processing target slice (S124), and S115 to S125 are processed until processing of all slices in the picture is completed. Is repeated (S125).
- the picture data encoding unit 105 encodes picture data (S126). Details of the picture data encoding will be described later.
- FIG. 3 is a block diagram illustrating an example of an internal configuration of the SAO processing unit 110.
- the SAO processing unit 110 includes a SAO parameter determination unit 110a, a slice boundary reference determination unit 110b, and a SAO offset addition unit 110c.
- FIG. 4 is a flowchart illustrating an example of the processing procedure of the SAO processing (entire). The flags used in Luma, Cr, and Cb are different, but the SAO processing method is the same.
- the SAO parameter determination unit 110a determines whether or not to perform SAO on the processing target code block (S131).
- the SAO parameter determination unit 110a uses a pixel or a code block generated as a result of executing the DBF process, and determines whether to execute the DBF process according to the degree of image quality improvement when the DBF process is executed.
- the SAO parameter determination unit 110a sets sao_type_idx_luma when the SAO processing target is Luma.
- the SAO parameter determination unit 110a sets sao_type_idx_chroma when the target of SAO processing is Chroma (Cb / Cr).
- the SAO parameter determination unit 110a sets these flags to 0 if SAO processing is not executed, and 1 if executed.
- the SAO parameter determination unit 110a performs S133 and subsequent steps when sao_type_idx_luma or sao_type_idx_chroma is 1 (when executing SAO processing), and ends SAO processing when 0.
- the SAO parameter determination unit 110a determines the reference pixel position type (S133).
- S133 the reference pixel position type
- 10A to 10D are diagrams showing the relationship between the reference pixel position type and the reference pixel, respectively.
- 10A to 10D show the processing target pixel c, the reference pixel c1, and the reference pixel c2.
- the reference pixel position type 0 shown in FIG. 10A the pixel adjacent to the left side of the processing target pixel c is set as the reference pixel c1, and the pixel adjacent to the right side is set as the reference pixel c2.
- the reference pixel position type 1 shown in FIG. 10B the pixel adjacent to the upper side of the processing target pixel c is set as the reference pixel c1, and the pixel adjacent to the lower side is set as the reference pixel c2.
- the pixel adjacent to the upper left side of the processing target pixel c is set as the reference pixel c1
- the pixel adjacent to the lower right side is set as the reference pixel c2.
- a pixel adjacent to the upper right side of the processing target pixel c is set as the reference pixel c1
- a pixel adjacent to the lower left side is set as the reference pixel c2.
- the SAO parameter determination unit 110a determines the SAO offset value of each category (S134). Details of the category will be described in the next SAO offset addition process (1-5).
- the SAO offset addition unit 110c determines the reference pixel position type and the SAO offset value based on the degree of image quality improvement when the SAO process is executed using the pixels and code blocks resulting from the DBF process.
- the slice boundary reference determination unit 110b determines whether or not to refer to the reference pixel according to the position of the reference pixel determined in S133, and does not perform the SAO offset addition process when the reference pixel should not be referred to. (S135 to S138). That is, the SAO process is not performed.
- the slice boundary reference determination unit 110b determines whether at least one of the two reference pixels is a pixel of another slice (S135). When at least one of the two reference pixels is another slice (Yes in S135), the slice boundary reference determination unit 110b determines whether the slice including the reference pixel has been subjected to SAO processing before the target slice. Is determined (S136). If the slice including the reference pixel has been previously subjected to SAO processing (Yes in S136), the slice boundary reference determination unit 110b slice_loop_filter_cross_slices_enabled_flag of this processing target slice (corresponds to the first flag in this embodiment). (S137).
- the slice boundary reference determination unit 110b determines the slice_loop_filter_cross_licenses_enabled_flag (in this embodiment) of the slice including the reference pixel. , Corresponding to the second flag), it is determined whether or not the reference can be made (S138). If slice_loop_filter_cross_slices_enabled_flag is 0 (No in S137 and No in S138), the slice boundary reference determination unit 110b does not perform SAO processing because the reference is prohibited.
- the permission and prohibition of the reference of the upper boundary and the left boundary of the processing target slice are determined by the slice_loop_filter_cross_slices_enabled_flag of the processing target slice, and the permission and prohibition of the reference of the lower boundary and the right boundary are the slices below the processing target slice, Judgment is made by slice_loop_filter_cross_slices_enabled_flag of the right slice.
- the boundary between slice 1 and slice 2 is determined by slice_loop_filter_cross_slices_enabled_flag of slice 2
- the boundary between slice 2 and slice 3 is determined by slice_loop_filter_cross_slices_enabled_flag of slice 3.
- the SAO offset addition unit 110c adds the SAO offset value to the pixel value of the pixel generated as a result of the DBF processing (S139). Details will be described later.
- the SAO parameter determination unit 110a, the slice boundary reference determination unit 110b, and the SAO offset addition unit 110c perform S135 to S139 on all the pixels in the code block (S140).
- FIG. 5 is a flowchart illustrating an example of a processing procedure of SAO processing (SAO offset addition).
- the SAO offset addition unit 110c divides into 0 to 4 categories using the magnitude relationship between the pixel values of the two reference pixels and the processing target pixel (S141 to S151).
- the SAO offset addition unit 110c The pixel to be processed is classified into category 1 (S147).
- the unit 110c sets the processing target pixel to category 2. Classify (S148).
- the unit 110c sets the processing target pixel to category 2. Classify (S149).
- the SAO offset addition unit 110c sets the processing target pixel as a category. 4 (S150).
- the SAO offset addition unit 110c classifies the pixel to be processed into category 0 (S150) when none of the above cases applies (No in S146).
- the SAO offset addition unit 110c When the category of the pixel to be processed is classified into a category other than category 0 (Yes in S152), the SAO offset addition unit 110c generates an offset value corresponding to the category of the pixel to be processed as a result of the DBF process. The added pixel value is added (S153). By adding the offset value, the pixel value generated as a result of the DBF process is brought closer to the pixel value of the input image. In the present embodiment, SAO offset addition section 110c does not add an offset value to pixels classified in category 0.
- FIG. 6 is a block diagram illustrating an example of an internal configuration of the picture data encoding unit.
- the picture data encoding unit 105 includes a transform coefficient encoding unit 105a, a prediction information encoding unit 105b, a SAO parameter encoding unit 105c, a slice boundary reference encoding unit 105d, and a DBF_SAO execution flag code. And a conversion unit 105e.
- FIG. 7 is a flowchart illustrating an example of a processing procedure for encoding picture data.
- the slice boundary reference encoding unit 105d encodes loop_filter_cross_slices_enabled_flag (S161).
- the DBF_SAO execution flag encoding unit 105e encodes dbf_flag, sao_luma_flag, and sao_chroma_flag (S162).
- slice boundary reference encoding unit 105d encodes slice_loop_filter_cross_slices_enabled_flag (S163). Details are described in 1-8.
- the SAO parameter encoding unit 105c encodes the SAO parameter (S165). Details will be described in 1-9. When both sao_luma_flag and sao_chroma_flag are 0, the SAO process is not performed, so the SAO parameter is not encoded.
- the prediction information encoding unit 105b encodes the prediction information (S166).
- the prediction information is information for generating a prediction block, and is information such as a motion vector for inter-screen prediction and a prediction direction for intra-screen prediction.
- the transform coefficient encoding unit 105a encodes the transform coefficient (S167).
- the data encoded in S164 to S167 is output as a code string.
- the picture data encoding unit 105 sets the next code block as a processing target (S168), and repeats S164 to S169 until processing of all code blocks in the slice is completed (S169). Further, when the processing of all the code blocks in one slice is completed (Yes in S169), the picture data encoding unit 105 sets the next slice as a processing target (S170), and the processing of all the slices in the picture is completed. Steps S162 to S171 are repeated until this is done (S171).
- FIG. 8 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag.
- the slice boundary reference encoding unit 105d sets 0 to slice_loop_filter_cross_slices_enabled_flag and ends the processing (S175).
- the slice_loop_filter_cross_slices_enabled_flag is a flag for setting permission / prohibition of reference across the boundary between the upper boundary and the left boundary of the slice. However, since the upper boundary and the left boundary of the first slice in the picture are the ends of the picture, reference across the boundary is not necessarily permitted (always prohibited).
- the slice boundary reference encoding unit 105d sets slice_loop_filter_access_slices_enabled_flag to 0 and ends the processing (S175). This is because when the loop_filter_cross_slices_enabled_flag is 0, the slice_loop_filter_cross_slices_enabled_flag of all slices in the picture is 0.
- FIG. 9 is a flowchart illustrating an example of a procedure for encoding SAO parameters.
- the SAO parameter encoding unit 105c encodes sao_merge_left_flag and sao_merge_up_flag (S176 to S186).
- the SAO parameter encoding unit 105c initializes sao_merge_left_flag to 0 (S176).
- the SAO parameter encoding unit 105c has the SAO parameter of the processing target code block the same as the SAO parameter of the left code block. It is determined whether or not (S178).
- the SAO parameter encoding unit 105c sets 1 to sao_merge_left_flag (S179).
- the SAO parameter encoding unit 105c encodes sao_merge_left_flag (S180). When the left code block adjacent to the left side does not belong to the same slice as the processing target code block (No in S177), sao_merge_left_flag is not encoded.
- the SAO parameter encoding unit 105c initializes sao_merge_up_flag to 0 (S181). If sao_merge_left_flag is not 1 (No in S182), the SAO parameter encoding unit 105c determines whether the upper code block adjacent on the upper side belongs to the same slice as the processing target code block (S183). When the upper code block adjacent on the upper side belongs to the same slice as the processing target code block (Yes in S183), the SAO parameter encoding unit 105c has the SAO parameter of the processing target code block the same as the SAO parameter of the upper code block. It is determined whether or not (S184).
- the SAO parameter encoding unit 105c sets 1 to sao_merge_up_flag (S185).
- the SAO parameter encoding unit 105c encodes sao_merge_up_flag (S186). If sao_merge_left_flag is 1 (Yes in S182), or if the upper code block adjacent to the upper side does not belong to the same slice as the processing target code block (No in S183), sao_merge_up_flag is not encoded.
- sao_merge_left_flag and sao_merge_up_flag are flags that are set to 1 when the processing target code block uses the same SAO parameter as the left or upper code block, as described above. For this reason, when the same SAO parameter is used, only this flag is encoded, and the SAO parameter is not encoded, thereby reducing the code amount.
- the SAO parameter encoding unit 105c ends the process without performing the encoding of the SAO parameters after S113.
- the left or upper code block is a block of another slice (S177 or S183)
- this flag is not encoded, and the SAO parameter is always encoded.
- both sao_merge_left_flag and sao_merge_up_flag will never be 1. Therefore, when sao_merge_left_flag is 1, only sao_merge_left_flag is encoded, and sao_merge_up_flag is not encoded (S182).
- the SAO on flag (sao_type_idx_luma / chroma), the SAO offset value (sao_offset_luma / cb / cr), and the SAO reference pixel position type (sao_eo_class_luma / chroma) are encoded (S113 to S123).
- the SAO parameter encoding unit 105c encodes sao_type_idx_luma when the sao_luma_flag of the processing target slice is 1, that is, when SAO Luma is on (Yes in S188) (S189). .
- the SAO parameter encoding unit 105c encodes four categories of sao_offset_luma when sao_type_idx_luma is not 0, that is, when SAO Luma of the processing target code block is off (No in S190) (S191).
- the SAO parameter encoding unit 105c encodes sao_eo_class_luma (S192).
- the SAO parameter encoding unit 105c encodes sao_eo_class_luma when SAO Luma is off (No in S188), when SAO Luma of the processing target code block is on (Yes in S190), or (S192). Later, the process proceeds to S193.
- the SAO parameter encoding unit 105c encodes sao_type_idx_chroma when the sao_chroma_flag of the slice to be processed is 1, that is, when SAO Chroma is on (Yes in S193) (S194). Further, the SAO parameter encoding unit 105c encodes four categories of sao_offset_cb when sao_type_idx_chroma is not 0, that is, when SAO Chroma of the processing target code block is off (No in S195) (S196). . The SAO parameter encoding unit 105c encodes sao_eo_class_chroma (S197). The SAO parameter encoding unit 105c encodes four categories of sao_offset_cr (S198).
- sao_type_idx_luma / chroma is a flag indicating that SAO processing is executed when it is 1, and that SAO is not executed when it is 0.
- sao_offset_luma / cb / cr and sao_eo_class_luma / chroma are not encoded (S190, S195).
- the SAO parameter is not encoded (S188, S193).
- sao_offset_luma / cb / cr four categories of offset values are encoded. Note that sao_type_idx_chroma and sao_eo_class_chroma use a common value for Cb and Cr, sao_offset_cb is used for Cb, and sao_offset_cr is used for the SAO of Cr.
- the permission and prohibition of reference to the upper boundary and the left boundary of the processing target slice are determined by slice_loop_filter_cross_slices_enabled_flag of the processing target slice, and permission and prohibition of reference to the lower boundary and the right boundary are determined by the slice below the processing target slice. Judgment is made based on the slice_loop_filter_cross_slices_enabled_flag of the right slice.
- slice_loop_filter_cross_ slices_enabled_flag of the processing target slice is set to 0, and when reference to the lower boundary and the right boundary is permitted, slice_loop_filter_slash_sl_sl Setting to 1 makes this possible.
- slice_loop_filter_cross_slices_enabled_flag of slice 2 is set to 0, and slice_loop_filter_cross_slices_edge_slices_edge_slices_edge_slices_edge_slice It became possible to realize by setting. By doing so, it becomes possible to perform SAO at all boundaries other than reference prohibition, leading to an improvement in image quality.
- the amount of code is reduced by not using the slice_loop_filter_cross_slices_enabled_flag of the first slice in the picture as a slice_loop_filter_cross_slices_enabled_flag as the upper and left boundaries of the slice.
- the upper boundary and the left boundary are always at the picture end, so the boundary reference is always prohibited, and slice_loop_filter_cross_slices_enabled_flag is unnecessary.
- loop_filter_cross_slices_enabled_flag is set to slice_loop_filter_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl_sl.
- DBF and SAO are performed after the decoding blocks of all code blocks in the picture are generated.
- the present invention is not limited to this, and as soon as the pixels and parameters used for DBF and SAO are ready, , SAO may be started, or may be started before all decoded blocks are generated.
- DBF and SAO on / off determination is performed before the generation of the decoded block.
- the determination may be made using the pixel value of the decoded block, the difference from the input image, or the like. Good.
- slice_loop_filter_cross_slices_enabled_flag is not encoded for the first slice in a picture. However, this is not always necessary, and in the case of a system in which it is desired to reduce the amount of processing for determining whether it is the first slice, Even in the case of slices, slice_loop_filter_cross_slices_enabled_flag may be encoded.
- processing in the present embodiment may be realized by software.
- the software may be distributed by downloading or the like. Further, this software may be recorded on a recording medium such as a CD-ROM and distributed. This also applies to other embodiments in this specification.
- FIG. 12 is a block diagram illustrating an example of the configuration of the image decoding apparatus according to the present embodiment.
- an image decoding apparatus 200A includes a picture data decoding unit 201, an inverse conversion unit 202, an addition unit 203, a frame memory 204, a DBF processing unit 205, an SAO processing unit 206, and a motion A compensation unit 207 is provided.
- FIG. 13 is a flowchart illustrating an example of a processing procedure of the image decoding method according to the present embodiment.
- the picture data decoding unit 201 decodes picture data from the code string (S201). Details will be described later.
- the motion compensation unit 207 generates a prediction block from the prediction information decoded from the picture data and the decoded block of the previous processing target code block stored in the frame memory 204 described later (S202).
- the inverse transform unit 202 performs inverse frequency transform on the transform coefficient of the processing target code block decoded from the picture data (S203).
- the adding unit 203 adds the processing target code block and the prediction block that have been subjected to the inverse frequency conversion to generate a decoded block, and stores the decoded block in the frame memory 204 (S204).
- the image decoding apparatus 200A sets the next code block as a processing target code block (S205), and repeats S202 to S206 until the processing of all code blocks in the slice is completed (S206). Further, when the processing of all the code blocks in one slice is completed (Yes in S206), the image decoding apparatus 200A sets the next slice as a processing target (S207) until the processing of all the slices in the picture is completed. S202 to S208 are repeated (S208). Note that code blocks and slices are set as processing targets in the order of raster scanning from the upper left to the lower right of the picture.
- the DBF process and the SAO process are performed in subsequent steps S115 to S125, but the processing procedure is the same as that in the first embodiment, and the description thereof is omitted.
- the data decoded by the picture data decoding unit 201 is used for dbf_flag, sao_luma_flag, and sao_chroma_flag used for processing.
- FIG. 14 is a block diagram illustrating an example of an internal configuration of the SAO processing unit 206.
- the SAO processing unit 206 includes a slice boundary reference determination unit 206a and an SAO offset addition unit 206b.
- the SAO processing unit 206 of the present embodiment is different from the SAO processing unit 110 of the first embodiment in that the SAO parameter determination unit 110a is not provided.
- FIG. 15 is a flowchart illustrating an example of a processing procedure of the SAO processing according to the present embodiment.
- the SAO processing flow shown in FIG. 15 is the same as the SAO processing flow of the first embodiment (FIG. 4), the determination of sao_type_idx_luma / chroma processed by the SAO parameter determination unit 110a, the determination of sao_eo_class_luma / chroma, and sao_offset_luma Although different in that there is no processing relating to the determination of cb / cr, the other processing is the same and will not be described. In the present embodiment, these parameters use data decoded by the picture data decoding unit 201.
- the SAO offset addition process is the same as that in the first embodiment (FIG. 5), and thus the description thereof is omitted.
- FIG. 16 is a block diagram illustrating an example of an internal configuration of the picture data decoding unit 201.
- the picture data decoding unit 201 includes a transform coefficient decoding unit 201a, a prediction information decoding unit 201b, a SAO parameter decoding unit 201c, a slice boundary reference decoding unit 201d, and a DBF_SAO execution flag decoding unit 201e. Yes.
- FIG. 17 is a flowchart illustrating an example of a processing procedure of picture data decoding.
- the slice boundary reference decoding unit 201d decodes loop_filter_cross_slices_enabled_flag (S211).
- the DBF_SAO execution flag decoding unit 201e decodes dbf_flag, sao_luma_flag, and sao_chroma_flag (S212).
- the slice boundary reference decoding unit 201d decodes slice_loop_filter_cross_slices_enabled_flag (S213). Details will be described later.
- the picture data decoding unit 201 decodes the SAO parameter by the SAO parameter decoding unit 201c (S215), and the prediction information decoding unit 201b converts the prediction information. Decoding is performed (S216), and the transform coefficient decoding unit 201a decodes the transform coefficient (S217). If both sao_luma_flag and sao_chroma_flag are 0 (Yes in S214), the SAO is not performed, so the picture data decoding unit 201 does not decode the SAO parameter.
- the prediction information is information for generating a prediction block, and is information such as a motion vector for inter-screen prediction and a prediction direction for intra-screen prediction.
- next code block is set as a processing target (S218), and S104 to S109 are repeated until the processing of all the code blocks in the slice is completed (S219).
- the next slice is set as a processing target (S220), and S102 to S111 are repeated until processing of all slices in the picture is completed (S220). S111).
- FIG. 18 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the present embodiment. Note that the decoding flow of the slice boundary reference permission flag shown in FIG. 18 is the same as the decoding flow of the slice boundary reference permission flag in FIG. To do.
- the slice boundary reference decoding unit 201d decodes slice_loop_filter_cross_slices_enabled_flag from the picture data.
- FIG. 19 is a flowchart illustrating an example of a procedure for decoding SAO parameters.
- the SAO parameter decoding unit 201c decodes sao_merge_left_flag and sao_merge_up_flag from the picture data (S231 to S240).
- the SAO parameter decoding unit 201c initializes sao_merge_left_flag to 0 (S231), and further initializes sao_merge_up_flag to 0 (S232).
- the SAO parameter decoding unit 201c decodes sao_merge_left_flag (S234).
- the SAO parameter decoding unit 201c determines whether the upper code block belongs to the same slice as the processing target code block (S236). When the upper code block belongs to the same slice as the processing target code block (S236), the SAO parameter decoding unit 201c decodes sao_merge_up_flag (S237). Furthermore, when sao_merge_up_flag is 1 (Yes in S238), the SAO parameter decoding unit 201c copies the SAO parameter of the upper code block as the SAO parameter of the processing target code block (S239).
- the SAO parameter decoding unit 201c copies the SAO parameter of the left code block as the SAO parameter of the processing target code block (S240).
- the SAO parameter decoding unit 201c ends the process when one of sao_merge_left_flag and sao_merge_up_flag is 1 (Yes in S241).
- sao_merge_left_flag and sao_merge_up_flag are flags that become 1 when the processing target code block uses the same SAO parameter as the left code block or the upper code block. Therefore, when the same SAO parameter is used, only this flag is decoded and the SAO parameter is not decoded.
- the SAO parameter decoding unit 201c always decodes the SAO parameter without decoding this flag (S233, S236). Also, both sao_merge_left_flag and sao_merge_up_flag will never be 1.
- SAO parameter decoding unit 201c decodes only sao_merge_left_flag and does not decode sao_merge_up_flag (S235).
- the SAO parameter decoding unit 201c decodes the SAO on flag (sao_type_idx_luma / chroma), the SAO offset value (sao_offset_luma / cb / cr), and the SAO reference pixel position type (sao_eo_class_luma / chroma) S (step S113).
- the SAO parameter decoding unit 201c determines whether sao_luma_flag of the processing target slice is 1 (S242).
- the SAO parameter decoding unit 201c decodes sao_type_idx_luma that is the SAO on flag of the luminance (S243).
- the SAO parameter decoding unit 201c decodes the four categories of sao_offset_luma (S245) and sao_eo_class_luma (S246).
- the SAO parameter decoding unit 201c decodes the SAO_type_idx_chroma that is the SAO on flag of the color difference (S248).
- the SAO parameter decoding unit 201c When the decoded sao_type_idx_chroma is not 0 (No in S249), the SAO parameter decoding unit 201c performs four categories of sao_offset_cb and (S250), sao_eo_class_chroma (S251), and four categories of sao_offset25 and (s251). .
- sao_type_idx_luma / chroma is a flag indicating that SAO processing is executed when it is 1, and that SAO is not executed when it is 0.
- sao_offset_luma / cb / cr and sao_eo_class_luma / chroma are not decrypted (S244, S249).
- sao_luma_flag and sao_chroma_flag of the processing target slice are 0 (when SAO processing is not executed), the SAO parameter is not decoded (S242, S247).
- sao_offset_luma / cb / cr four categories of offset values are decoded. Note that sao_type_idx_chroma and sao_eo_class_chroma use a common value for Cb and Cr, sao_offset_cb is used for Cb, and sao_offset_cr is used for the SAO of Cr.
- FIG. 20 is a block diagram illustrating an example of the configuration of the image encoding device according to the present embodiment.
- the image coding apparatus 100B includes a slice division unit 101, a code block division unit 102, a subtraction unit 103, a conversion unit 104, a picture data coding unit 105, an inverse conversion unit 106, An addition unit 107, a frame memory, a DBF processing unit 109, a SAO processing unit 110, a prediction unit 111, a DBF_SAO processing determination unit 120, and a slice boundary reference determination unit 130 are provided.
- the DBF_SAO processing determining unit 120 outputs the processing result to the slice boundary reference determining unit 130, as compared with the image encoding device 100A according to the first embodiment (FIG. 1). Is different.
- FIG. 21 is a flowchart illustrating an example of a processing procedure of the image encoding method according to the present embodiment.
- the overall flow of the image coding method according to the present embodiment shown in FIG. 21 is different from the overall flow of the image coding method according to the first embodiment (FIG. 2) only in S301 and S302 performed by the slice boundary reference determination unit 130. Therefore, the part will be described.
- S301 is executed after S103.
- the processing target slice DBF, SAO Luma, and SAO Croma are set to ON or OFF.
- the slice boundary reference determination unit 130 determines slice_loop_filter_cross_slices_enabled_flag as in the first embodiment (S104).
- the slice boundary reference determination unit 130 does not perform the determination process of slice_loop_filter_cross_slices_enabled_flag (S104), and sets it to 0 (prohibits boundary reference).
- Set (S302) That is, when both DBF and SAO are off, pixel reference across the upper and left boundaries of the slice is always prohibited.
- the configuration of the SAO processing unit, the flow of SAO processing, the flow of SAO offset addition processing, the configuration of the picture data encoding unit, and the coding flow of picture data of this embodiment are the same as the configuration of the SAO processing unit of Embodiment 1 ( 3), SAO processing flow (FIG. 4), SAO offset addition processing flow (FIG. 5), picture data encoding unit configuration (FIG. 6), and picture data encoding flow (FIG. 7). Therefore, the description is omitted.
- FIG. 22 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag.
- the encoding flow of the slice boundary reference permission flag of the present embodiment is different from that of the first embodiment only in S303 performed by the slice boundary reference encoding unit 105d.
- S303 is executed when it is determined in S173 in FIG. 8 that loop_filter_cross_slices_enabled_flag is 1 (Yes in S173).
- the slice boundary reference encoding unit 105d encodes slice_loop_filter_cross_slices_enabled_flag as in the first embodiment (S174).
- the slice boundary reference encoding unit 105d does not encode slice_loop_filter_cross_license_enabled_flag, and always sets it to 0 (forbids boundary reference). (S175).
- slice_loop_filter_cross_licenses_enabled_flag is always treated as 0 without being decoded. Therefore, it can be normally decoded.
- SAO parameter encoding The SAO parameter encoding flow according to the present embodiment is the same as the SAO parameter encoding flow according to the first embodiment (FIG. 9), and a description thereof will be omitted.
- slice_loop_filter_cross_slices_enabled_flag is always set to 0 (no boundary reference is allowed) without encoding, thereby improving the image quality while reducing the code amount. realizable.
- slice_loop_filter_cross_slices_enabled_flag is not included in the code string, and therefore the code amount can be reduced.
- slice_loop_filter_cross_slices_enabled_flag is 0, so that decoding can be performed normally.
- slice_loop_filter_cross_slices_enabled_flag is targeted for pixel reference at the upper boundary and left boundary of the slice, and the pixel of the processing target slice may be referred to by the SAO of the upper slice and the left slice of the processing target slice. Is determined by slice_loop_filter_cross_slices_enabled_flag of the slice to be processed.
- slice_loop_filter_cross_slices_enabled_flag is always set to 0 when the DBF and SAO of the processing target slice are off, the SAO of the upper slice and the left slice cannot always refer to the pixels of the processing target slice. For example, in FIG.
- FIG. 23 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the present embodiment.
- the decoding flow of the slice boundary reference permission flag of this embodiment shown in FIG. 23 differs from the decoding flow of the slice boundary reference permission flag of Embodiment 2 shown in FIG.
- step S401 is executed when it is determined in step S173 that loop_filter_cross_slices_enabled_flag is 1.
- the slice boundary reference decoding unit 201d does not decode slice_loop_filter_cross_slices_enabled_flag and always sets it to 0 (indicating boundary reference).
- the slice boundary reference decoding unit 201d decodes slice_loop_filter_cross_slices_enabled_flag (S222).
- SAO parameter decoding Operation (SAO parameter decoding)>
- the SAO parameter decoding flow according to the present embodiment is the same as the SAO parameter decoding flow according to the second embodiment (FIG. 19), and a description thereof will be omitted.
- FIG. 24 is a block diagram illustrating an example of the configuration of the image encoding device according to the present embodiment.
- the image coding apparatus 100C includes a slice division unit 101, a code block division unit 102, a subtraction unit 103, a conversion unit 104, a picture data coding unit 105, an inverse conversion unit 106, An addition unit 107, a frame memory, a DBF processing unit 109, a SAO processing unit 110, a prediction unit 111, a DBF_SAO processing determination unit 120, a slice boundary reference determination unit 130, and a SAO dummy flag setting unit 140 are provided.
- the image coding apparatus 100C according to the present embodiment is different from the image coding apparatus 100A according to the first embodiment (FIG. 1) in that a SAO dummy flag setting unit 140 is newly provided.
- FIG. 25 is a flowchart illustrating an example of a processing procedure of the image encoding method according to the present embodiment.
- the overall flow of the image coding method of the present embodiment shown in FIG. 25 is different from the overall flow of the image coding method of the first embodiment (FIG. 2) only in S501 to S505 performed by SAO dummy flag setting unit 140. Therefore, the part will be described.
- S501 is executed after setting the loop_filter_cross_slices_enabled_flag in S114.
- the SAO dummy flag setting unit 140 first initializes the SAO dummy flag to 0 (S501). The SAO dummy flag setting unit 140 determines that if the processing target slice DBF and SAO are both off (Yes in S502), and if the slice_loop of the slice_loop_filter_access_enabled_flag and the loop_filter_access_sliced_enabled_flag is different from the _s in the _s_s in the s_s_a and s_s in the s Is set to 1 (Luma's SAO is on), and the SAO dummy flag is set to 1.
- FIG. 26 is a block diagram showing an internal configuration of the SAO processing unit.
- the SAO processing unit 110 of this embodiment is different from the SAO processing unit 110 of Embodiment 1 (FIG. 3) in that an SAO dummy flag is input to the SAO parameter determination unit 110a.
- FIG. 27 is a flowchart illustrating an example of the processing procedure of the SAO processing (entire).
- the SAO processing flow of the present embodiment is different from the SAO processing flow of the first embodiment (FIG. 4) only in S511 and S512.
- S501 is executed immediately after the start of the SAO processing flow.
- the SAO parameter determination unit 110a performs a determination process for determining SAO on or SAO off as in the first embodiment (S131).
- the SAO parameter determination unit 110a does not perform the SAO on or SAO off determination process, and the code block to be processed is always SAO off (sao_type_idx_luma / chroma is set to 0). (S512).
- SAO offset addition processing flow picture data encoding unit configuration, picture data encoding flow>
- the SAO offset addition process flow, the configuration of the picture data encoding unit 105, and the picture data encoding flow according to the present embodiment are the SAO offset addition process flow (FIG. 5) and the picture data encoding unit according to the first embodiment. (FIG. 6) and the picture data encoding flow (FIG. 7) are the same as those in FIG.
- FIG. 28 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag.
- the coding flow of the slice boundary reference permission flag of the present embodiment differs from that of the third embodiment (FIG. 22) only in S521 performed by the slice boundary reference coding unit 105d, and will be described with reference to that portion.
- the slice boundary reference encoding unit 105d sets slice_loop_filter_cross_slices_enabled_flag to 0 when the processing target slice is the first slice in the picture (Yes in S172) (S175).
- the slice boundary reference encoding unit 105d proceeds to S173 when the processing target slice is not the first slice in the picture (No in S172).
- the slice boundary reference encoding unit 105d performs slice_loop_filter_cross_sliced_encoded_17 encoded (S4) when loop_filter_cross_license_enabled_flag is 1 (Yes in S173) and both DBF and SAO are not off (No in S303).
- the slice boundary reference encoding unit 105d encodes slice_loop_filter_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_sliced_slable_
- slice_loop_filter_cross_sliced_encoded_encoded_encoded_encoded_encoding_sliced_encoded_encoded_encoding_sliced_encoded_encoded_encoding_sliced_encoded_encoded_encoded_encoded_encoded_encoded_encoded_encoded_encoded_encoded_encoded_encoded_encoding Without using the value of loop_filter_cross_slices_enabled_flag, the decoding can be performed normally.
- SAO parameter encoding The SAO parameter encoding flow according to the present embodiment is the same as the SAO parameter encoding flow according to the first embodiment (FIG. 9), and a description thereof will be omitted.
- the slice boundary reference flag can be encoded even when both DBF and SAO are off, and the flexibility is improved. More specifically, when both DBF and SAO are OFF, the code amount is reduced by copying and using the loop_filter_cross_slices_enabled_flag without encoding the slice_loop_filter_cross_slices_enabled_flag during normal times.
- sao_luma_flag of the slice is forcibly set to 1 (SAO Luma on), and slice_loop_filter_cross_slices_enabled_flag is encoded.
- the sao_luma_flag of the slice is set to 1 (on), but by setting all the sao_type_idx_luma to be set to 0 (off) for each code block, the operation is actually the same as when SAO is turned off in units of slices. To be. That is, SAO is set on a slice basis, but SAO off is set on a code block basis, and actually the movement is SAO off on a slice basis. By doing so, it becomes possible to freely set the values of SAO on / off and slice_loop_filter_cross_slices_enabled_flag, and the flexibility can be improved.
- the Luma SAO (sao_luma_flag) of the slice is forcibly turned on (1 is set), but the Chroma SAO (sao_chroma_flag) is forcibly turned on (1 is set). Good. In that case, it goes without saying that sao_type_idx_chroma of the code block is turned off (set to 0).
- FIG. 29 is a flowchart illustrating an example of a processing procedure for decoding a slice boundary reference permission flag according to the present embodiment.
- the decoding flow of the slice boundary reference permission flag of the present embodiment is different from the decoding flow of the slice boundary reference permission flag of the fourth embodiment (FIG. 23) only in S601 performed by the slice boundary reference decoding unit 201d. explain.
- the slice boundary reference decoding unit 201d sets slice_loop_filter_cross_slices_enabled_flag to 0 when the processing target slice is the first slice in the picture (Yes in S172) (S175).
- the slice boundary reference decoding unit 201d proceeds to S173 when the processing target slice is not the first slice in the picture (No in S172).
- the slice boundary reference decoding unit 201d encodes slice_loop_filter_cross_slices_enable4 (encoded_slable_17) when loop_filter_cross_license_enabled_flag is 1 (Yes in S173) and DBF and SAO are not off (No in S401).
- the slice boundary reference decoding unit 201d sets the value of the slice_loop_filter_slice_enabled_slice to the slice_loop_filter_slice_enabled_slice, if the loop_filter_access_slices_enabled_flag is 0 (No in S173), or if both DBF and SAO are off (Yes in s401). (S601).
- SAO parameter decoding Operation (SAO parameter decoding)>
- the SAO parameter encoding flow of the present embodiment is the same as the SAO parameter encoding flow of the second embodiment (FIG. 19), and thus the description thereof is omitted.
- FIG. 30 is a block diagram showing an example of the configuration of the image encoding device 100D in the present embodiment.
- the image encoding device 100D includes a slice division unit 101, a code block division unit 102, a subtraction unit 103, a conversion unit 104, a picture data encoding unit 105, an inverse conversion unit 106, An addition unit 107, a frame memory, a DBF processing unit 109, a SAO processing unit 110, a prediction unit 111, a DBF_SAO processing determination unit 120, and a slice boundary reference determination unit 130 are provided.
- the image coding apparatus 100D according to the present embodiment is different from the image coding apparatus 100A according to the first embodiment (FIG. 1) in that the slice boundary reference determination unit 130 performs the SAO processing unit 110 and the picture data coding unit 105.
- slice_loop_filter_cross_slices_enabled_flag corresponding to the first flag in the present embodiment
- slice_loop_filter_cross_br_slices_enabled_flag (corresponding to the second flag in the present embodiment) is output.
- FIG. 31 is a flowchart illustrating an example of a processing procedure of the image coding method according to the present embodiment.
- the overall flow of the image coding method according to the present embodiment shown in FIG. 31 is different from the overall flow of the image coding method according to Embodiment 1 (FIG. 2) in that the slice boundary reference determining unit 130 replaces S104 with S701. Since it differs in the point which performs, it demonstrates about the part.
- the slice boundary reference determination unit 130 determines whether to allow or prohibit reference to pixels of another slice across the upper boundary and the left boundary of the processing target slice. Furthermore, when it is determined that the reference is permitted, the slice boundary reference determination unit 130 sets slice_loop_filter_cross_license_enabled_flag of the processing target slice to 1, and when it is determined to prohibit the slice boundary reference determination unit 130 sets slice_loop_filter_cross_slices_enabled_flag to 0.
- the slice boundary reference determination unit 130 determines whether to permit or prohibit the reference of pixels of another slice across the lower boundary and the right boundary of the slice. Furthermore, when it is determined that the reference is permitted, the slice boundary reference determination unit 130 sets slice_loop_filter_cross_br_slices_enabled_flag of the processing target slice to 1, and when it is determined to prohibit, the slice boundary reference determination unit 130 sets the slice_loop_filter_cross_br_sliced_enabled_enabled0 to the slice_enabled0. slice_loop_filter_cross_slices_enabled_flag and slice_loop_filter_cross_br_slices_enabled_flag exist for each slice.
- FIG. 32 is a block diagram showing an internal configuration of the SAO processing unit.
- the SAO processing unit 110 includes a SAO parameter determination unit 110a, a slice boundary reference determination unit 110b, and a SAO offset addition unit 110c.
- the SAO processing unit 110 of the present embodiment is different from the SAO processing unit 110 of the first embodiment (FIG. 3) in that slice_loop_filter_cross_br_slices_enabled_flag is input to the slice boundary reference determination unit 110b.
- FIG. 33 is a flowchart illustrating an example of a processing procedure of SAO processing (entire). Since the SAO processing flow of the present embodiment is different in that S701 is performed instead of S138 of the SAO processing flow of the first embodiment (FIG. 4), this portion will be described.
- the slice boundary reference determination unit 110b determines whether or not the reference pixel may be referred to by slice_loop_filter_cross_br_slices_enabled_flag of the processing target slice (S702).
- slice_loop_filter_cross_ slices_enabled_flag of slice 2 the boundary between slice 1 and slice 2 is determined by slice_loop_filter_cross_br_slices_gb_slices_gb_slices_grate_slice_g_slice_g_slice_g_slice
- FIG. 34 is a block diagram illustrating an example of an internal configuration of a picture data encoding unit.
- the picture data encoding unit 105 includes a transform coefficient encoding unit 105a, a prediction information encoding unit 105b, a SAO parameter encoding unit 105c, a slice boundary reference encoding unit 105d, and a DBF_SAO execution flag code. And a conversion unit 105e.
- the picture data encoding unit 105 of the present embodiment differs from the picture data encoding unit 105 of the first embodiment (FIG. 6) in that slice_loop_filter_cross_br_slices_enabled_flag is input to the slice boundary reference encoding unit 105d.
- the picture data encoding flow of the present embodiment is the same as the picture data encoding flow of the first embodiment (FIG. 7), and thus the description thereof is omitted.
- FIG. 35 is a flowchart illustrating an example of a processing procedure for encoding a slice boundary reference permission flag.
- the coding flow of the slice boundary reference permission flag of the present embodiment is different from the coding flow of the slice boundary reference permission flag of the third embodiment (FIG. 22) in that the processing of S711 to S714 is added. Therefore, the part will be described.
- the slice boundary reference encoding unit 105d executes S701 to S704 to set slices_loop_filter_bress_sl_sl_sl_7 To S714).
- the slice boundary reference encoding unit 105d sets the slice_loop_filter_cross_grate_slice_g_sliced_0_less_encoded_slice_loop_filter_cross_gly_sliced_less_gly_sliced_0_slice_loop_sliced_sl_less_encoding_sl Is used (S714).
- the slice boundary reference encoding unit 105d performs slice_loop_filter_cross_br_sliced_13_sliced_sliced_sliced_slice_13_sliced_sliced_sliced_sliced_sliced_sliced_sl_13_encoded_sliced_sliced_sl_13_sliced_sliced_sliced_sliced_sliced_sliced_sl_13_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sl_13_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sliced_sl
- loop_filter_cross_licenses_enabled_flag is 1, and when at least one of DBF and SAO is on, slice_loop_filter_cross_br_licenses_enabled_flag is decoded.
- SAO parameter encoding The SAO parameter encoding flow according to the present embodiment is the same as the SAO parameter encoding flow according to the first embodiment (FIG. 9), and a description thereof will be omitted.
- slice_loop_filter_cross_br_slices_enabled_flag of slice 1 and slice_loop_filter_cross_slices_edge_slice_edge_slice0 This can be realized by setting slice_loop_filter_cross_br_slices_enabled_flag of slice_slice_loop_filter_cross_slice_enabled_flag of slice 3 to 1. By doing so, it becomes possible to perform SAO at all boundaries other than reference prohibition, leading to an improvement in image quality.
- a pixel included in a slice may refer to a pixel in another slice based on a flag in its own slice, to reduce dependency between slices, and to process each slice in parallel It was a useful structure. More specifically, if the determination of whether the SAO may refer to a pixel of another slice is made based on the flag of another slice including the reference pixel, in the case of an image decoding apparatus, SAO cannot start processing until the flag is decoded, and it becomes necessary to monitor the processing status of another slice. In this case, there is a demerit such that a monitoring process for another slice is necessary or a waiting time occurs when each slice is processed in parallel. In this embodiment, the disadvantage can be eliminated.
- slice_loop_filter_cross_slices_enabled_flag and slice_loop_filter_cross_br_slices_enabled_flag of the slice can be used from another slice, so it is not necessary to reduce the coding amount.
- slice_loop_filter_access_slices_enabled_flag and slice_loop_filter_sl_sl_used_sl_ are used.
- the value of loop_filter_cross_slices_enabled_flag may be copied and used, as shown in the fifth embodiment (FIG. 28).
- FIG. 36 is a block diagram illustrating an example of a configuration of the image decoding device according to the present embodiment.
- the image decoding apparatus 200D includes a picture data decoding unit 201, an inverse conversion unit 202, an addition unit 203, a frame memory 204, a DBF processing unit 205, a SAO processing unit 206, and a motion A compensation unit 207 is provided.
- the picture data decoding unit 201 further decodes slice_loop_filter_cross_br_slices_enabled_flag and outputs it to the SAO processing unit 206 as compared with the image decoding device 200A according to the second embodiment (FIG. 12). It is different in point.
- FIG. 37 is a block diagram illustrating an example of the internal configuration of the SAO processing unit 206.
- the SAO processing unit 206 of the present embodiment includes a slice boundary reference determination unit 206a and an SAO offset addition unit 206b.
- the SAO processing unit 206 of the present embodiment is different from the SAO processing unit 206 of the second embodiment (FIG. 14) in that slice_loop_filter_cross_br_slices_enabled_flag is input to the slice boundary reference determination unit 206a.
- FIG. 38 is a flowchart illustrating an example of a processing procedure of the SAO processing according to the present embodiment.
- the SAO process flow shown in FIG. 38 is different from the SAO process flow (FIG. 33) of the seventh embodiment in determining sao_type_idx_luma / chroma processed by the SAO parameter determining unit 110a, determining sao_eo_class_luma / chroma, and sao_offset_luma / c / b.
- these parameters use data decoded by the picture data decoding unit 201.
- the SAO offset addition process is the same as that in the first embodiment (FIG. 5), and thus the description thereof is omitted.
- FIG. 39 is a block diagram illustrating an example of an internal configuration of the picture data decoding unit 201.
- the picture data decoding unit 201 includes a transform coefficient decoding unit 201a, a prediction information decoding unit 201b, an SAO parameter decoding unit 201c, a slice boundary reference decoding unit 201d, and a DBF_SAO execution flag decoding unit 201e. Yes.
- the picture data decoding unit 201 of the present embodiment is different from the picture data decoding unit 201 of the second embodiment (FIG. 16) in that the slice boundary reference decoding unit 201d further decodes and outputs slice_loop_filter_cross_br_slices_enabled_flag. Different.
- the picture data decoding flow according to the present embodiment is the same as the picture data decoding flow according to the second embodiment (FIG. 17), and a description thereof will be omitted.
- FIG. 40 is a flowchart illustrating an example of a processing procedure for decoding the slice boundary reference permission flag according to the present embodiment.
- the decoding flow of the slice boundary reference permission flag of the present embodiment is the same as that of the seventh embodiment except that S222 and S801 are executed instead of S174 and S713, and thus the description thereof is omitted.
- the slice boundary reference decoding unit 201d decodes slice_loop_filter_cross_slices_enabled_flag. Note that S222 is the same as S222 in the second embodiment shown in FIG.
- the slice boundary reference decoding unit 201d decodes slice_loop_filter_cross_br_slices_enabled_flag.
- SAO parameter decoding Operation (SAO parameter decoding)>
- the SAO parameter decoding flow according to the present embodiment is the same as the SAO parameter decoding flow according to the second embodiment (FIG. 19), and a description thereof will be omitted.
- each of the functional blocks can usually be realized by an MPU, a memory, or the like. Further, the processing by each of the functional blocks can be usually realized by software (program), and the software is recorded in a recording medium such as a ROM. Such software may be distributed by downloading or the like, or may be recorded on a recording medium such as a CD-ROM for distribution. Naturally, each functional block can be realized by hardware (dedicated circuit).
- each embodiment may be realized by performing centralized processing using a single device (system), or may be realized by performing distributed processing using a plurality of devices.
- the computer that executes the program may be singular or plural. That is, centralized processing may be performed, or distributed processing may be performed.
- the present invention is not limited to the above embodiment.
- the information for determining the SAO process is described as a flag.
- the present invention is not limited to binary information of 0 and 1, and a plurality of processes. It may be a multivalued value that selectively determines. It goes without saying that such various modifications are possible and are included in the scope of the present invention.
- the storage medium may be any medium that can record a program, such as a magnetic disk, an optical disk, a magneto-optical disk, an IC card, and a semiconductor memory.
- the system has an image encoding / decoding device including an image encoding device using an image encoding method and an image decoding device using an image decoding method.
- image encoding / decoding device including an image encoding device using an image encoding method and an image decoding device using an image decoding method.
- Other configurations in the system can be appropriately changed according to circumstances.
- FIG. 41 is a diagram showing an overall configuration of a content supply system ex100 that realizes a content distribution service.
- a communication service providing area is divided into desired sizes, and base stations ex106, ex107, ex108, ex109, and ex110, which are fixed wireless stations, are installed in each cell.
- the content supply system ex100 includes a computer ex111, a PDA (Personal Digital Assistant) ex112, a camera ex113, a mobile phone ex114, a game machine ex115 via the Internet ex101, the Internet service provider ex102, the telephone network ex104, and the base stations ex106 to ex110. Etc. are connected.
- PDA Personal Digital Assistant
- each device may be directly connected to the telephone network ex104 without going from the base station ex106, which is a fixed wireless station, to ex110.
- the devices may be directly connected to each other via short-range wireless or the like.
- the camera ex113 is a device that can shoot moving images such as a digital video camera
- the camera ex116 is a device that can shoot still images and movies such as a digital camera.
- the mobile phone ex114 is a GSM (registered trademark) (Global System for Mobile Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access) system, or an LTE (Long Terminal Term Evolution). It is possible to use any of the above-mentioned systems, HSPA (High Speed Packet Access) mobile phone, PHS (Personal Handyphone System), or the like.
- the camera ex113 and the like are connected to the streaming server ex103 through the base station ex109 and the telephone network ex104, thereby enabling live distribution and the like.
- live distribution content that is shot by a user using the camera ex113 (for example, music live video) is encoded as described in each of the above embodiments (that is, in one aspect of the present invention).
- the streaming server ex103 stream-distributes the content data transmitted to the requested client. Examples of the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, and a game machine ex115 that can decode the encoded data.
- Each device that receives the distributed data decodes the received data and reproduces it (that is, functions as an image decoding device according to one embodiment of the present invention).
- the captured data may be encoded by the camera ex113, the streaming server ex103 that performs data transmission processing, or may be shared with each other.
- the decryption processing of the distributed data may be performed by the client, the streaming server ex103, or may be performed in common with each other.
- still images and / or moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111.
- the encoding process in this case may be performed by any of the camera ex116, the computer ex111, and the streaming server ex103, or may be performed in a shared manner.
- these encoding / decoding processes are generally performed in the computer ex111 and the LSI ex500 included in each device.
- the LSI ex500 may be configured as a single chip or a plurality of chips.
- moving image encoding / decoding software is incorporated into some recording medium (CD-ROM, flexible disk, hard disk, etc.) that can be read by the computer ex111, etc., and encoding / decoding processing is performed using the software. May be.
- moving image data acquired by the camera may be transmitted.
- the moving image data at this time is data encoded by the LSI ex500 included in the mobile phone ex114.
- the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, and distribute data in a distributed manner.
- the encoded data can be received and reproduced by the client.
- the information transmitted by the user can be received, decrypted and reproduced by the client in real time, and personal broadcasting can be realized even for a user who does not have special rights or facilities.
- the digital broadcast system ex200 also includes at least the moving image encoding device (image encoding device) or the moving image decoding according to each of the above embodiments. Any of the devices (image decoding devices) can be incorporated.
- the broadcast station ex201 multiplexed data obtained by multiplexing music data and the like on video data is transmitted to a communication or satellite ex202 via radio waves.
- This video data is data encoded by the moving image encoding method described in each of the above embodiments (that is, data encoded by the image encoding apparatus according to one aspect of the present invention).
- the broadcasting satellite ex202 transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex204 capable of receiving satellite broadcasting.
- the received multiplexed data is decoded and reproduced by an apparatus such as the television (receiver) ex300 or the set top box (STB) ex217 (that is, functions as an image decoding apparatus according to one embodiment of the present invention).
- a reader / recorder ex218 that reads and decodes multiplexed data recorded on a recording medium ex215 such as a DVD or a BD, or encodes a video signal on the recording medium ex215 and, in some cases, multiplexes and writes it with a music signal. It is possible to mount the moving picture decoding apparatus or moving picture encoding apparatus described in the above embodiments. In this case, the reproduced video signal is displayed on the monitor ex219, and the video signal can be reproduced in another device or system using the recording medium ex215 on which the multiplexed data is recorded.
- a moving picture decoding apparatus may be mounted in a set-top box ex217 connected to a cable ex203 for cable television or an antenna ex204 for satellite / terrestrial broadcasting and displayed on the monitor ex219 of the television.
- the moving picture decoding apparatus may be incorporated in the television instead of the set top box.
- FIG. 43 is a diagram illustrating a television (receiver) ex300 that uses the moving picture decoding method and the moving picture decoding method described in the above embodiments.
- the television ex300 obtains or outputs multiplexed data in which audio data is multiplexed with video data via the antenna ex204 or the cable ex203 that receives the broadcast, and demodulates the received multiplexed data.
- the modulation / demodulation unit ex302 that modulates multiplexed data to be transmitted to the outside, and the demodulated multiplexed data is separated into video data and audio data, or the video data and audio data encoded by the signal processing unit ex306 Is provided with a multiplexing / demultiplexing unit ex303.
- the television ex300 also decodes the audio data and the video data, or encodes the information, the audio signal processing unit ex304, the video signal processing unit ex305 (the image encoding device or the image according to one embodiment of the present invention) A signal processing unit ex306 that functions as a decoding device), a speaker ex307 that outputs the decoded audio signal, and an output unit ex309 that includes a display unit ex308 such as a display that displays the decoded video signal. Furthermore, the television ex300 includes an interface unit ex317 including an operation input unit ex312 that receives an input of a user operation. Furthermore, the television ex300 includes a control unit ex310 that performs overall control of each unit, and a power supply circuit unit ex311 that supplies power to each unit.
- the interface unit ex317 includes a bridge unit ex313 connected to an external device such as a reader / recorder ex218, a recording unit ex216 such as an SD card, and an external recording unit such as a hard disk.
- a driver ex315 for connecting to a medium, a modem ex316 for connecting to a telephone network, and the like may be included.
- the recording medium ex216 is capable of electrically recording information by using a nonvolatile / volatile semiconductor memory element to be stored.
- Each part of the television ex300 is connected to each other via a synchronous bus.
- the television ex300 receives a user operation from the remote controller ex220 or the like, and demultiplexes the multiplexed data demodulated by the modulation / demodulation unit ex302 by the multiplexing / demultiplexing unit ex303 based on the control of the control unit ex310 having a CPU or the like. Furthermore, in the television ex300, the separated audio data is decoded by the audio signal processing unit ex304, and the separated video data is decoded by the video signal processing unit ex305 using the decoding method described in each of the above embodiments.
- the decoded audio signal and video signal are output from the output unit ex309 to the outside. At the time of output, these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced in synchronization. Also, the television ex300 may read multiplexed data from recording media ex215 and ex216 such as a magnetic / optical disk and an SD card, not from broadcasting. Next, a configuration in which the television ex300 encodes an audio signal or a video signal and transmits the signal to the outside or to a recording medium will be described.
- the television ex300 receives a user operation from the remote controller ex220 and the like, encodes an audio signal with the audio signal processing unit ex304, and converts the video signal with the video signal processing unit ex305 based on the control of the control unit ex310. Encoding is performed using the encoding method described in (1).
- the encoded audio signal and video signal are multiplexed by the multiplexing / demultiplexing unit ex303 and output to the outside. When multiplexing, these signals may be temporarily stored in the buffers ex320, ex321, etc. so that the audio signal and the video signal are synchronized.
- a plurality of buffers ex318, ex319, ex320, and ex321 may be provided as illustrated, or one or more buffers may be shared. Further, in addition to the illustrated example, data may be stored in the buffer as a buffer material that prevents system overflow and underflow, for example, between the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
- the television ex300 has a configuration for receiving AV input of a microphone and a camera, and performs encoding processing on the data acquired from them. Also good.
- the television ex300 has been described as a configuration capable of the above-described encoding processing, multiplexing, and external output, but these processing cannot be performed, and only the above-described reception, decoding processing, and external output are possible. It may be a configuration.
- the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218,
- the reader / recorder ex218 may share with each other.
- FIG. 44 shows a configuration of the information reproducing / recording unit ex400 when data is read from or written to an optical disk.
- the information reproducing / recording unit ex400 includes elements ex401, ex402, ex403, ex404, ex405, ex406, and ex407 described below.
- the optical head ex401 irradiates a laser spot on the recording surface of the recording medium ex215 that is an optical disk to write information, and detects information reflected from the recording surface of the recording medium ex215 to read the information.
- the modulation recording unit ex402 electrically drives a semiconductor laser built in the optical head ex401 and modulates the laser beam according to the recording data.
- the reproduction demodulator ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector built in the optical head ex401, separates and demodulates the signal component recorded on the recording medium ex215, and is necessary To play back information.
- the buffer ex404 temporarily holds information to be recorded on the recording medium ex215 and information reproduced from the recording medium ex215.
- the disk motor ex405 rotates the recording medium ex215.
- the servo control unit ex406 moves the optical head ex401 to a predetermined information track while controlling the rotational drive of the disk motor ex405, and performs a laser spot tracking process.
- the system control unit ex407 controls the entire information reproduction / recording unit ex400.
- the system control unit ex407 uses various types of information held in the buffer ex404, and generates and adds new information as necessary.
- the modulation recording unit ex402, the reproduction demodulation unit This is realized by recording / reproducing information through the optical head ex401 while operating the ex403 and the servo control unit ex406 in a coordinated manner.
- the system control unit ex407 includes, for example, a microprocessor, and executes these processes by executing a read / write program.
- the optical head ex401 has been described as irradiating a laser spot.
- a configuration in which higher-density recording is performed using near-field light may be used.
- FIG. 45 shows a schematic diagram of a recording medium ex215 that is an optical disk.
- Guide grooves grooves
- address information indicating the absolute position on the disc is recorded in advance on the information track ex230 by changing the shape of the groove.
- This address information includes information for specifying the position of the recording block ex231 that is a unit for recording data, and the recording block is specified by reproducing the information track ex230 and reading the address information in a recording or reproducing apparatus.
- the recording medium ex215 includes a data recording area ex233, an inner peripheral area ex232, and an outer peripheral area ex234.
- the area used for recording user data is the data recording area ex233, and the inner circumference area ex232 and the outer circumference area ex234 arranged on the inner or outer circumference of the data recording area ex233 are used for specific purposes other than user data recording. Used.
- the information reproducing / recording unit ex400 reads / writes encoded audio data, video data, or multiplexed data obtained by multiplexing these data with respect to the data recording area ex233 of the recording medium ex215.
- an optical disk such as a single-layer DVD or BD has been described as an example.
- an optical disc with a multi-dimensional recording / reproducing structure such as recording information using light of different wavelengths in the same place on the disc, or recording different layers of information from various angles. It may be.
- the car ex210 having the antenna ex205 can receive data from the satellite ex202 and the like, and the moving image can be reproduced on a display device such as the car navigation ex211 that the car ex210 has.
- the configuration of the car navigation ex211 may be, for example, a configuration in which a GPS receiving unit is added in the configuration illustrated in FIG. 43, and the same may be considered for the computer ex111, the mobile phone ex114, and the like.
- FIG. 46A is a diagram showing the mobile phone ex114 using the video decoding method and the video encoding method described in the above embodiment.
- the mobile phone ex114 includes an antenna ex350 for transmitting and receiving radio waves to and from the base station ex110, a camera unit ex365 capable of capturing video and still images, a video captured by the camera unit ex365, a video received by the antenna ex350, and the like Is provided with a display unit ex358 such as a liquid crystal display for displaying the decrypted data.
- the mobile phone ex114 further includes a main body unit having an operation key unit ex366, an audio output unit ex357 such as a speaker for outputting audio, an audio input unit ex356 such as a microphone for inputting audio, a captured video,
- an audio input unit ex356 such as a microphone for inputting audio
- a captured video In the memory unit ex367 for storing encoded data or decoded data such as still images, recorded audio, received video, still images, mails, or the like, or an interface unit with a recording medium for storing data
- a slot ex364 is provided.
- the mobile phone ex114 has a power supply circuit part ex361, an operation input control part ex362, and a video signal processing part ex355 with respect to a main control part ex360 that comprehensively controls each part of the main body including the display part ex358 and the operation key part ex366.
- a camera interface unit ex363, an LCD (Liquid Crystal Display) control unit ex359, a modulation / demodulation unit ex352, a multiplexing / demultiplexing unit ex353, an audio signal processing unit ex354, a slot unit ex364, and a memory unit ex367 are connected to each other via a bus ex370. ing.
- the power supply circuit unit ex361 starts up the mobile phone ex114 in an operable state by supplying power from the battery pack to each unit.
- the cellular phone ex114 converts the audio signal collected by the audio input unit ex356 in the voice call mode into a digital audio signal by the audio signal processing unit ex354 based on the control of the main control unit ex360 having a CPU, a ROM, a RAM, and the like. Then, this is subjected to spectrum spread processing by the modulation / demodulation unit ex352, digital-analog conversion processing and frequency conversion processing are performed by the transmission / reception unit ex351, and then transmitted via the antenna ex350.
- the mobile phone ex114 also amplifies the received data received via the antenna ex350 in the voice call mode, performs frequency conversion processing and analog-digital conversion processing, performs spectrum despreading processing by the modulation / demodulation unit ex352, and performs voice signal processing unit After being converted into an analog audio signal by ex354, this is output from the audio output unit ex357.
- the text data of the e-mail input by operating the operation key unit ex366 of the main unit is sent to the main control unit ex360 via the operation input control unit ex362.
- the main control unit ex360 performs spread spectrum processing on the text data in the modulation / demodulation unit ex352, performs digital analog conversion processing and frequency conversion processing in the transmission / reception unit ex351, and then transmits the text data to the base station ex110 via the antenna ex350.
- almost the reverse process is performed on the received data and output to the display unit ex358.
- the video signal processing unit ex355 compresses the video signal supplied from the camera unit ex365 by the moving image encoding method described in the above embodiments. Encode (that is, function as an image encoding device according to an aspect of the present invention), and send the encoded video data to the multiplexing / demultiplexing unit ex353.
- the audio signal processing unit ex354 encodes the audio signal picked up by the audio input unit ex356 while the camera unit ex365 images a video, a still image, etc., and sends the encoded audio data to the multiplexing / separating unit ex353. To do.
- the multiplexing / demultiplexing unit ex353 multiplexes the encoded video data supplied from the video signal processing unit ex355 and the encoded audio data supplied from the audio signal processing unit ex354 by a predetermined method, and is obtained as a result.
- the multiplexed data is subjected to spread spectrum processing by the modulation / demodulation unit (modulation / demodulation circuit unit) ex352, digital-analog conversion processing and frequency conversion processing by the transmission / reception unit ex351, and then transmitted via the antenna ex350.
- the multiplexing / separating unit ex353 separates the multiplexed data into a video data bit stream and an audio data bit stream, and performs video signal processing on the video data encoded via the synchronization bus ex370.
- the encoded audio data is supplied to the audio signal processing unit ex354 while being supplied to the unit ex355.
- the video signal processing unit ex355 decodes the video signal by decoding using the video decoding method corresponding to the video encoding method described in each of the above embodiments (that is, an image according to an aspect of the present invention).
- video and still images included in the moving image file linked to the home page are displayed from the display unit ex358 via the LCD control unit ex359.
- the audio signal processing unit ex354 decodes the audio signal, and the audio is output from the audio output unit ex357.
- the terminal such as the mobile phone ex114 is referred to as a transmission terminal having only an encoder and a receiving terminal having only a decoder.
- a transmission terminal having only an encoder
- a receiving terminal having only a decoder.
- multiplexed data in which music data or the like is multiplexed with video data is received and transmitted, but data in which character data or the like related to video is multiplexed in addition to audio data It may be video data itself instead of multiplexed data.
- the moving picture encoding method or the moving picture decoding method shown in each of the above embodiments can be used in any of the above-described devices / systems. The described effect can be obtained.
- multiplexed data obtained by multiplexing audio data or the like with video data is configured to include identification information indicating which standard the video data conforms to.
- identification information indicating which standard the video data conforms to.
- FIG. 47 is a diagram showing a structure of multiplexed data.
- the multiplexed data is obtained by multiplexing one or more of a video stream, an audio stream, a presentation graphics stream (PG), and an interactive graphics stream.
- the video stream indicates the main video and sub-video of the movie
- the audio stream (IG) indicates the main audio portion of the movie and the sub-audio mixed with the main audio
- the presentation graphics stream indicates the subtitles of the movie.
- the main video indicates a normal video displayed on the screen
- the sub-video is a video displayed on a small screen in the main video.
- the interactive graphics stream indicates an interactive screen created by arranging GUI components on the screen.
- the video stream is encoded by the moving image encoding method or apparatus shown in the above embodiments, or the moving image encoding method or apparatus conforming to the conventional standards such as MPEG-2, MPEG4-AVC, and VC-1. ing.
- the audio stream is encoded by a method such as Dolby AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD, or linear PCM.
- Each stream included in the multiplexed data is identified by PID. For example, 0x1011 for video streams used for movie images, 0x1100 to 0x111F for audio streams, 0x1200 to 0x121F for presentation graphics, 0x1400 to 0x141F for interactive graphics streams, 0x1B00 to 0x1B1F are assigned to video streams used for sub-pictures, and 0x1A00 to 0x1A1F are assigned to audio streams used for sub-audio mixed with the main audio.
- FIG. 48 is a diagram schematically showing how multiplexed data is multiplexed.
- a video stream ex235 composed of a plurality of video frames and an audio stream ex238 composed of a plurality of audio frames are converted into PES packet sequences ex236 and ex239, respectively, and converted into TS packets ex237 and ex240.
- the data of the presentation graphics stream ex241 and interactive graphics ex244 are converted into PES packet sequences ex242 and ex245, respectively, and further converted into TS packets ex243 and ex246.
- the multiplexed data ex247 is configured by multiplexing these TS packets into one stream.
- FIG. 49 shows in more detail how the video stream is stored in the PES packet sequence.
- the first row in FIG. 49 shows a video frame sequence of the video stream.
- the second level shows a PES packet sequence.
- a plurality of Video Presentation Units in the video stream are divided into pictures, B pictures, and P pictures, and are stored in the payload of the PES packet.
- Each PES packet has a PES header, and a PTS (Presentation Time-Stamp) that is a display time of a picture and a DTS (Decoding Time-Stamp) that is a decoding time of a picture are stored in the PES header.
- PTS Presentation Time-Stamp
- DTS Decoding Time-Stamp
- FIG. 50 shows the format of TS packets that are finally written in the multiplexed data.
- the TS packet is a 188-byte fixed-length packet composed of a 4-byte TS header having information such as a PID for identifying a stream and a 184-byte TS payload for storing data.
- the PES packet is divided and stored in the TS payload.
- a 4-byte TP_Extra_Header is added to a TS packet, forms a 192-byte source packet, and is written in multiplexed data.
- TP_Extra_Header information such as ATS (Arrival_Time_Stamp) is described.
- ATS indicates the transfer start time of the TS packet to the PID filter of the decoder.
- Source packets are arranged in the multiplexed data as shown in the lower part of FIG. 50, and the number incremented from the head of the multiplexed data is called SPN (source packet number).
- TS packets included in the multiplexed data include PAT (Program Association Table), PMT (Program Map Table), PCR (Program Clock Reference), and the like in addition to each stream such as video / audio / caption.
- PAT indicates what the PID of the PMT used in the multiplexed data is, and the PID of the PAT itself is registered as 0.
- the PMT has the PID of each stream such as video / audio / subtitles included in the multiplexed data and the attribute information of the stream corresponding to each PID, and has various descriptors related to the multiplexed data.
- the descriptor includes copy control information for instructing permission / non-permission of copying of multiplexed data.
- the PCR corresponds to the ATS in which the PCR packet is transferred to the decoder. Contains STC time information.
- FIG. 51 is a diagram for explaining the data structure of the PMT in detail.
- a PMT header describing the length of data included in the PMT is arranged at the head of the PMT.
- a plurality of descriptors related to multiplexed data are arranged.
- the copy control information and the like are described as descriptors.
- a plurality of pieces of stream information regarding each stream included in the multiplexed data are arranged.
- the stream information includes a stream descriptor in which a stream type, a stream PID, and stream attribute information (frame rate, aspect ratio, etc.) are described to identify a compression codec of the stream.
- the multiplexed data is recorded together with the multiplexed data information file.
- the multiplexed data information file is management information of multiplexed data, has a one-to-one correspondence with the multiplexed data, and includes multiplexed data information, stream attribute information, and an entry map.
- the multiplexed data information is composed of a system rate, a reproduction start time, and a reproduction end time.
- the system rate indicates a maximum transfer rate of multiplexed data to a PID filter of a system target decoder described later.
- the ATS interval included in the multiplexed data is set to be equal to or less than the system rate.
- the playback start time is the PTS of the first video frame of the multiplexed data
- the playback end time is set by adding the playback interval for one frame to the PTS of the video frame at the end of the multiplexed data.
- the attribute information for each stream included in the multiplexed data is registered for each PID.
- the attribute information has different information for each video stream, audio stream, presentation graphics stream, and interactive graphics stream.
- the video stream attribute information includes the compression codec used to compress the video stream, the resolution of the individual picture data constituting the video stream, the aspect ratio, and the frame rate. It has information such as how much it is.
- the audio stream attribute information includes the compression codec used to compress the audio stream, the number of channels included in the audio stream, the language supported, and the sampling frequency. With information. These pieces of information are used for initialization of the decoder before the player reproduces it.
- the stream type included in the PMT is used.
- video stream attribute information included in the multiplexed data information is used.
- the video encoding shown in each of the above embodiments for the stream type or video stream attribute information included in the PMT.
- FIG. 54 shows steps of the moving picture decoding method according to the present embodiment.
- step exS100 the stream type included in the PMT or the video stream attribute information included in the multiplexed data information is acquired from the multiplexed data.
- step exS101 it is determined whether or not the stream type or the video stream attribute information indicates multiplexed data generated by the moving picture encoding method or apparatus described in the above embodiments. To do.
- step exS102 the above embodiments are performed. Decoding is performed by the moving picture decoding method shown in the form.
- the conventional information Decoding is performed by a moving image decoding method compliant with the standard.
- FIG. 55 shows a configuration of an LSI ex500 that is made into one chip.
- the LSI ex500 includes elements ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508, and ex509 described below, and each element is connected via a bus ex510.
- the power supply circuit unit ex505 is activated to an operable state by supplying power to each unit when the power supply is on.
- the LSI ex500 uses the AV I / O ex509 to perform the microphone ex117 and the camera ex113 based on the control of the control unit ex501 including the CPU ex502, the memory controller ex503, the stream controller ex504, the driving frequency control unit ex512, and the like.
- the AV signal is input from the above.
- the input AV signal is temporarily stored in an external memory ex511 such as SDRAM.
- the accumulated data is divided into a plurality of times as appropriate according to the processing amount and the processing speed and sent to the signal processing unit ex507, and the signal processing unit ex507 encodes an audio signal and / or video. Signal encoding is performed.
- the encoding process of the video signal is the encoding process described in the above embodiments.
- the signal processing unit ex507 further performs processing such as multiplexing the encoded audio data and the encoded video data according to circumstances, and outputs the result from the stream I / Oex 506 to the outside.
- the output multiplexed data is transmitted to the base station ex107 or written to the recording medium ex215. It should be noted that data should be temporarily stored in the buffer ex508 so as to be synchronized when multiplexing.
- the memory ex511 is described as an external configuration of the LSI ex500.
- a configuration included in the LSI ex500 may be used.
- the number of buffers ex508 is not limited to one, and a plurality of buffers may be provided.
- the LSI ex500 may be made into one chip or a plurality of chips.
- control unit ex501 includes the CPU ex502, the memory controller ex503, the stream controller ex504, the drive frequency control unit ex512, and the like, but the configuration of the control unit ex501 is not limited to this configuration.
- the signal processing unit ex507 may further include a CPU.
- the CPU ex502 may be configured to include a signal processing unit ex507 or, for example, an audio signal processing unit that is a part of the signal processing unit ex507.
- the control unit ex501 is configured to include a signal processing unit ex507 or a CPU ex502 having a part thereof.
- LSI LSI
- IC system LSI
- super LSI ultra LSI depending on the degree of integration
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- Such a programmable logic device typically loads or reads a program constituting software or firmware from a memory or the like, so that the moving image encoding method or the moving image described in each of the above embodiments is used.
- An image decoding method can be performed.
- FIG. 56 shows a configuration ex800 in the present embodiment.
- the drive frequency switching unit ex803 sets the drive frequency high when the video data is generated by the moving image encoding method or apparatus described in the above embodiments.
- the decoding processing unit ex801 that executes the moving picture decoding method described in each of the above embodiments is instructed to decode the video data.
- the video data is video data compliant with the conventional standard, compared to the case where the video data is generated by the moving picture encoding method or apparatus shown in the above embodiments, Set the drive frequency low. Then, it instructs the decoding processing unit ex802 compliant with the conventional standard to decode the video data.
- the drive frequency switching unit ex803 includes the CPU ex502 and the drive frequency control unit ex512 in FIG.
- the decoding processing unit ex801 that executes the moving picture decoding method shown in each of the above embodiments and the decoding processing unit ex802 that complies with the conventional standard correspond to the signal processing unit ex507 in FIG.
- the CPU ex502 identifies which standard the video data conforms to. Then, based on the signal from the CPU ex502, the drive frequency control unit ex512 sets the drive frequency. Further, based on the signal from the CPU ex502, the signal processing unit ex507 decodes the video data.
- the identification information described in the tenth embodiment may be used for identifying the video data.
- the identification information is not limited to that described in the tenth embodiment, and any information that can identify which standard the video data conforms to may be used. For example, it is possible to identify which standard the video data conforms to based on an external signal that identifies whether the video data is used for a television or a disk. In some cases, identification may be performed based on such an external signal.
- the selection of the driving frequency in the CPU ex502 may be performed based on, for example, a lookup table in which video data standards and driving frequencies are associated with each other as shown in FIG. The look-up table is stored in the buffer ex508 or the internal memory of the LSI, and the CPU ex502 can select the drive frequency by referring to the look-up table.
- FIG. 57 shows steps for executing the method of the present embodiment.
- the signal processing unit ex507 acquires identification information from the multiplexed data.
- the CPU ex502 identifies whether the video data is generated by the encoding method or apparatus described in each of the above embodiments based on the identification information.
- the CPU ex502 sends a signal for setting the drive frequency high to the drive frequency control unit ex512. Then, the drive frequency control unit ex512 sets a high drive frequency.
- step exS203 the CPU ex502 drives the signal for setting the drive frequency low. This is sent to the frequency control unit ex512. Then, in the drive frequency control unit ex512, the drive frequency is set to be lower than that in the case where the video data is generated by the encoding method or apparatus described in the above embodiments.
- the power saving effect can be further enhanced by changing the voltage applied to the LSI ex500 or the device including the LSI ex500 in conjunction with the switching of the driving frequency. For example, when the drive frequency is set low, it is conceivable that the voltage applied to the LSI ex500 or the device including the LSI ex500 is set low as compared with the case where the drive frequency is set high.
- the setting method of the driving frequency may be set to a high driving frequency when the processing amount at the time of decoding is large, and to a low driving frequency when the processing amount at the time of decoding is small. It is not limited to the method.
- the amount of processing for decoding video data compliant with the MPEG4-AVC standard is larger than the amount of processing for decoding video data generated by the moving picture encoding method or apparatus described in the above embodiments. It is conceivable that the setting of the driving frequency is reversed to that in the case described above.
- the method for setting the drive frequency is not limited to the configuration in which the drive frequency is lowered.
- the voltage applied to the LSIex500 or the apparatus including the LSIex500 is set high.
- the driving of the CPU ex502 is stopped.
- the CPU ex502 is temporarily stopped because there is room in processing. Is also possible. Even when the identification information indicates that the video data is generated by the moving image encoding method or apparatus described in each of the above embodiments, if there is a margin for processing, the CPU ex502 is temporarily driven. It can also be stopped. In this case, it is conceivable to set the stop time shorter than in the case where the video data conforms to the conventional standards such as MPEG-2, MPEG4-AVC, and VC-1.
- a plurality of video data that conforms to different standards may be input to the above-described devices and systems such as a television and a mobile phone.
- the signal processing unit ex507 of the LSI ex500 needs to support a plurality of standards in order to be able to decode even when a plurality of video data complying with different standards is input.
- the signal processing unit ex507 corresponding to each standard is used individually, there is a problem that the circuit scale of the LSI ex500 increases and the cost increases.
- a decoding processing unit for executing the moving picture decoding method shown in each of the above embodiments and a decoding conforming to a standard such as MPEG-2, MPEG4-AVC, or VC-1
- the processing unit is partly shared.
- An example of this configuration is shown as ex900 in FIG. 59A.
- the moving picture decoding method shown in each of the above embodiments and the moving picture decoding method compliant with the MPEG4-AVC standard are processed in processes such as entropy coding, inverse quantization, deblocking filter, and motion compensation. Some contents are common.
- the decoding processing unit ex902 corresponding to the MPEG4-AVC standard is shared, and for other processing contents specific to one aspect of the present invention that do not correspond to the MPEG4-AVC standard, a dedicated decoding processing unit A configuration using ex901 is conceivable.
- the decoding processing unit for executing the moving picture decoding method described in each of the above embodiments is shared, and the processing content specific to the MPEG4-AVC standard As for, a configuration using a dedicated decoding processing unit may be used.
- ex1000 in FIG. 59B shows another example in which processing is partially shared.
- a dedicated decoding processing unit ex1001 corresponding to the processing content specific to one aspect of the present invention
- a dedicated decoding processing unit ex1002 corresponding to the processing content specific to another conventional standard
- a common decoding processing unit ex1003 corresponding to the processing contents common to the moving image decoding method according to the above and other conventional moving image decoding methods.
- the dedicated decoding processing units ex1001 and ex1002 are not necessarily specialized in one aspect of the present invention or processing content specific to other conventional standards, and can execute other general-purpose processing. Also good.
- the configuration of the present embodiment can be implemented by LSI ex500.
- the processing content common to the moving picture decoding method according to one aspect of the present invention and the moving picture decoding method of the conventional standard reduces the circuit scale of the LSI by sharing the decoding processing unit, In addition, the cost can be reduced.
- the image encoding method and the image decoding method according to the present invention can be applied to any multimedia data.
- the image encoding method and the image decoding method according to the present invention are useful as an image encoding method and an image decoding method in storage, transmission, communication, etc. using, for example, a mobile phone, a DVD device, and a personal computer.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
画像を複数のスライスに分割し、符号化対象であるカレントスライスの参照対象画素が、カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、参照対象画素の参照に対する許可または禁止を示す第一フラグを生成し、参照対象画素が、カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、参照対象画素の参照に対する許可または禁止を示す第二フラグであって、第一フラグとは異なる第二フラグを生成する生成ステップと、カレントスライスとカレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタリングステップと、を含み、フィルタリングステップでは、第一フラグが許可を示す場合には、カレントスライスと第一スライスとの間の第一境界に対してフィルタリングし、第二フラグが許可を示す場合には、カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする。
Description
本発明は、画像を符号化する画像符号化方法および画像符号化装置、および、画像を復号する画像復号方法および画像復号装置に関する。
画像(動画像を含む)を符号化する画像符号化方法および画像符号化装置、および、画像を復号する画像復号方法および画像復号装置に関する技術として、非特許文献1に記載の技術がある。
Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 9th Meeting: Geneva, CH, 27 April - 7 May 2012 JCTVC-I1003_d9.doc, High efficiency video coding (HEVC) text specification draft 7 http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v10.zip
しかしながら、従来技術に係る画像符号化方法および画像符号化装置、および、画像復号方法および画像復号装置において、非効率的な処理が用いられる場合がある。
そこで、本発明は、画像を効率的に符号化する画像符号化方法および画像符号化装置、および、画像を効率的に復号する画像復号方法および画像復号装置を提供する。
本発明の一態様に係る画像符号化方法は、画像をビットストリームに符号化する画像符号化方法であって、前記画像を複数のスライスに分割する分割ステップと、符号化対象であるカレントスライスの参照対象画素が、前記カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第一フラグを生成し、前記参照対象画素が、前記カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第二フラグであって、前記第一フラグとは異なる前記第二フラグを生成する生成ステップと、前記カレントスライスと前記カレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタリングステップと、を含み、前記フィルタリングステップでは、前記第一フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第一スライスとの間の第一境界に対してフィルタリングし、前記第二フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする。
本発明の一態様に係る画像復号方法は、ビットストリームから画像を復号する画像復号方法であって、復号対象であるカレントスライスの参照対象画素が、前記カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第一フラグを取得し、前記参照対象画素が、前記カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第二フラグであって、前記第一フラグとは異なる前記第二フラグを取得する取得ステップと、前記カレントスライスと前記カレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタリングステップと、を含み、前記フィルタリングステップでは、前記第一フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第一スライスとの間の第一境界に対してフィルタリングし、前記第二フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする。
なお、これらの包括的または具体的な態様は、上述した方法を実行する装置、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、装置、システム、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
本発明の画像符号化方法および画像符号化装置および画像復号方法および画像復号装置は、画像を効率的に符号化または復号することができる。
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、画像を符号化する画像符号化装置、または、画像を復号する画像復号装置に関して、以下の問題が生じることを見出した。
本発明者は、「背景技術」の欄において記載した、画像を符号化する画像符号化装置、または、画像を復号する画像復号装置に関して、以下の問題が生じることを見出した。
近年、デジタル映像機器の技術進歩が著しく、ビデオカメラやテレビチューナから入力した映像信号(時系列順に並んだ複数のピクチャ)を圧縮符号化しDVDやハードディスク等の記録メディアに記録する機会が増えている。画像符号化規格としてはH.264/AVC(MPEG-4 AVC)があるが、次世代の標準規格としてHEVC(High Efficiency Video Coding)規格が検討されている。
現在のHEVC規格(非特許文献1)には、SAO(Sample Adaptive Offset)と呼ばれる処理がある。SAO処理(以下、適宜「SAO」と略称する)は、符号列から復号した画像の各画素に対し、オフセット値を加算する処理である。SAO処理を行うことにより、符号化する前の原画像をより忠実に再現し、符号化による画質劣化を低減することが可能になる。SAO処理では、処理対象画素を複数のカテゴリに分類し、カテゴリ毎に対応したオフセット値を加算する。カテゴリの分類は、別途指定される分類分けの方法に応じて処理対象画素の上/下画素、左/右画素、左上/右下画素、右上/左下を参照して実施する。
符号化および復号処理は、1枚の入力画像を分割したスライスと呼ばれる単位毎に実行される。SAOの処理は、参照する画素が処理対象画素のスライスとは別のスライスの画素であった場合、スライス毎に指定するslice_loop_filter_across_slices_enabled_flagによってSAO処理をするかしないかを決定する。
図11を用いて説明する。図11は、slice_loop_filter_across_slices_enabled_flagとSAO処理が実行されるか否かとの関係を示す図である。図11では、1枚のピクチャを4つのスライスに分割している。また、図11では、スライス2のslice_loop_filter_across_slices_enabled_flagが0に指定されている場合の例を示している。
ここで、slice_loop_filter_across_slices_enabled_flagが0のスライスは、参照画素が別スライスである画素はSAO処理を実施しない。SAO処理では、処理対象画素の隣接画素を参照する。このため、スライス2内の画素の内、スライス境界に隣接した画素については、参照画素の位置によっては、SAOを実施しないことになる。なお、参照画素が別スライスである場合にSAOを実施しないようにすることは、スライス間の画素の参照を禁止し、スライス間の依存関係を無くすために行われる。
しかしながら、従来のSAO処理では、あるスライス境界のみ参照を禁止したい場合に別のスライス境界も参照禁止になってしまうという問題があった。図11を用いて説明すると、スライス1とスライス2間の参照を禁止したい場合、スライス1およびスライス2のslice_loop_filter_across_slices_enabled_flagを0に設定する必要がある。しかし、そのように設定すると、スライス2内のスライス3に隣接した画素もSAO処理が実行されない(SAOオフ)ことになる。また、スライス1内のスライス0に隣接した画素も、参照画素位置によっては、SAOオフになる。SAOを不必要にオフにしてしまうと画質が劣化してしまうという問題に繋がる。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。
(実施の形態1)
実施の形態1の画像符号化装置100A(100)について、図1~図11を基に説明する。
実施の形態1の画像符号化装置100A(100)について、図1~図11を基に説明する。
<1-1.全体構成>
図1は、本実施の形態における画像符号化装置の構成の一例を示すブロック図である。
図1は、本実施の形態における画像符号化装置の構成の一例を示すブロック図である。
図1に示すように、本実施の形態の画像符号化装置100Aは、スライス分割部101、符号ブロック分割部102、減算部103、変換部104、ピクチャデータ符号化部105、逆変換部106、加算部107、フレームメモリ、DBF処理部109、SAO処理部110、予測部111、DBF_SAO処理決定部120、および、スライス境界参照決定部130を備えている。
各部の詳細な動作については、1-2で述べる。
<1-2.動作(全体)>
次に、図2を参照しつつ、本実施の形態の画像符号化方法の全体フローについて説明する。図2は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。
次に、図2を参照しつつ、本実施の形態の画像符号化方法の全体フローについて説明する。図2は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。
まず、スライス分割部101は、入力画像をスライスに分割し(S101)、符号ブロック分割部102は、スライスを符号ブロックに分割する(S102)。
次に、DBF_SAO処理決定部120は、処理対象スライス(カレントスライス)に対するDBF(Deblock Filter)とSAO処理とを実行するかしないかを決定する(S103)。SAO処理には、輝度(Luma)成分画素に対する処理(以下、適宜「SAO-Luma」と称する)と、色差(Chroma)成分画素に対する処理(以下、適宜「SAO-Chroma」と称する)とが含まれる。DBF処理およびSAO処理の実行可否の決定には、入力画像の特徴や、処理を実行した場合の画質改善度合い等を用いる。S103では、dbf_flag(第四フラグに相当)、sao_luma_flag(第三フラグの一部に相当)、sao_chroma_flag(第三フラグの一部に相当)の3つのフラグの値を決定する。dbf_flagは、DBF処理を実行する場合に1となり、実行しない場合は0となる。sao_luma_flagは、SAO-Lumaを実行する場合に1となり、実行しない場合は0となる。sao_chroma_flagは、SAO-Chromaを実行する場合に1となり、実行しない場合は0となる。
次に、スライス境界参照決定部130は、処理対象スライスの上境界および左境界を跨いで別スライスの画素の参照を許可するか禁止するかを決定する。スライス境界参照決定部130は、S104において許可すると決定した場合は、処理対象スライスのslice_loop_filter_across_slices_enabled_flagを1に設定し、禁止すると決定した場合は処理対象スライスのslice_loop_filter_across_slices_enabled_flagを0に設定する(S104)。slice_loop_filter_across_slices_enabled_flagはスライス毎に存在する。
次に、予測部111は、処理対象符号ブロックの予測ブロックを生成する(S105)。減算部103は、予測ブロックと符号ブロックとの差分ブロックを生成する(S106)。変換部104は、差分ブロックを周波数変換して変換係数を生成する(S107)。
さらに、変換部104は、変換された後の符号ブロックを逆変換部106は、逆周波数変換する(S108)。その後、加算部107は、逆周波数変換された符号ブロックと予測部111によって生成された予測ブロックとを加算した復号ブロックを生成し、フレームメモリ108に記憶する(S109)。
そして、次の符号ブロックを処理対象とし(S110)、スライス内の全符号ブロックの処理が完了するまでS105~S111を繰り返す(S111)。また、1つのスライス内の全ての符号ブロックの処理が完了すると(S111のYes)、次のスライスを処理対象スライスとし(S112)、ピクチャ内の全スライスの処理が完了するまでS103~S113を繰り返す(S113)。なお、符号ブロックおよびスライスはピクチャの左上から右下へラスタスキャンの順で処理対象に設定する。
次に、スライス境界参照決定部130は、loop_filter_across_slices_enabled_flagを設定する(S114)。loop_filter_across_slices_enabled_flagは、ピクチャ内の各スライスのslice_loop_filter_across_slices_enabled_flagで1つでも1が存在する場合は1となり、全て0の場合は0となる。loop_filter_across_slices_enabled_flagは、1つのピクチャに1つ存在する。
次に、処理対象スライスのdbf_flagが1(DBF実行フラグがオン)の場合は(S115のYes)、DBF処理部109は、そのスライスのDBFを実施する(S116)。
次に、処理対象スライスのsao_luma_flagが1(SAO Luma実行フラグがオン)の場合は(S117のYes)、SAO処理部110は、そのスライスの輝度成分画素に対するSAO処理を実施する(S118)。処理対象スライスのsao_chroma_flagが1(SAO Chroma実行フラグがオン)の場合は(S119のYes)、SAO処理部110は、そのスライスの色差成分画素(CbおよびCr)に対するSAO処理を実施する(S120、S121)。SAO処理の詳細は後述する。
そして、次の符号ブロックを処理対象とし(S122)、スライス内の全符号ブロックの処理が完了するまでS115~S123を繰り返す(S123)。さらに、また、1つのスライス内の全ての符号ブロックの処理が完了すると(S213のYes)、次のスライスを処理対象スライスとし(S124)、ピクチャ内の全スライスの処理が完了するまでS115~S125を繰り返す(S125)。
次に、ピクチャデータ符号化部105は、ピクチャデータの符号化を行う(S126)。ピクチャデータ符号化の詳細は後述する。
以降、特徴的なSAO処理部、ピクチャデータ符号化部について詳細を説明する。
<1-3.SAO処理部の構成>
図3は、SAO処理部110の内部構成の一例を示すブロック図である。
図3は、SAO処理部110の内部構成の一例を示すブロック図である。
図3に示すように、SAO処理部110は、SAOパラメータ決定部110a、スライス境界参照判定部110b、および、SAOオフセット加算部110cを備えている。
各部の詳細な動作については、1-4で述べる。
<1-4.動作(SAO処理)>
次に、図4を参照しつつ、SAO処理(S118、S120、S121)のフロー(全体)の詳細について説明する。図4は、SAO処理(全体)の処理手順の一例を示すフローチャートである。なお、Luma、Cr、Cbで用いるフラグは異なるが、SAO処理の方法は同じである。
次に、図4を参照しつつ、SAO処理(S118、S120、S121)のフロー(全体)の詳細について説明する。図4は、SAO処理(全体)の処理手順の一例を示すフローチャートである。なお、Luma、Cr、Cbで用いるフラグは異なるが、SAO処理の方法は同じである。
まず、SAOパラメータ決定部110aは、処理対象符号ブロックでSAOを行うか否かを決定する(S131)。SAOパラメータ決定部110aは、DBF処理を実行した結果生成される画素や符号ブロックを用い、DBF処理を実行した場合の画質改善度合い等でDBF処理を実行するか否かを決定する。S131において、SAOパラメータ決定部110aは、SAO処理の対象がLumaの場合には、sao_type_idx_lumaを設定する。SAOパラメータ決定部110aは、SAO処理の対象がChroma(Cb/Cr)の場合にはsao_type_idx_chromaを設定する。SAOパラメータ決定部110aは、これらのフラグに、SAO処理を実行しない場合は0を、実行する場合は1を設定する。SAOパラメータ決定部110aは、sao_type_idx_lumaまたはsao_type_idx_chromaが1の場合(SAO処理を実行する場合)、S133以降を実施し、0の場合はSAO処理を終了する。
次に、SAOパラメータ決定部110aは、参照画素位置タイプを決定する(S133)。参照画素位置タイプは4種類あり、タイプに応じて参照する参照画素の位置が異なるが、いずれも処理対象画素に隣接する2つの画素を参照画素とする。
図10A~図10Dは、それぞれ、参照画素位置タイプと参照画素との関係を示す図である。図10A~図10Dでは、処理対象画素cと、参照画素c1および参照画素c2とを示している。図10Aに示す参照画素位置タイプ0では、処理対象画素cの左側に隣接する画素が参照画素c1として設定され、右側に隣接する画素が参照画素c2として設定されている。図10Bに示す参照画素位置タイプ1では、処理対象画素cの上側に隣接する画素が参照画素c1として設定され、下側に隣接する画素が参照画素c2として設定されている。図10Cに示す参照画素位置タイプ2では、処理対象画素cの左上側に隣接する画素が参照画素c1として設定され、右下側に隣接する画素が参照画素c2として設定されている。図10Dに示す参照画素位置タイプ3では、処理対象画素cの右上側に隣接する画素が参照画素c1として設定され、左下側に隣接する画素が参照画素c2として設定されている。
SAOパラメータ決定部110aは、各カテゴリのSAOオフセット値を決定する(S134)。カテゴリに関しては次のSAOオフセット加算処理(1-5)で詳細を述べる。SAOオフセット加算部110cは、DBF処理の結果の画素や符号ブロックを用い、SAO処理を実行した場合の画質改善度合い等で、参照画素位置タイプとSAOオフセット値を決定する。
次に、スライス境界参照判定部110bは、S133で決定した参照画素の位置に応じてその参照画素を参照してよいかどうかを判定し、参照してはならない場合はSAOオフセット加算処理を行わない(S135~S138)。つまりSAO処理を実施しない。
具体的には、スライス境界参照判定部110bは、2つの参照画素の少なくとも一方が別スライスの画素であるか否かを判定する(S135)。スライス境界参照判定部110bは、2つの参照画素の少なくとも一方が別スライスであった場合(S135のYes)、その参照画素が含まれるスライスが本処理対象スライスよりも前にSAO処理されているか否かを判断する(S136)。スライス境界参照判定部110bは、参照画素が含まれるスライスが、前にSAO処理されている場合は(S136のYes)、本処理対象スライスのslice_loop_filter_across_slices_enabled_flag(本実施の形態では、第一フラグに相当)によって参照してよいか否かを判定する(S137)。これに対し、スライス境界参照判定部110bは、参照画素が含まれるスライスが、後で処理するスライスであった場合は(S136のNo)、参照画素が含まれるスライスのslice_loop_filter_across_slices_enabled_flag(本実施の形態では、第二フラグに相当)によって参照してよいか否かを判定する(S138)。スライス境界参照判定部110bは、slice_loop_filter_across_slices_enabled_flagが0であった場合は(S137のNoおよびS138のNo)、参照禁止であるため、SAO処理を実施しない。
こうすることによって、処理対象スライスの上境界および左境界の参照の許可および禁止は処理対象スライスのslice_loop_filter_across_slices_enabled_flagによって判断し、下境界および右境界の参照の許可および禁止は処理対象スライスの下のスライス、右のスライスのslice_loop_filter_across_slices_enabled_flagによって判断することになる。図11を用いて説明すると、スライス1とスライス2の境界はスライス2のslice_loop_filter_across_slices_enabled_flagによって判断し、スライス2とスライス3の境界はスライス3のslice_loop_filter_across_slices_enabled_flagによって判断する。
SAOオフセット加算部110cは、slice_loop_filter_across_slices_enabled_flagが1であった場合は(S137のYesおよびS138のYes)、DBF処理の結果生成された画素の画素値にSAOオフセット値を加算する(S139)。詳細は後述する。
SAOパラメータ決定部110a、スライス境界参照判定部110bおよびSAOオフセット加算部110cは、S135~S139を符号ブロック内の全画素に対して実施する(S140)。
<1-5.動作(SAOオフセット加算)>
次に、図5を参照しつつ、SAO処理のフロー(SAOオフセットの加算)について説明する。図5は、SAO処理(SAOオフセットの加算)の処理手順の一例を示すフローチャートである。
次に、図5を参照しつつ、SAO処理のフロー(SAOオフセットの加算)について説明する。図5は、SAO処理(SAOオフセットの加算)の処理手順の一例を示すフローチャートである。
まず、SAOオフセット加算部110cは、2つの参照画素と処理対象画素の画素値の大小関係を用いて0~4のカテゴリに分ける(S141~S151)。
具体的には、SAOオフセット加算部110cは、処理対象画素の画素値<参照画素c1の画素値、且つ、処理対象画素の画素値<参照画素c2の画素値の場合は(S141のYes)、処理対象画素をカテゴリ1に分類する(S147)。
SAOオフセット加算部110cは、処理対象画素の画素値<参照画素c1の画素値、且つ、処理対象画素の画素値==参照画素c2の画素値の場合(S142のYes)、または、SAOオフセット加算部110cは、処理対象画素の画素値==参照画素c1の画素値、且つ、処理対象画素の画素値<参照画素c2の画素値の場合は(S143のYes)、処理対象画素をカテゴリ2に分類する(S148)。
SAOオフセット加算部110cは、処理対象画素の画素値>参照画素c1の画素値、且つ、処理対象画素の画素値==参照画素c2の画素値の場合(S144のYes)、または、SAOオフセット加算部110cは、処理対象画素の画素値==参照画素c1の画素値、且つ、処理対象画素の画素値>参照画素c2の画素値の場合は(S145のYes)、処理対象画素をカテゴリ2に分類する(S149)。
SAOオフセット加算部110cは、処理対象画素の画素値>参照画素c1の画素値、且つ、処理対象画素の画素値>参照画素c2の画素値の場合は(S146のYes)、処理対象画素をカテゴリ4に分類する(S150)。
SAOオフセット加算部110cは、上記何れの場合にも当てはまらない場合は(S146のNo)、処理対象画素をカテゴリ0に分類する(S150)。
次に、SAOオフセット加算部110cは、処理対象画素のカテゴリがカテゴリ0以外のカテゴリに分類されている場合(S152のYes)、処理対象画素のカテゴリに応じたオフセット値をDBF処理の結果生成された画素値に加算する(S153)。オフセット値を加算することによって、DBF処理の結果生成された画素値を入力画像の画素値により近づけている。なお、本実施の形態では、SAOオフセット加算部110cは、カテゴリ0に分類された画素にはオフセット値を加算しない。
<1-6.ピクチャデータ符号化部の構成>
図6は、ピクチャデータ符号化部の内部構成の一例を示すブロック図である。
図6は、ピクチャデータ符号化部の内部構成の一例を示すブロック図である。
図6に示すように、ピクチャデータ符号化部105は、変換係数符号化部105a、予測情報符号化部105b、SAOパラメータ符号化部105c、スライス境界参照符号化部105d、および、DBF_SAO実行フラグ符号化部105eを備えている。
各部の詳細な動作については、1-7で述べる。
<1-7.動作(ピクチャデータ符号化)>
次に、図7を参照しつつ、ピクチャデータの符号化フロー(S126)について説明する。図7は、ピクチャデータの符号化の処理手順の一例を示すフローチャートである。
次に、図7を参照しつつ、ピクチャデータの符号化フロー(S126)について説明する。図7は、ピクチャデータの符号化の処理手順の一例を示すフローチャートである。
まず、スライス境界参照符号化部105dは、loop_filter_across_slices_enabled_flagを符号化する(S161)。
次に、DBF_SAO実行フラグ符号化部105eは、dbf_flag、sao_luma_flag、sao_chroma_flagを符号化する(S162)。
次に、スライス境界参照符号化部105dは、slice_loop_filter_across_slices_enabled_flagを符号化する(S163)。詳細は1-8で述べる。
次に、SAOパラメータ符号化部105cは、SAOパラメータを符号化する(S165)。詳細は1-9で述べる。なお、sao_luma_flagおよびsao_chroma_flagが共に0の場合は、SAO処理を実施しないため、SAOパラメータは符号化しない。
予測情報符号化部105bは、予測情報を符号化する(S166)。予測情報は予測ブロックを生成するための情報であり、画面間予測の動きベクトルや画面内予測の予測方向等の情報である。
変換係数符号化部105aは、変換係数を符号化する(S167)。
S164~S167で符号化されたデータは、符号列として出力される。
そして、ピクチャデータ符号化部105は、次の符号ブロックを処理対象とし(S168)、スライス内の全符号ブロックの処理が完了するまでS164~S169を繰り返す(S169)。また、ピクチャデータ符号化部105は、1つのスライス内の全ての符号ブロックの処理が完了すると(S169のYes)、次のスライスを処理対象とし(S170)、ピクチャ内の全スライスの処理が完了するまでS162~S171を繰り返す(S171)。
<1-8.動作(スライス境界参照許可フラグ符号化)>
次に、図8を参照しつつ、スライス境界参照許可フラグの符号化フロー(S163)について説明する。図8は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。
次に、図8を参照しつつ、スライス境界参照許可フラグの符号化フロー(S163)について説明する。図8は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。
まず、処理対象スライスがピクチャ内の先頭のスライスである場合は(S172のYes)、スライス境界参照符号化部105dは、slice_loop_filter_across_slices_enabled_flagに0を設定して処理を終了する(S175)。slice_loop_filter_across_slices_enabled_flagは、実質的に、スライスの上境界および左境界の境界跨ぎの参照の許可および禁止を設定するフラグである。しかし、ピクチャ内の先頭のスライスの上境界、左境界はピクチャの端であるため、境界跨ぎの参照が必ず許可にはならない(必ず禁止になる)ためである。
次に、loop_filter_across_slices_enabled_flagが0の場合は(S173のNo)、スライス境界参照符号化部105dは、slice_loop_filter_across_slices_enabled_flagに0を設定して処理を終了する(S175)。loop_filter_across_slices_enabled_flagが0の場合はそのピクチャ内の全スライスのslice_loop_filter_across_slices_enabled_flagが0であるためである。
loop_filter_across_slices_enabled_flagが先頭スライスでなく(S172のNo)、且つloop_filter_across_slices_enabled_flagが1の場合は(S173のYes)、slice_loop_filter_across_slices_enabled_flagを符号化する(S174)。
<1-9.動作(SAOパラメータ符号化)>
次に、図9を参照しつつ、SAOパラメータの符号化のフローについて説明する。図9は、SAOパラメータの符号化の処理手順の一例を示すフローチャートである。
次に、図9を参照しつつ、SAOパラメータの符号化のフローについて説明する。図9は、SAOパラメータの符号化の処理手順の一例を示すフローチャートである。
まず、SAOパラメータ符号化部105cは、sao_merge_left_flagとsao_merge_up_flagとを符号化する(S176~S186)。
具体的には、まず、SAOパラメータ符号化部105cは、sao_merge_left_flagを0に初期化する(S176)。SAOパラメータ符号化部105cは、左側に隣接する左符号ブロックが処理対象符号ブロックと同じスライスに属する場合(S177のYes)、処理対象符号ブロックのSAOパラメータが左符号ブロックのSAOパラメータと同じであるか否かを判定する(S178)。SAOパラメータ符号化部105cは、処理対象符号ブロックのSAOパラメータが左符号ブロックのSAOパラメータと同じである場合(S178のYes)、sao_merge_left_flagに1を設定する(S179)。SAOパラメータ符号化部105cは、sao_merge_left_flagを符号化する(S180)。なお、左側に隣接する左符号ブロックが処理対象符号ブロックと同じスライスに属さない場合(S177のNo)、sao_merge_left_flagは符号化されない。
SAOパラメータ符号化部105cは、sao_merge_up_flagを0に初期化する(S181)。SAOパラメータ符号化部105cは、sao_merge_left_flagが1ではない場合(S182のNo)、上側に隣接する上符号ブロックが処理対象符号ブロックと同じスライスに属するか否かを判定する(S183)。SAOパラメータ符号化部105cは、上側に隣接する上符号ブロックが処理対象符号ブロックと同じスライスに属する場合(S183のYes)、処理対象符号ブロックのSAOパラメータが上符号ブロックのSAOパラメータと同じであるか否かを判定する(S184)。SAOパラメータ符号化部105cは、処理対象符号ブロックのSAOパラメータが上符号ブロックのSAOパラメータと同じである場合(S184のYes)、sao_merge_up_flagに1を設定する(S185)。SAOパラメータ符号化部105cは、sao_merge_up_flagを符号化する(S186)。なお、sao_merge_left_flagが1である場合(S182のYes)、あるいは、上側に隣接する上符号ブロックが処理対象符号ブロックと同じスライスに属さない場合(S183のNo)、sao_merge_up_flagは符号化されない。
ここで、sao_merge_left_flagおよびsao_merge_up_flagは、上述したように、処理対象符号ブロックが左側または上側の符号ブロックと同じSAOパラメータを使う場合に1となるフラグである。このため、同じSAOパラメータを使用する場合はこのフラグのみを符号化し、SAOパラメータを符号化しないことによって符号量を削減している。
よって、SAOパラメータ符号化部105cは、この2フラグのいずれかが1の場合は(S187のYes)、S113以降のSAOパラメータの符号化は行わず、処理を終了する。なお、左側または上側の符号ブロックが別スライスのブロックである場合は(S177あるいはS183)、本フラグは符号化せず、必ずSAOパラメータを符号化する。また、sao_merge_left_flagおよびsao_merge_up_flagの両方が1になることはない。したがって、sao_merge_left_flagが1の場合はsao_merge_left_flagのみが符号化され、sao_merge_up_flagは符号化されない(S182)。
次に、SAOオンフラグ(sao_type_idx_luma/chroma)、SAOオフセット値(sao_offset_luma/cb/cr)、SAO参照画素位置タイプ(sao_eo_class_luma/chroma)を符号化する(S113~S123)。
具体的には、まず、SAOパラメータ符号化部105cは、処理対象スライスのsao_luma_flagが1である場合、つまり、SAO Lumaがオンである場合に(S188のYes)、sao_type_idx_lumaを符号化する(S189)。
SAOパラメータ符号化部105cは、sao_type_idx_lumaが0ではない場合、つまり、処理対象符号ブロックのSAO Lumaがオフである場合に(S190のNo)、4つのカテゴリのsao_offset_lumaを符号化する(S191)。SAOパラメータ符号化部105cは、sao_eo_class_lumaを符号化する(S192)。
SAOパラメータ符号化部105cは、SAO Lumaがオフである場合(S188のNo)、あるいは、処理対象符号ブロックのSAO Lumaがオンである場合(S190のYes)、あるいは、sao_eo_class_lumaの符号化(S192)後に、S193に移行する。
SAOパラメータ符号化部105cは、処理対象スライスのsao_chroma_flagが1である場合、つまり、SAO Chromaがオンである場合に(S193のYes)、sao_type_idx_chromaを符号化する(S194)。さらに、SAOパラメータ符号化部105cは、sao_type_idx_chromaが0ではない場合、つまり、処理対象符号ブロックのSAO Chromaがオフである場合に(S195のNo)、4つのカテゴリのsao_offset_cbを符号化する(S196)。SAOパラメータ符号化部105cは、sao_eo_class_chromaを符号化する(S197)。SAOパラメータ符号化部105cは、4つのカテゴリのsao_offset_crを符号化する(S198)。
つまり、sao_type_idx_luma/chromaは1の時にSAO処理を実行することを示し、0の場合はSAOを実行しないことを示すフラグである。SAO処理を実行しない場合はsao_offset_luma/cb/cr、sao_eo_class_luma/chromaを符号化しない(S190、S195)。また、処理対象のスライスのsao_luma_flag、sao_chroma_flagが0の場合(SAO処理を実行しない場合)はSAOパラメータを符号化しない(S188、S193)。また、sao_offset_luma/cb/crの符号化では4カテゴリのオフセット値を符号化する。なお、sao_type_idx_chromaとsao_eo_class_chromaはCbとCrで共通の値を使用し、sao_offset_cbはCb、sao_offset_crはCrのSAOで使用する。
<1-10.効果>
以上、従来は、2つのスライス境界の両方が参照可能あるいは参照禁止に設定されていたのに対し、本実施の形態の画像符号化装置では、他のスライス境界には影響を与えることなく、一方のスライス境界のみ参照を禁止にすることができる。これにより、高画質とスライス間依存の排除を両立することができる。
以上、従来は、2つのスライス境界の両方が参照可能あるいは参照禁止に設定されていたのに対し、本実施の形態の画像符号化装置では、他のスライス境界には影響を与えることなく、一方のスライス境界のみ参照を禁止にすることができる。これにより、高画質とスライス間依存の排除を両立することができる。
より具体的には、処理対象スライスの上境界および左境界の参照の許可および禁止は処理対象スライスのslice_loop_filter_across_slices_enabled_flagによって判断し、下境界および右境界の参照の許可および禁止は処理対象スライスの下のスライス、右のスライスのslice_loop_filter_across_slices_enabled_flagによって判断するようにしている。こうすることにより、上境界および左境界の参照を禁止したい場合は、処理対象スライスのslice_loop_filter_across_slices_enabled_flagを0にし、下境界および右境界の参照を許可したい場合は、下のスライス、右のスライスのslice_loop_filter_across_slices_enabled_flagを1に設定することによって可能となる。
図11を用いて説明すると、スライス1とスライス2の境界の参照を禁止し、スライス2とスライス3の境界の参照を許可したい場合は、スライス2のslice_loop_filter_across_slices_enabled_flagを0に、スライス3のslice_loop_filter_across_slices_enabled_flagを1に設定することによって実現できるようになった。こうすることにより、参照禁止以外の境界では全てSAOを実施することが可能となり、画質向上に繋がる。
また、slice_loop_filter_across_slices_enabled_flagの対象をスライスの上境界、左境界とし、ピクチャ内の先頭スライスのslice_loop_filter_across_slices_enabled_flagを符号化しないことによって符号量を削減している。ピクチャ内の先頭スライスにおいては上境界、左境界は必ずピクチャ端であるため、必ず境界参照は禁止とし、slice_loop_filter_across_slices_enabled_flagを不要としている。
また、本実施の形態では、先頭スライス以外のスライス且つピクチャのloop_filter_across_slices_enabled_flagが1の場合はDBFオン/オフ、SAOオン/オフに関わらず必ずslice_loop_filter_across_slices_enabled_flagを符号化している。これにより、境界参照禁止設定のフレキシビリティを向上させている。なお、従来はDBF、SAOが共にオフの場合はslice_loop_filter_across_slices_enabled_flagを符号化せず、loop_filter_across_slices_enabled_flagの値をコピーして使用するようになっている。
しかし、処理対象スライスのDBF、SAOがオフの場合でも上スライスや左スライスのSAO処理で処理対象スライスとの境界の参照を許可または禁止したいケースは有り得る。スライス間の依存を削除して並列処理を行いたいケースである。本実施の形態によって常にslice_loop_filter_across_slices_enabled_flagを指定できるようになり、前記のような両方のケースに対応可能となる。
また、従来のように、loop_filter_across_slices_enabled_flagの値をコピーして使用する場合、loop_filter_across_slices_enabled_flagは、ピクチャ内に含まれるスライスの何れかのslice_loop_filter_across_slices_enabled_flagが1の場合は、1が設定される。そうすると、処理対象スライスのDBFおよびSAOの両方がオフであるために、フラグが符号化されない、つまり、フラグの値が0であるにも拘わらず、コピーされる値は1となり、矛盾が生じる場合があるという問題がある。本実施の形態では、DBFオン/オフ、SAOオン/オフに関わらず必ずslice_loop_filter_across_slices_enabled_flagを符号化するので、当該問題が生じるのを回避可能になる。
なお、本実施の形態では、ピクチャ内の全符号ブロックの復号ブロックを生成した後にDBF、SAOを実施しているが、その限りではなく、DBF、SAOに使用する画素やパラメータが整い次第、DBF、SAOの実行を開始してもよく、全ての復号ブロックが生成される前に実行を開始しても構わない。
また、DBF、SAOのオン/オフ決定を復号ブロックの生成より前に実施しているが、復号ブロックの生成後に復号ブロックの画素値や入力画像との差分等を用いて決定するようにしてもよい。
また、ピクチャ内先頭スライスの時はslice_loop_filter_across_slices_enabled_flagを符号化しないようにしているが、必ずそうしなければならないわけでなく、先頭スライスかどうかを判定する処理の処理量を減らしたいシステムの場合は、先頭スライスの場合でもslice_loop_filter_across_slices_enabled_flagを符号化してもよい。
更に、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをダウンロード等により配布してもよい。また、このソフトウェアをCD-ROM等の記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。
(実施の形態2)
実施の形態2の画像復号装置200A(200)について、図12~図19を基に説明する。
実施の形態2の画像復号装置200A(200)について、図12~図19を基に説明する。
<2-1.全体構成>
図12は、本実施の形態における画像復号装置の構成の一例を示すブロック図である。
図12は、本実施の形態における画像復号装置の構成の一例を示すブロック図である。
図12に示すように、本実施の形態の画像復号装置200Aは、ピクチャデータ復号部201、逆変換部202、加算部203、フレームメモリ204、DBF処理部205、SAO処理部206、および、動き補償部207を備えている。
各部の詳細な動作については、1-2で述べる。
<2-2.動作(全体)>
次に、図13を参照しつつ、本実施の形態の画像復号方法の全体フローについて説明する。図13は、本実施の形態における画像復号方法の処理手順の一例を示すフローチャートである。
次に、図13を参照しつつ、本実施の形態の画像復号方法の全体フローについて説明する。図13は、本実施の形態における画像復号方法の処理手順の一例を示すフローチャートである。
まず、ピクチャデータ復号部201は、符号列からピクチャデータを復号する(S201)。詳細は後述する。
次に、動き補償部207は、ピクチャデータから復号した予測情報と後述するフレームメモリ204に記憶された前回の処理対象符号ブロックの復号ブロックから予測ブロックを生成する(S202)。逆変換部202は、ピクチャデータから復号した処理対象符号ブロックの変換係数を逆周波数変換する(S203)。その後、加算部203は、逆周波数変換された処理対象符号ブロックと予測ブロックと加算して復号ブロックを生成し、フレームメモリ204に記憶する(S204)。
そして、画像復号装置200Aは、次の符号ブロックを処理対象符号ブロックとし(S205)、スライス内の全符号ブロックの処理が完了するまでS202~S206を繰り返す(S206)。また、画像復号装置200Aは、1つのスライス内の全ての符号ブロックの処理が完了すると(S206のYes)、次のスライスを処理対象とし(S207)、ピクチャ内の全スライスの処理が完了するまでS202~S208を繰り返す(S208)。なお、符号ブロックおよびスライスはピクチャの左上から右下へラスタスキャンの順で処理対象に設定する。
以降のS115~S125でDBF処理、および、SAO処理を実施するが、処理手順は実施の形態1と同じであるため説明を省略する。ただし、処理に使用するdbf_flag、sao_luma_flag、sao_chroma_flagは、ピクチャデータ復号部201で復号したデータを使用する。
<2-3.SAO処理部の構成>
図14は、SAO処理部206の内部構成の一例を示すブロック図である。
図14は、SAO処理部206の内部構成の一例を示すブロック図である。
図14に示すように、SAO処理部206は、スライス境界参照判定部206a、および、SAOオフセット加算部206bを備えている。本実施の形態のSAO処理部206は、実施の形態1のSAO処理部110とは、SAOパラメータ決定部110aを備えない点で異なっている。
各部の詳細な動作については、2-4で述べる。
<2-4.動作(SAO処理)>
図15は、本実施の形態のSAO処理の処理手順の一例を示すフローチャートである。なお、図15に示すSAO処理のフローは、実施の形態1のSAO処理のフロー(図4)とは、SAOパラメータ決定部110aが処理するsao_type_idx_luma/chromaの決定、sao_eo_class_luma/chromaの決定、sao_offset_luma/cb/crの決定に関する処理が無い点で異なるが、その他の処理は同じであるため、説明を省略する。本実施の形態では、それらのパラメータはピクチャデータ復号部201で復号したデータを使用する。
図15は、本実施の形態のSAO処理の処理手順の一例を示すフローチャートである。なお、図15に示すSAO処理のフローは、実施の形態1のSAO処理のフロー(図4)とは、SAOパラメータ決定部110aが処理するsao_type_idx_luma/chromaの決定、sao_eo_class_luma/chromaの決定、sao_offset_luma/cb/crの決定に関する処理が無い点で異なるが、その他の処理は同じであるため、説明を省略する。本実施の形態では、それらのパラメータはピクチャデータ復号部201で復号したデータを使用する。
また、SAOオフセット加算処理に関しても実施の形態1(図5)と同じであるため、説明を省略する。
<2-5.ピクチャデータ復号部の構成>
図16は、ピクチャデータ復号部201の内部構成の一例を示すブロック図である。
図16は、ピクチャデータ復号部201の内部構成の一例を示すブロック図である。
図16に示すように、ピクチャデータ復号部201は、変換係数復号部201a、予測情報復号部201b、SAOパラメータ復号部201c、スライス境界参照復号部201d、および、DBF_SAO実行フラグ復号部201eを備えている。
<2-6.動作(ピクチャデータ復号)>
次に、図17を参照しつつ、ピクチャデータの復号フローについて説明する。図17は、ピクチャデータ復号の処理手順の一例を示すフローチャートである。
次に、図17を参照しつつ、ピクチャデータの復号フローについて説明する。図17は、ピクチャデータ復号の処理手順の一例を示すフローチャートである。
まず、スライス境界参照復号部201dは、loop_filter_across_slices_enabled_flagを復号する(S211)。
次に、DBF_SAO実行フラグ復号部201eは、dbf_flag、sao_luma_flag、sao_chroma_flagを復号する(S212)。
次に、スライス境界参照復号部201d(取得部の一例)は、slice_loop_filter_across_slices_enabled_flagを復号する(S213)。詳細は後述する。
次に、sao_luma_flagおよびsao_chroma_flagの両方が0ではない場合(S214のNo)、ピクチャデータ復号部201は、SAOパラメータ復号部201cによってSAOパラメータを復号し(S215)、予測情報復号部201bによって予測情報を復号し(S216)、変換係数復号部201aによって変換係数を復号する(S217)。なお、sao_luma_flag、sao_chroma_flagが共に0の場合は(S214のYes)、SAOは実施しないため、ピクチャデータ復号部201は、SAOパラメータを復号しない。また、予測情報は予測ブロックを生成するための情報であり、画面間予測の動きベクトルや画面内予測の予測方向等の情報である。
そして、次の符号ブロックを処理対象とし(S218)、スライス内の全符号ブロックの処理が完了するまでS104~S109を繰り返す(S219)。また、1つのスライス内の全ての符号ブロックの処理が完了すると(S219のYes)、次のスライスを処理対象とし(S220)、ピクチャ内の全スライスの処理が完了するまでS102~S111を繰り返す(S111)。
<2-7.動作(スライス境界参照許可フラグ復号)>
図18は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。なお、図18に示すスライス境界参照許可フラグの復号フローは、実施の形態1におけるスライス境界参照許可フラグの復号フロー(図8)のうち、S174以外の処理については同じであるため、説明を省略する。
図18は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。なお、図18に示すスライス境界参照許可フラグの復号フローは、実施の形態1におけるスライス境界参照許可フラグの復号フロー(図8)のうち、S174以外の処理については同じであるため、説明を省略する。
S222(図8のS174に対応)では、スライス境界参照復号部201dは、ピクチャデータから、slice_loop_filter_across_slices_enabled_flagを復号する。
<2-8.動作(SAOパラメータ復号)>
次に、図19を参照しつつ、SAOパラメータ復号フローについて説明する。図19は、SAOパラメータの復号の処理手順の一例を示すフローチャートである。
次に、図19を参照しつつ、SAOパラメータ復号フローについて説明する。図19は、SAOパラメータの復号の処理手順の一例を示すフローチャートである。
まず、SAOパラメータ復号部201cは、ピクチャデータから、sao_merge_left_flagとsao_merge_up_flagとを復号する(S231~S240)。
具体的には、SAOパラメータ復号部201cは、sao_merge_left_flagを0に初期化し(S231)、さらに、sao_merge_up_flagを0に初期化する(S232)。
SAOパラメータ復号部201cは、左符号ブロックが処理対象符号ブロックと同じスライスに属する場合(S233のYes)、sao_merge_left_flagを復号する(S234)。
SAOパラメータ復号部201cは、sao_merge_left_flagが1ではない場合(S235のNo)、上符号ブロックが処理対象符号ブロックと同じスライスに属するか否かを判定する(S236)。SAOパラメータ復号部201cは、上符号ブロックが処理対象符号ブロックと同じスライスに属する場合(S236)、sao_merge_up_flagを復号する(S237)。さらに、SAOパラメータ復号部201cは、sao_merge_up_flagが1の場合は(S238のYes)、上符号ブロックのSAOパラメータを処理対象符号ブロックのSAOパラメータとしてコピーする(S239)。
また、SAOパラメータ復号部201cは、sao_merge_left_flagが1である場合(S235のYes)、左符号ブロックのSAOパラメータを処理対象符号ブロックのSAOパラメータとしてコピーする(S240)。
SAOパラメータ復号部201cは、sao_merge_left_flagおよびsao_merge_up_flagの何れか一方が1である場合(S241のYes)、処理を終了する。ここで、sao_merge_left_flagおよびsao_merge_up_flagは、処理対象符号ブロックが左符号ブロックまたは上符号ブロックと同じSAOパラメータを使う場合に1となるフラグである。このため、同じSAOパラメータを使用する場合はこのフラグのみを復号し、SAOパラメータを復号しない。よって、この2フラグのいずれかが1の場合は左符号ブロックまたは上符号ブロックのSAOパラメータをコピーし(S239、S240)、S242以降のSAOパラメータの復号は行わず、処理を終了する(S241)。なお、SAOパラメータ復号部201cは、左符号ブロックまたは上符号ブロックが別スライスの場合は、本フラグを復号せず、必ずSAOパラメータを復号する(S233、S236)。また、sao_merge_left_flagとsao_merge_up_flagの両方が1になることはない。このため、SAOパラメータ復号部201cは、sao_merge_left_flagが1の場合はsao_merge_left_flagのみを復号し、sao_merge_up_flagは復号しない(S235)。
次に、SAOパラメータ復号部201cは、SAOオンフラグ(sao_type_idx_luma/chroma)、SAOオフセット値(sao_offset_luma/cb/cr)、SAO参照画素位置タイプ(sao_eo_class_luma/chroma)を復号する(S113~S123)。
具体的には、SAOパラメータ復号部201cは、sao_merge_left_flagおよびsao_merge_up_flagの両方が0である場合(S241のNo)、処理対象スライスのsao_luma_flagが1であるか否かを判定する(S242)。
SAOパラメータ復号部201cは、処理対象スライスのsao_luma_flagが1である場合(S242のYes)、輝度のSAOオンフラグであるsao_type_idx_lumaを復号する(S243)。
SAOパラメータ復号部201cは、復号したsao_type_idx_lumaが0ではない場合(S244のNo)、4つのカテゴリのsao_offset_lumaと(S245)、sao_eo_class_lumaとを復号する(S246)。
SAOパラメータ復号部201cは、SAO Lumaがオフである場合(S242のNo)、あるいは、処理対象符号ブロックのSAO Lumaがオンである場合(S244のYes)、あるいは、sao_eo_class_lumaの復号(S246)後に、S247に移行する。
SAOパラメータ復号部201cは、処理対象スライスのsao_chroma_flagが1である場合(S247のYes)、色差のSAOオンフラグであるsao_type_idx_chromaを復号する(S248)。
SAOパラメータ復号部201cは、復号したsao_type_idx_chromaが0ではない場合(S249のNo)、4つのカテゴリのsao_offset_cbと(S250)、sao_eo_class_chromaと(S251)、4つのカテゴリのsao_offset_crと(S252)とを復号する。
つまり、sao_type_idx_luma/chromaは1の時にSAO処理を実行することを示し、0の場合はSAOを実行しないことを示すフラグである。SAO処理を実行しない場合はsao_offset_luma/cb/cr、sao_eo_class_luma/chromaを復号しない(S244、S249)。また、処理対象スライスのsao_luma_flag、sao_chroma_flagが0の場合(SAO処理を実行しない場合)はSAOパラメータを復号しない(S242、S247)。また、sao_offset_luma/cb/crの復号では4カテゴリのオフセット値を復号する。なお、sao_type_idx_chromaとsao_eo_class_chromaはCbとCrで共通の値を使用し、sao_offset_cbはCb、sao_offset_crはCrのSAOで使用する。
<2-9.効果>
本実施の形態の画像復号装置200Aは、実施の形態1の画像符号化装置100Aで符号化した符号列を復号することが出来、実施の形態1と同じ効果を得ることができる。
本実施の形態の画像復号装置200Aは、実施の形態1の画像符号化装置100Aで符号化した符号列を復号することが出来、実施の形態1と同じ効果を得ることができる。
(実施の形態3)
実施の形態3の画像符号化装置100B(100)について、図20~図22を基に説明する。
実施の形態3の画像符号化装置100B(100)について、図20~図22を基に説明する。
<3-1.全体構成>
図20は、本実施の形態における画像符号化装置の構成の一例を示すブロック図である。
図20は、本実施の形態における画像符号化装置の構成の一例を示すブロック図である。
図20に示すように、本実施の形態の画像符号化装置100Bは、スライス分割部101、符号ブロック分割部102、減算部103、変換部104、ピクチャデータ符号化部105、逆変換部106、加算部107、フレームメモリ、DBF処理部109、SAO処理部110、予測部111、DBF_SAO処理決定部120、および、スライス境界参照決定部130を備えている。
本実施の形態の画像符号化装置100Bは、実施の形態1(図1)の画像符号化装置100Aとは、DBF_SAO処理決定部120が、処理の結果をスライス境界参照決定部130に出力している点で異なる。
<3-2.動作(全体)>
図21は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。図21に示す本実施の形態の画像符号化方法の全体フローは、実施の形態1の画像符号化方法の全体フロー(図2)とは、スライス境界参照決定部130で行うS301、S302のみ異なるため、その部分に関して説明する。
図21は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。図21に示す本実施の形態の画像符号化方法の全体フローは、実施の形態1の画像符号化方法の全体フロー(図2)とは、スライス境界参照決定部130で行うS301、S302のみ異なるため、その部分に関して説明する。
S301は、S103の後に実行される。S103では、図2に示すように、処理対象スライスのDBF、SAO Luma、SAO Cromaのオンまたはオフを設定している。
スライス境界参照決定部130は、処理対象スライスのDBF、SAOが共にオフではない場合は(S301のNo)、実施の形態1と同様に、slice_loop_filter_across_slices_enabled_flagの決定を行う(S104)。
これに対し、スライス境界参照決定部130は、処理対象スライスのDBF、SAOが共にオフの場合は(S301のYes)、slice_loop_filter_across_slices_enabled_flagの決定処理(S104)を行わず、0(境界参照を禁止)に設定する(S302)。つまり、DBF、SAOが共にオフの場合はそのスライスの上境界、左境界を跨いだ画素参照を常に禁止する。
<3-3.SAO処理部の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ符号化部の構成、ピクチャデータの符号化フロー>
本実施の形態のSAO処理部の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ符号化部の構成、ピクチャデータの符号化フローは、実施の形態1のSAO処理部の構成(図3)、SAO処理のフロー(図4)、SAOオフセット加算処理のフロー(図5)、ピクチャデータ符号化部の構成(図6)、ピクチャデータの符号化フロー(図7)と同じであるため、説明を省略する。
本実施の形態のSAO処理部の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ符号化部の構成、ピクチャデータの符号化フローは、実施の形態1のSAO処理部の構成(図3)、SAO処理のフロー(図4)、SAOオフセット加算処理のフロー(図5)、ピクチャデータ符号化部の構成(図6)、ピクチャデータの符号化フロー(図7)と同じであるため、説明を省略する。
<3-4.動作(スライス境界参照許可フラグ符号化)>
次に、図22を参照しつつ、スライス境界参照許可フラグの符号化フローについて説明する。図22は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの符号化フローは、実施の形態1とは、スライス境界参照符号化部105dで行うS303のみ異なるため、その部分に関して説明する。
次に、図22を参照しつつ、スライス境界参照許可フラグの符号化フローについて説明する。図22は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの符号化フローは、実施の形態1とは、スライス境界参照符号化部105dで行うS303のみ異なるため、その部分に関して説明する。
S303は、図8のS173において、loop_filter_across_slices_enabled_flagが1であると判定された場合に実行される(S173のYes)。
スライス境界参照符号化部105dは、処理対象スライスのDBF、SAOが共にオフではない場合は(S303のNo)、実施の形態1と同様に、slice_loop_filter_across_slices_enabled_flagを符号化する(S174)。
これに対し、スライス境界参照符号化部105dは、処理対象スライスのDBF、SAOが共にオフの場合は(S303のYes)、slice_loop_filter_across_slices_enabled_flagを符号化せず、常に0(境界参照を禁止)にするようにしている(S175)。
なお、本実施の形態で符号化した符号列を復号する画像復号装置200B(後述する実施の形態4を参照)側でもDBF、SAOが共にオフの場合はslice_loop_filter_across_slices_enabled_flagを復号せずに常に0として扱うことによって、正常に復号することができる。
<3-5.動作(SAOパラメータ符号化)>
本実施の形態のSAOパラメータの符号化フローは、実施の形態1のSAOパラメータの符号化フロー(図9)と同じであるため、説明を省略する。
本実施の形態のSAOパラメータの符号化フローは、実施の形態1のSAOパラメータの符号化フロー(図9)と同じであるため、説明を省略する。
<3-6.効果>
以上、本実施の形態によれば、DBF、SAOが共にオフの場合にslice_loop_filter_across_slices_enabled_flagを符号化せずに常に0(境界参照を禁止)とすることにより、符号量を削減しつつ、高画質化を実現できる。言い換えると、本実施の形態では、DBFおよびSAOが共にオフの場合には、slice_loop_filter_across_slices_enabled_flagを符号列に含めないため、符号量を削減できる。また、復号側では、DBFおよびSAOが共にオフの場合は、slice_loop_filter_across_slices_enabled_flagが0であると分かるので、正常に復号することができる。
以上、本実施の形態によれば、DBF、SAOが共にオフの場合にslice_loop_filter_across_slices_enabled_flagを符号化せずに常に0(境界参照を禁止)とすることにより、符号量を削減しつつ、高画質化を実現できる。言い換えると、本実施の形態では、DBFおよびSAOが共にオフの場合には、slice_loop_filter_across_slices_enabled_flagを符号列に含めないため、符号量を削減できる。また、復号側では、DBFおよびSAOが共にオフの場合は、slice_loop_filter_across_slices_enabled_flagが0であると分かるので、正常に復号することができる。
より具体的には、本実施の形態ではslice_loop_filter_across_slices_enabled_flagはスライスの上境界、左境界の画素参照を対象としており、処理対象スライスの上スライス、左スライスのSAOで処理対象スライスの画素を参照してよいかどうかを処理対象スライスのslice_loop_filter_across_slices_enabled_flagによって判断する。処理対象スライスのDBF、SAOがオフの場合にslice_loop_filter_across_slices_enabled_flagを常に0にすることにより、上スライス、左スライスのSAOは処理対象スライスの画素を常に参照できないことになる。例えば図11では、スライス2でDBF、SAOがオフの場合、スライス1のSAOはスライス2の画素を参照できない。上スライス、左スライスでSAOがオンであり、処理対象スライスでDBF、SAOがオフの場合にこのようなケースとなるが、一般的にSAOがオンになるスライスとオフになるスライスとでは画像のタイプが異なる。例えば、ピクチャの上半分がテレビ映像、下半分がデータ放送(テキスト画像)である場合、ピクチャの上半分のスライスはSAOオン、下半分のスライスはSAOオフとする場合がある。このような場合、SAOオンのスライスからSAOオフのスライス(別タイプの画像)の画素を参照してSAOを実施すると、SAOのカテゴリ分けがうまく機能せず、画質劣化に繋がる可能性がある。本実施の形態では、DBF、SAOオフの場合はフラグを符号化せず、常に上スライス、左スライス(別タイプの画像)からの画素参照を禁止することによって符号量を削減しつつ、画質を向上させている。
(実施の形態4)
実施の形態4の画像復号装置200B(200)について、図23を基に説明する。
実施の形態4の画像復号装置200B(200)について、図23を基に説明する。
<4-1.全体構成、全体フロー、SAO処理部の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ復号部の構成、ピクチャデータの復号フロー>
本実施の形態の画像復号装置200Bの全体構成、全体フロー、SAO処理部206の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ復号部201の構成、ピクチャデータの復号フローは、実施の形態2の全体構成(図12)、全体フロー(図13)、SAO処理部の構成(図14)、SAO処理のフロー(図15)、SAOオフセット加算処理のフロー(図25)、ピクチャデータ復号部の構成(図16)、ピクチャデータの復号フロー(図17)と同じであるため、説明を省略する。
本実施の形態の画像復号装置200Bの全体構成、全体フロー、SAO処理部206の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ復号部201の構成、ピクチャデータの復号フローは、実施の形態2の全体構成(図12)、全体フロー(図13)、SAO処理部の構成(図14)、SAO処理のフロー(図15)、SAOオフセット加算処理のフロー(図25)、ピクチャデータ復号部の構成(図16)、ピクチャデータの復号フロー(図17)と同じであるため、説明を省略する。
<4-2.動作(スライス境界参照許可フラグ復号)>
次に、図23を参照しつつ、スライス境界参照許可フラグの復号フローについて説明する。図23は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。図23に示す本実施の形態のスライス境界参照許可フラグの復号フローは、図18に示す実施の形態2のスライス境界参照許可フラグの復号フローとはS401のみ異なるため、その部分に関して説明する。
次に、図23を参照しつつ、スライス境界参照許可フラグの復号フローについて説明する。図23は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。図23に示す本実施の形態のスライス境界参照許可フラグの復号フローは、図18に示す実施の形態2のスライス境界参照許可フラグの復号フローとはS401のみ異なるため、その部分に関して説明する。
S401は、ステップS173において、loop_filter_across_slices_enabled_flagが1であると判定された場合に実行される。
スライス境界参照復号部201dは、処理対象スライスのDBF、SAOが共にオフの場合は(S401のYes)、slice_loop_filter_across_slices_enabled_flagを復号せず、常に0(境界参照を禁止)にするようにしている。
スライス境界参照復号部201dは、処理対象スライスのDBF、SAOが共にオフではない場合は(S401のNo)、slice_loop_filter_across_slices_enabled_flagを復号する(S222)。
<4-3.動作(SAOパラメータ復号)>
本実施の形態のSAOパラメータの復号フローは、実施の形態2のSAOパラメータの復号フロー(図19)と同じであるため、説明を省略する。
本実施の形態のSAOパラメータの復号フローは、実施の形態2のSAOパラメータの復号フロー(図19)と同じであるため、説明を省略する。
<4-4.効果>
実施の形態3で符号化した符号列を復号することが出来、実施の形態3と同じ効果を得ることができる。
実施の形態3で符号化した符号列を復号することが出来、実施の形態3と同じ効果を得ることができる。
(実施の形態5)
実施の形態5の画像符号化装置100C(100)について、図24~図28を基に説明する。
実施の形態5の画像符号化装置100C(100)について、図24~図28を基に説明する。
<5-1.全体構成>
図24は、本実施の形態における画像符号化装置の構成の一例を示すブロック図である。
図24は、本実施の形態における画像符号化装置の構成の一例を示すブロック図である。
図24に示すように、本実施の形態の画像符号化装置100Cは、スライス分割部101、符号ブロック分割部102、減算部103、変換部104、ピクチャデータ符号化部105、逆変換部106、加算部107、フレームメモリ、DBF処理部109、SAO処理部110、予測部111、DBF_SAO処理決定部120、スライス境界参照決定部130、および、SAOダミーフラグ設定部140を備えている。
本実施の形態の画像符号化装置100Cは、実施の形態1(図1)の画像符号化装置100Aとは、新たにSAOダミーフラグ設定部140が設けられている点で異なる。
<5-2.動作(全体)>
図25は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。図25に示す本実施の形態の画像符号化方法の全体フローは、実施の形態1の画像符号化方法の全体フロー(図2)とは、SAOダミーフラグ設定部140で行うS501~S505のみ異なるため、その部分に関して説明する。
図25は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。図25に示す本実施の形態の画像符号化方法の全体フローは、実施の形態1の画像符号化方法の全体フロー(図2)とは、SAOダミーフラグ設定部140で行うS501~S505のみ異なるため、その部分に関して説明する。
S501は、S114のloop_filter_across_slices_enabled_flagの設定後に実行される。
SAOダミーフラグ設定部140は、先ず、SAOダミーフラグを0に初期化する(S501)。SAOダミーフラグ設定部140は、処理対象スライスのDBF、SAOが共にオフの場合(S502のYes)、且つ、slice_loop_filter_across_slices_enabled_flagとloop_filter_across_slices_enabled_flagとが異なる場合は(S503のYes)、強制的に処理対象スライスのsao_luma_flagを1(LumaのSAOをオン)に設定すると共に、SAOダミーフラグを1に設定するようにしている。
<5-3.SAO処理部の構成>
図26は、SAO処理部の内部構成を示すブロック図である。本実施の形態のSAO処理部110が、実施の形態1(図3)のSAO処理部110と異なる点は、SAOダミーフラグがSAOパラメータ決定部110aに入力されている点である。
図26は、SAO処理部の内部構成を示すブロック図である。本実施の形態のSAO処理部110が、実施の形態1(図3)のSAO処理部110と異なる点は、SAOダミーフラグがSAOパラメータ決定部110aに入力されている点である。
<5-4.動作(SAO処理)>
次に、図27を参照しつつ、SAO処理のフローについて説明する。図27は、SAO処理(全体)の処理手順の一例を示すフローチャートである。本実施の形態のSAO処理のフローは、実施の形態1(図4)のSAO処理のフローとは、S511、S512のみ異なるため、その部分に関して説明する。
次に、図27を参照しつつ、SAO処理のフローについて説明する。図27は、SAO処理(全体)の処理手順の一例を示すフローチャートである。本実施の形態のSAO処理のフローは、実施の形態1(図4)のSAO処理のフローとは、S511、S512のみ異なるため、その部分に関して説明する。
S501は、SAO処理のフローの開始直後に実行される。
SAOパラメータ決定部110aは、SAOダミーフラグが1ではない場合(S511のNo)、実施の形態1と同様に、SAOオンまたはSAOオフを決定する決定処理を行う(S131)。
SAOパラメータ決定部110aは、SAOダミーフラグが1の場合は(S511のYes)、SAOオンまたはSAOオフの決定処理を行わず、処理対象符号ブロックは必ずSAOオフ(sao_type_idx_luma/chromaに0設定)になるようにしている(S512)。
<5-5.SAOオフセット加算処理のフロー、ピクチャデータ符号化部の構成、ピクチャデータの符号化フロー>
本実施の形態のSAOオフセット加算処理のフロー、ピクチャデータ符号化部105の構成、ピクチャデータの符号化フローは、実施の形態1のSAOオフセット加算処理のフロー(図5)、ピクチャデータ符号化部の構成(図6)、ピクチャデータの符号化フロー(図7)と同じであるため、説明を省略する。
本実施の形態のSAOオフセット加算処理のフロー、ピクチャデータ符号化部105の構成、ピクチャデータの符号化フローは、実施の形態1のSAOオフセット加算処理のフロー(図5)、ピクチャデータ符号化部の構成(図6)、ピクチャデータの符号化フロー(図7)と同じであるため、説明を省略する。
<5-6.動作(スライス境界参照許可フラグ符号化)>
次に、図28を参照しつつ、スライス境界参照許可フラグの符号化フローについて説明する。図28は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの符号化フローは、実施の形態3(図22)とは、スライス境界参照符号化部105dで行うS521のみ異なるため、その部分に関して説明する。
次に、図28を参照しつつ、スライス境界参照許可フラグの符号化フローについて説明する。図28は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの符号化フローは、実施の形態3(図22)とは、スライス境界参照符号化部105dで行うS521のみ異なるため、その部分に関して説明する。
スライス境界参照符号化部105dは、処理対象スライスがピクチャ内の先頭スライスである場合(S172のYes)に、slice_loop_filter_across_slices_enabled_flagを0に設定する(S175)。
スライス境界参照符号化部105dは、処理対象スライスがピクチャ内の先頭スライスではない場合(S172のNo)、S173に移行する。
スライス境界参照符号化部105dは、loop_filter_across_slices_enabled_flagが1であり(S173のYes)、且つ、DBFおよびSAOが共にオフではない場合(S303のNo)は、slice_loop_filter_across_slices_enabled_flagを符号化する(S174)。
スライス境界参照符号化部105dは、loop_filter_across_slices_enabled_flagが0の場合(S173のNo)、または、DBFおよびSAOが共にオフの場合は(S303のYes)、slice_loop_filter_across_slices_enabled_flagを符号化せず、loop_filter_across_slices_enabled_flagの値をコピーするようにしている(S521)。
本実施の形態で符号化した符号列を復号する画像復号装置200C(後述する実施の形態6を参照)側でもloop_filter_across_slices_enabled_flagが0の場合、または、DBFおよびSAOが共にオフの場合はslice_loop_filter_across_slices_enabled_flagを復号せずにloop_filter_across_slices_enabled_flagの値を使うことによって、正常に復号することができる。
<5-7.動作(SAOパラメータ符号化)>
本実施の形態のSAOパラメータの符号化フローは、実施の形態1のSAOパラメータの符号化フロー(図9)と同じであるため、説明を省略する。
本実施の形態のSAOパラメータの符号化フローは、実施の形態1のSAOパラメータの符号化フロー(図9)と同じであるため、説明を省略する。
<5-8.効果>
以上、本実施の形態によれば、DBFおよびSAOが共にオフの場合でもスライス境界参照フラグを符号化することができ、フレキシビリティを向上させている。より具体的には、DBFおよびSAOが共にオフの場合、通常時はslice_loop_filter_across_slices_enabled_flagを符号化せず、loop_filter_across_slices_enabled_flagをコピーして使用することにより、符号量を削減している。これに対し、loop_filter_across_slices_enabled_flagと違う値を使用したい場合は、スライスのsao_luma_flagを強制的に1(SAO Lumaオン)に設定し、slice_loop_filter_across_slices_enabled_flagを符号化するようにする。
以上、本実施の形態によれば、DBFおよびSAOが共にオフの場合でもスライス境界参照フラグを符号化することができ、フレキシビリティを向上させている。より具体的には、DBFおよびSAOが共にオフの場合、通常時はslice_loop_filter_across_slices_enabled_flagを符号化せず、loop_filter_across_slices_enabled_flagをコピーして使用することにより、符号量を削減している。これに対し、loop_filter_across_slices_enabled_flagと違う値を使用したい場合は、スライスのsao_luma_flagを強制的に1(SAO Lumaオン)に設定し、slice_loop_filter_across_slices_enabled_flagを符号化するようにする。
ここで、スライスのsao_luma_flagは1(オン)に設定されるが、符号ブロック毎に設定するsao_type_idx_lumaを全て0(オフ)に設定することにより、実際は、スライス単位でSAOオフになる場合と同じ動作になるようにする。つまり、スライス単位ではSAOオン設定だが、符号ブロック単位ではSAOオフ設定となり、実際はスライス単位でSAOオフの動きとなる。こうすることによって、SAOオン/オフおよびslice_loop_filter_across_slices_enabled_flagの値を自由に設定することが可能となり、フレキシビリティを向上させることができる。
なお、本実施の形態では、スライスのLumaのSAO(sao_luma_flag)を強制的にオン(1を設定)にしているが、ChromaのSAO(sao_chroma_flag)を強制的にオン(1を設定)にしてもよい。その場合、符号ブロックのsao_type_idx_chromaをオフ(0に設定)にすることは言うまでもない。
(実施の形態6)
実施の形態6の画像復号装置200C(200)について、図29を基に説明する。
実施の形態6の画像復号装置200C(200)について、図29を基に説明する。
<6-1.全体構成、全体フロー、SAO処理部の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ復号部の構成、ピクチャデータの復号フロー>
本実施の形態の画像復号装置200Cの全体構成、全体フロー、SAO処理部206の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ復号部201の構成、ピクチャデータの復号フローは、実施の形態2の全体構成(図12)、全体フロー(図13)、SAO処理部206の構成(図14)、SAO処理のフロー(図15)、SAOオフセット加算処理のフロー(図5)、ピクチャデータ復号部201の構成(図16)、ピクチャデータの復号フロー(図17)と同じであるため、説明を省略する。
本実施の形態の画像復号装置200Cの全体構成、全体フロー、SAO処理部206の構成、SAO処理のフロー、SAOオフセット加算処理のフロー、ピクチャデータ復号部201の構成、ピクチャデータの復号フローは、実施の形態2の全体構成(図12)、全体フロー(図13)、SAO処理部206の構成(図14)、SAO処理のフロー(図15)、SAOオフセット加算処理のフロー(図5)、ピクチャデータ復号部201の構成(図16)、ピクチャデータの復号フロー(図17)と同じであるため、説明を省略する。
<6-2.動作(スライス境界参照許可フラグ復号)>
次に、図29を参照しつつ、スライス境界参照許可フラグ復号フローについて説明する。図29は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの復号フローは、実施の形態4(図23)のスライス境界参照許可フラグの復号フローとはスライス境界参照復号部201dで行うS601のみ異なるため、その部分に関して説明する。
次に、図29を参照しつつ、スライス境界参照許可フラグ復号フローについて説明する。図29は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの復号フローは、実施の形態4(図23)のスライス境界参照許可フラグの復号フローとはスライス境界参照復号部201dで行うS601のみ異なるため、その部分に関して説明する。
スライス境界参照復号部201dは、処理対象スライスがピクチャ内の先頭スライスである場合(S172のYes)に、slice_loop_filter_across_slices_enabled_flagを0に設定する(S175)。
スライス境界参照復号部201dは、処理対象スライスがピクチャ内の先頭スライスではない場合(S172のNo)、S173に移行する。
スライス境界参照復号部201dは、loop_filter_across_slices_enabled_flagが1であり(S173のYes)、且つ、DBFおよびSAOが共にオフではない場合(S401のNo)は、slice_loop_filter_across_slices_enabled_flagを符号化する(S174)。
スライス境界参照復号部201dは、loop_filter_across_slices_enabled_flagが0の場合(S173のNo)、または、DBFおよびSAOが共にオフの場合は(s401のYes)、slice_loop_filter_across_slices_enabled_flagを復号せず、loop_filter_across_slices_enabled_flagの値をコピーするようにしている(S601)。
<6-3.動作(SAOパラメータ復号)>
本実施の形態のSAOパラメータの符号化フローは、実施の形態2のSAOパラメータ符号化フロー(図19)と同じであるため、説明を省略する。
本実施の形態のSAOパラメータの符号化フローは、実施の形態2のSAOパラメータ符号化フロー(図19)と同じであるため、説明を省略する。
<6-4.効果>
実施の形態5で符号化した符号列を復号することが出来、実施の形態5と同じ効果を得ることができる。
実施の形態5で符号化した符号列を復号することが出来、実施の形態5と同じ効果を得ることができる。
(実施の形態7)
実施の形態7の画像符号化装置100D(100)について、図30~図35を基に説明する。
実施の形態7の画像符号化装置100D(100)について、図30~図35を基に説明する。
<7-1.全体構成>
図30は、本実施の形態における画像符号化装置100Dの構成の一例を示すブロック図である。
図30は、本実施の形態における画像符号化装置100Dの構成の一例を示すブロック図である。
図30に示すように、本実施の形態の画像符号化装置100Dは、スライス分割部101、符号ブロック分割部102、減算部103、変換部104、ピクチャデータ符号化部105、逆変換部106、加算部107、フレームメモリ、DBF処理部109、SAO処理部110、予測部111、DBF_SAO処理決定部120、および、スライス境界参照決定部130を備えている。
本実施の形態の画像符号化装置100Dは、実施の形態1(図1)の画像符号化装置100Aとは、スライス境界参照決定部130がSAO処理部110およびピクチャデータ符号化部105に対し、slice_loop_filter_across_slices_enabled_flag(本実施の形態では、第一フラグに相当)に加え、slice_loop_filter_across_br_slices_enabled_flag(本実施の形態では、第二フラグに相当)を出力している点で異なる。
<7-2.動作(全体)>
図31は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。図31に示す本実施の形態の画像符号化方法の全体フローは、実施の形態1の画像符号化方法の全体フロー(図2)とは、スライス境界参照決定部130が、S104に代えてS701を行う点で異なるため、その部分に関して説明する。
図31は、本実施の形態の画像符号化方法の処理手順の一例を示すフローチャートである。図31に示す本実施の形態の画像符号化方法の全体フローは、実施の形態1の画像符号化方法の全体フロー(図2)とは、スライス境界参照決定部130が、S104に代えてS701を行う点で異なるため、その部分に関して説明する。
S701において、スライス境界参照決定部130は、処理対象スライスの上境界および左境界を跨いで別スライスの画素の参照を許可するか禁止するかを決定する。さらに、スライス境界参照決定部130は、参照を許可すると決定した場合は、処理対象スライスのslice_loop_filter_across_slices_enabled_flagを1に設定し、禁止すると決定した場合は、slice_loop_filter_across_slices_enabled_flagを0に設定する。
また、スライス境界参照決定部130は、スライスの下境界および右境界を跨いで別スライスの画素の参照を許可するか禁止するかを決定する。さらに、スライス境界参照決定部130は、参照を許可すると決定した場合は、処理対象スライスのslice_loop_filter_across_br_slices_enabled_flagを1に設定し、禁止すると決定した場合は、slice_loop_filter_across_br_slices_enabled_flagを0に設定する。slice_loop_filter_across_slices_enabled_flag、slice_loop_filter_across_br_slices_enabled_flagはスライス毎に存在する。
<7-3.SAO処理部の構成>
図32は、SAO処理部の内部構成を示すブロック図である。
図32は、SAO処理部の内部構成を示すブロック図である。
図32に示すように、SAO処理部110は、SAOパラメータ決定部110a、スライス境界参照判定部110b、および、SAOオフセット加算部110cを備えている。
本実施の形態のSAO処理部110が、実施の形態1(図3)のSAO処理部110と異なる点は、slice_loop_filter_across_br_slices_enabled_flagがスライス境界参照判定部110bに入力されている点である。
各部の詳細な動作については、7-4で述べる。
<7-4.動作(SAO処理)>
次に、図33を参照しつつ、SAO処理のフローについて説明する。図33は、SAO処理(全体)の処理手順の一例を示すフローチャートである。本実施の形態のSAO処理のフローは、実施の形態1(図4)のSAO処理のフローのS138に代えて、S701を行う点で異なるため、その部分に関して説明する。
次に、図33を参照しつつ、SAO処理のフローについて説明する。図33は、SAO処理(全体)の処理手順の一例を示すフローチャートである。本実施の形態のSAO処理のフローは、実施の形態1(図4)のSAO処理のフローのS138に代えて、S701を行う点で異なるため、その部分に関して説明する。
参照画素が後で処理するスライスであった場合(S136のNo)、スライス境界参照判定部110bは、本処理対象スライスのslice_loop_filter_across_br_slices_enabled_flagによって参照してよいか否かを判定する(S702)。
S702において、スライス境界参照判定部110bは、slice_loop_filter_across_br_slices_enabled_flagが0であった場合は(S702のNo)、参照禁止であるため、SAOを実施しない。こうすることによって、処理対象スライスの上境界および左境界の参照許可はslice_loop_filter_across_slices_enabled_flagによって判断され、下境界および右境界の参照許可はslice_loop_filter_across_br_slices_enabled_flagによって判断されることになる。
図11を用いて説明すると、スライス2のSAOにおいて、スライス1とスライス2の境界はスライス2のslice_loop_filter_across_slices_enabled_flagによって判断され、スライス2とスライス3の境界はスライス2のslice_loop_filter_across_br_slices_enabled_flagによって判断される。
また、SAOオフセット加算処理に関しては実施の形態1(図5)と同じであるため、説明を省略する。
<7-5.ピクチャデータ符号化部の構成>
図34は、ピクチャデータ符号化部の内部構成の一例を示すブロック図である。
図34は、ピクチャデータ符号化部の内部構成の一例を示すブロック図である。
図34に示すように、ピクチャデータ符号化部105は、変換係数符号化部105a、予測情報符号化部105b、SAOパラメータ符号化部105c、スライス境界参照符号化部105d、および、DBF_SAO実行フラグ符号化部105eを備えている。
本実施の形態のピクチャデータ符号化部105は、実施の形態1(図6)のピクチャデータ符号化部105とは、スライス境界参照符号化部105dにslice_loop_filter_across_br_slices_enabled_flagが入力されている点で異なる。
<7-6.動作(ピクチャデータ符号化)>
本実施の形態のピクチャデータの符号化フローは、実施の形態1のピクチャデータの符号化フロー(図7)と同じであるため、説明を省略する。
本実施の形態のピクチャデータの符号化フローは、実施の形態1のピクチャデータの符号化フロー(図7)と同じであるため、説明を省略する。
<7-7.動作(スライス境界参照許可フラグ符号化)>
次に、図35を参照しつつ、スライス境界参照許可フラグの符号化フローについて説明する。図35は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの符号化フローは、実施の形態3(図22)のスライス境界参照許可フラグの符号化フローとは、S711~S714の処理が追加されている点で異なるため、その部分に関して説明する。
次に、図35を参照しつつ、スライス境界参照許可フラグの符号化フローについて説明する。図35は、スライス境界参照許可フラグの符号化の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの符号化フローは、実施の形態3(図22)のスライス境界参照許可フラグの符号化フローとは、S711~S714の処理が追加されている点で異なるため、その部分に関して説明する。
具体的には、slices_loop_filter_across_slices_enabled_flagが符号化または0に設定された後(S172~S175)、スライス境界参照符号化部105dは、S701~S704を実行して、slices_loop_filter_across_br_slices_enabled_flagを符号化または0に設定する(S711~S714)。
具体的には、スライス境界参照符号化部105dは、loop_filter_across_slices_enabled_flagが0の場合(S711のNo)、または、DBFおよびSAOが共にオフの場合は(S712のYes)、slice_loop_filter_across_br_slices_enabled_flagを符号化せず、0を使用するようにしている(S714)。
スライス境界参照符号化部105dは、loop_filter_across_slices_enabled_flagが1の場合(S711のYes)、且つ、DBFおよびSAOが共にオフではない場合は(S712のNo)、slice_loop_filter_across_br_slices_enabled_flagを符号化する(S713)。
本実施の形態で符号化した符号列を復号する画像復号装置200D(後述する実施の形態8を参照)側でもloop_filter_across_slices_enabled_flagが0の場合、または、DBFおよびSAOが共にオフの場合はslice_loop_filter_across_br_slices_enabled_flagを復号せずに0を使うことによって、正常に復号することができる。また、loop_filter_across_slices_enabled_flagが1の場合、且つ、DBFおよびSAOの少なくとも一方がオンの場合はslice_loop_filter_across_br_slices_enabled_flagを復号する。
<7-8.動作(SAOパラメータ符号化)>
本実施の形態のSAOパラメータの符号化フローは、実施の形態1のSAOパラメータの符号化フロー(図9)と同じであるため、説明を省略する。
本実施の形態のSAOパラメータの符号化フローは、実施の形態1のSAOパラメータの符号化フロー(図9)と同じであるため、説明を省略する。
<7-9.効果>
以上、本実施の形態によれば、スライスの下境界、右境界を対象とする新たなスライス境界参照許可フラグ(slice_loop_filter_across_br_slices_enabled_flag)を符号化することによって、1つのスライス境界のみ参照を禁止にすることが出来、他のスライス境界には影響を与えないことによって高画質とスライス間依存の排除を両立することができる。
以上、本実施の形態によれば、スライスの下境界、右境界を対象とする新たなスライス境界参照許可フラグ(slice_loop_filter_across_br_slices_enabled_flag)を符号化することによって、1つのスライス境界のみ参照を禁止にすることが出来、他のスライス境界には影響を与えないことによって高画質とスライス間依存の排除を両立することができる。
図11を用いて説明すると、スライス1とスライス2の境界の参照を禁止し、スライス2とスライス3の境界の参照を許可したい場合はスライス1のslice_loop_filter_across_br_slices_enabled_flagとスライス2のslice_loop_filter_across_slices_enabled_flagを0に、スライス2のslice_loop_filter_across_br_slices_enabled_flagとスライス3のslice_loop_filter_across_slices_enabled_flagを1に設定することによって実現できるようになる。こうすることにより、参照禁止以外の境界では全てSAOを実施することが可能となり、画質向上に繋がる。
また、スライスに含まれる画素が別スライスの画素を参照してよいかという判断が、自身のスライス内のフラグによって判断できるようになり、スライス間の依存関係を減らし、スライス毎を並列処理するシステム等に有益な構造とした。より具体的には、SAOが別スライスの画素を参照してよいかという判断をその参照画素が含まれる別スライスのフラグによって判断するようにしてしまうと、画像復号装置の場合、その別スライスのフラグを復号するまでSAOは処理を開始出来なくなってしまい、別スライスの処理の状況を監視する必要が出てくる。そうなるとスライス毎を並列処理する場合に別スライスの監視処理が必要であったり、待ち時間が発生したりする等のデメリットがある。本実施の形態ではそのデメリットを解消できる。
また、DBFおよびSAOが共にオフの場合はそのスライスのslice_loop_filter_across_slices_enabled_flag、slice_loop_filter_across_br_slices_enabled_flagは別スライスからも使用されることはないため、符号化する必要はなく、符号量を削減することができる。
なお、本実施の形態では、DBFおよびSAOが共にオフの場合やloop_filter_across_slices_enabled_flagが0の場合はslice_loop_filter_across_slices_enabled_flag、slice_loop_filter_across_br_slices_enabled_flagは符号化され、0が使用されているが、これに限るものではない。例えば、フラグを符号化しない場合は、実施の形態5(図28)に示すように、loop_filter_across_slices_enabled_flagの値をコピーして使用するようにしてもよい。
さらに、本実施の形態では、例えば、図11の場合、スライス1の画素が処理対象である場合に、スライス2の画素の参照を許可し、スライス2の画素が処理対象である場合に、スライス1の画素の参照を禁止することが可能になる。言い換えると、1つの境界について、参照方向によって参照の許可と禁止とを別個に設定することが可能になる。本実施の形態では、より柔軟に参照の許可と禁止を設定できることから、画質の向上が期待できる。
(実施の形態8)
実施の形態8の画像復号装置200D(200)について、図36~図40を基に説明する。
実施の形態8の画像復号装置200D(200)について、図36~図40を基に説明する。
<8-1.全体構成>
図36は、本実施の形態における画像復号装置の構成の一例を示すブロック図である。
図36は、本実施の形態における画像復号装置の構成の一例を示すブロック図である。
図36に示すように、本実施の形態の画像復号装置200Dは、ピクチャデータ復号部201、逆変換部202、加算部203、フレームメモリ204、DBF処理部205、SAO処理部206、および、動き補償部207を備えている。
本実施の形態の画像復号装置200Dは、実施の形態2(図12)の画像復号装置200Aとは、ピクチャデータ復号部201が、さらに、slice_loop_filter_across_br_slices_enabled_flagを復号し、SAO処理部206に出力している点でが異なる。
<8-2.動作(全体)>
本実施の形態の画像復号方法の全体フローは、実施の形態2の画像復号方法の全体フロー(図13)と同じであるため、説明を省略する。
本実施の形態の画像復号方法の全体フローは、実施の形態2の画像復号方法の全体フロー(図13)と同じであるため、説明を省略する。
<8-3.SAO処理部の構成>
図37は、SAO処理部206の内部構成の一例を示すブロック図である。
図37は、SAO処理部206の内部構成の一例を示すブロック図である。
図37に示すように、本実施の形態のSAO処理部206は、スライス境界参照判定部206a、および、SAOオフセット加算部206bを備えている。
本実施の形態のSAO処理部206は、実施の形態2(図14)のSAO処理部206とは、slice_loop_filter_across_br_slices_enabled_flagがスライス境界参照判定部206aに入力されている点で異なる。
各部の詳細な動作については、8-4で述べる。
<8-4.動作(SAO処理)>
図38は、本実施の形態のSAO処理の処理手順の一例を示すフローチャートである。図38に示すSAO処理のフローは、実施の形態7のSAO処理のフロー(図33)とは、SAOパラメータ決定部110aが処理するsao_type_idx_luma/chromaの決定、sao_eo_class_luma/chromaの決定、sao_offset_luma/cb/crの決定に関する処理が無い点で異なるが、その他の処理は同じであるため、説明を省略する。本実施の形態では、それらのパラメータはピクチャデータ復号部201で復号したデータを使用する。
図38は、本実施の形態のSAO処理の処理手順の一例を示すフローチャートである。図38に示すSAO処理のフローは、実施の形態7のSAO処理のフロー(図33)とは、SAOパラメータ決定部110aが処理するsao_type_idx_luma/chromaの決定、sao_eo_class_luma/chromaの決定、sao_offset_luma/cb/crの決定に関する処理が無い点で異なるが、その他の処理は同じであるため、説明を省略する。本実施の形態では、それらのパラメータはピクチャデータ復号部201で復号したデータを使用する。
また、SAOオフセット加算処理に関しても実施の形態1(図5)と同じであるため、説明を省略する。
<8-5.ピクチャデータ復号部の構成>
図39は、ピクチャデータ復号部201の内部構成の一例を示すブロック図である。
図39は、ピクチャデータ復号部201の内部構成の一例を示すブロック図である。
図39に示すように、ピクチャデータ復号部201は、変換係数復号部201a、予測情報復号部201b、SAOパラメータ復号部201c、スライス境界参照復号部201d、および、DBF_SAO実行フラグ復号部201eを備えている。
本実施の形態のピクチャデータ復号部201は、実施の形態2(図16)のピクチャデータ復号部201とは、スライス境界参照復号部201dが、さらに、slice_loop_filter_across_br_slices_enabled_flagを復号して出力している点で異なる。
<8-6.動作(ピクチャデータ復号)>
本実施の形態のピクチャデータの復号フローは、実施の形態2のピクチャデータの復号フロー(図17)と同じであるため、説明を省略する。
本実施の形態のピクチャデータの復号フローは、実施の形態2のピクチャデータの復号フロー(図17)と同じであるため、説明を省略する。
<8-7.動作(スライス境界参照許可フラグ復号)>
次に、図40を参照しつつ、スライス境界参照許可フラグ復号フローについて説明する。
次に、図40を参照しつつ、スライス境界参照許可フラグ復号フローについて説明する。
図40は、本実施の形態のスライス境界参照許可フラグの復号の処理手順の一例を示すフローチャートである。本実施の形態のスライス境界参照許可フラグの復号フローは、実施の形態7とは、S174、S713に代えて、S222、S801を実行する以外は同じであるため、説明を省略する。
S222では、スライス境界参照復号部201dは、slice_loop_filter_across_slices_enabled_flagを復号する。なお、S222は、図18に示す実施の形態2のS222と同じである。
S801では、スライス境界参照復号部201dは、slice_loop_filter_across_br_slices_enabled_flagを復号する。
<8-8.動作(SAOパラメータ復号)>
本実施の形態のSAOパラメータの復号フローは、実施の形態2のSAOパラメータの復号フロー(図19)と同じであるため、説明を省略する。
本実施の形態のSAOパラメータの復号フローは、実施の形態2のSAOパラメータの復号フロー(図19)と同じであるため、説明を省略する。
<8-9.効果>
実施の形態7で符号化した符号列を復号することが出来、実施の形態7と同じ効果を得ることができる。
実施の形態7で符号化した符号列を復号することが出来、実施の形態7と同じ効果を得ることができる。
以上の各実施の形態において、機能ブロックの各々は、通常、MPUやメモリ等によって実現可能である。また、機能ブロックの各々による処理は、通常、ソフトウェア(プログラム)によって実現することができ、当該ソフトウェアはROM等の記録媒体に記録されている。そして、このようなソフトウェアをダウンロード等により配布してもよいし、CD-ROM等の記録媒体に記録して配布してもよい。なお、各機能ブロックをハードウェア(専用回路)によって実現することも、当然、可能である。
また、各実施例において説明した処理は、単一の装置(システム)を用いて集中処理することによって実現してもよく、あるいは、複数の装置を用いて分散処理することによって実現してもよい。また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
本発明は、以上の実施例に限定されることなく、例えば、実施例ではSAO処理を決定する情報をフラグとして説明しているが、0,1という2値の情報に限らず、複数の処理を選択的に決定するような多値の値であってもよい。このような種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
(実施の形態9)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図41は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図41のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD-ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図42に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図43は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図44に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図45に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図43に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図46Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図46Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態10)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG-2、MPEG4-AVC、VC-1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
上記各実施の形態で示した動画像符号化方法または装置と、MPEG-2、MPEG4-AVC、VC-1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図47は、多重化データの構成を示す図である。図47に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC-3、Dolby Digital Plus、MLP、DTS、DTS-HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図48は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図49は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図49における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図49の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time-Stamp)やピクチャの復号時刻であるDTS(Decoding Time-Stamp)が格納される。
図50は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD-ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図50下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図51はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図52に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図52に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図53に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図54に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態11)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図55に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図55に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。このようなプログラマブル・ロジック・デバイスは、典型的には、ソフトウェア又はファームウェアを構成するプログラムを、ロードする又はメモリ等から読み込むことで、上記各実施の形態で示した動画像符号化方法、又は動画像復号化方法を実行することができる。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態12)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図56は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図55のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図55の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態10で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態10で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図58のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図57は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4-AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態13)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図59Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4-AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4-AVC規格に対応する復号処理部ex902を共有し、MPEG4-AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4-AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図59Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。
本発明に係る画像符号化方法および画像復号方法は、あらゆるマルチメディアデータに適用することができる。本発明に係る画像符号化方法および画像復号方法は、例えば、携帯電話、DVD装置、およびパーソナルコンピュータ等を用いた蓄積、伝送、通信等における画像符号化方法および画像復号方法として有用である。
100、100A、100B、100C、100D 画像符号化装置
101 スライス分割部
102 符号ブロック分割部
103 減算部
104 変換部
105 ピクチャデータ符号化部
105a 変換係数符号化部
105b 予測情報符号化部
105c SAOパラメータ符号化部
105d スライス境界参照符号化部
105e DBF_SAO実行フラグ符号化部
106、202 逆変換部
107、203 加算部
108、204 フレームメモリ
109、205 DBF処理部
110、206 SAO処理部
110a SAOパラメータ決定部
110b、206a スライス境界参照判定部
110c、206b SAOオフセット加算部
111 予測部
200、200A、200B、200C、200D 画像復号装置
201 ピクチャデータ復号部
201a 変換係数復号部
201b 予測情報復号部
201c SAOパラメータ復号部
201d スライス境界参照復号部
201e DBF_SAO実行フラグ復号部
207 動き補償部
101 スライス分割部
102 符号ブロック分割部
103 減算部
104 変換部
105 ピクチャデータ符号化部
105a 変換係数符号化部
105b 予測情報符号化部
105c SAOパラメータ符号化部
105d スライス境界参照符号化部
105e DBF_SAO実行フラグ符号化部
106、202 逆変換部
107、203 加算部
108、204 フレームメモリ
109、205 DBF処理部
110、206 SAO処理部
110a SAOパラメータ決定部
110b、206a スライス境界参照判定部
110c、206b SAOオフセット加算部
111 予測部
200、200A、200B、200C、200D 画像復号装置
201 ピクチャデータ復号部
201a 変換係数復号部
201b 予測情報復号部
201c SAOパラメータ復号部
201d スライス境界参照復号部
201e DBF_SAO実行フラグ復号部
207 動き補償部
Claims (16)
- 画像をビットストリームに符号化する画像符号化方法であって、
前記画像を複数のスライスに分割する分割ステップと、
符号化対象であるカレントスライスの参照対象画素が、前記カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第一フラグを生成し、
前記参照対象画素が、前記カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第二フラグであって、前記第一フラグとは異なる前記第二フラグを生成する生成ステップと、
前記カレントスライスと前記カレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタリングステップと、を含み、
前記フィルタリングステップでは、前記第一フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第一スライスとの間の第一境界に対してフィルタリングし、前記第二フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする
画像符号化方法。 - 前記第一フラグは、前記カレントスライスに対応付けられたフラグであり、
前記第二フラグは、前記第二スライスに対応付けられたフラグである、
請求項1に記載の画像符号化方法。 - 前記生成ステップでは、
前記カレントスライスに含まれる画素の画素値にオフセット値を加算するオフセット処理を実行するか否かを示す第三フラグ、および、前記カレントスライスにおけるデブロッキングフィルタを用いたフィルタリング処理を実行するか否かを示す第四フラグの両方が、実行しないことを示す場合に、前記参照対象画素の参照の禁止を示す前記第一フラグを生成する、
請求項2に記載の画像符号化方法。 - さらに、
前記第一フラグおよび前記第二フラグを符号化し、前記ビットストリームに書き込む書き込みステップを含む、
請求項2に記載の画像符号化方法。 - さらに、
前記カレントスライスに含まれる画素の画素値にオフセット値を加算するオフセット処理を実行するか否かを示す第三フラグを、実行することを示す値に設定するステップと、
前記第一フラグ、前記第二フラグを符号化し、前記ビットストリームに書き込む書き込みステップとを含む、
請求項2に記載の画像符号化方法。 - 前記第一フラグおよび前記第二フラグは、前記カレントスライスに対応付けられたフラグである、
請求項1に記載の画像符号化方法。 - 前記カレントスライスが、前記画像の最初のスライスである場合、前記第一フラグを符号化しない、
請求項1~6の何れか1項に記載の画像符号化方法。 - ビットストリームから画像を復号する画像復号方法であって、
復号対象であるカレントスライスの参照対象画素が、前記カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第一フラグを取得し、
前記参照対象画素が、前記カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第二フラグであって、前記第一フラグとは異なる前記第二フラグを取得する取得ステップと、
前記カレントスライスと前記カレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタリングステップと、を含み、
前記フィルタリングステップでは、前記第一フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第一スライスとの間の第一境界に対してフィルタリングし、前記第二フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする
画像復号方法。 - 前記第一フラグは、前記カレントスライスに対応付けられたフラグであり、
前記第二フラグは、前記第二スライスに対応付けられたフラグである、
請求項8に記載の画像復号方法。 - 前記取得ステップでは、
前記カレントスライスに含まれる画素の画素値にオフセット値を加算するオフセット処理を実行するか否かを示す第三フラグ、および、前記カレントスライスにおけるデブロッキングフィルタを用いたフィルタリング処理を実行するか否かを示す第四フラグの両方が、実行しないことを示す場合に、前記参照対象画素の参照の禁止を示す前記第一フラグを生成する、
請求項9に記載の画像復号方法。 - さらに、
前記ビットストリームから前記第一フラグおよび前記第二フラグを復号するステップを含む、
請求項9に記載の画像復号方法。 - さらに、
前記ビットストリームから、前記カレントスライスに含まれる画素の画素値にオフセット値を加算するオフセット処理を実行することを示す第三フラグと、前記第一フラグと、前記第二フラグとを復号するステップを含む、
請求項9に記載の画像復号方法。 - 前記第一フラグおよび前記第二フラグは、前記カレントスライスに対応付けられたフラグである、
請求項8に記載の画像復号方法。 - 前記カレントスライスが、前記画像の最初のスライスである場合、前記第一フラグを復号しない、
請求項8~13の何れか1項に記載の画像復号方法。 - 画像をビットストリームに符号化する画像符号化装置であって、
前記画像を複数のスライスに分割するスライス分割部と、
符号化対象であるカレントスライスの参照対象画素が、前記カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第一フラグを生成し、前記参照対象画素が、前記カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第二フラグであって、前記第一フラグとは異なる前記第二フラグを生成するスライス境界参照決定部と、
前記カレントスライスと前記カレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタと、を含み、
前記フィルタは、前記第一フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第一スライスとの間の第一境界に対してフィルタリングし、前記第二フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする
画像符号化装置。 - ビットストリームから画像を復号する画像復号装置であって、
復号対象であるカレントスライスの参照対象画素が、前記カレントスライスの上側または左側に隣接する第一スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第一フラグを取得し、前記参照対象画素が、前記カレントスライスの下側または右側に隣接する第二スライスに含まれる場合に、前記参照対象画素の参照に対する許可または禁止を示す第二フラグであって、前記第一フラグとは異なる前記第二フラグを取得する取得部と、
前記カレントスライスと前記カレントスライスに隣接するスライスとの間の境界をフィルタリングするフィルタと、を含み、
前記フィルタは、前記第一フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第一スライスとの間の第一境界に対してフィルタリングし、前記第二フラグが前記参照対象画素の参照に対して許可を示す場合には、前記カレントスライスと前記第二スライスとの間の第二境界に対してフィルタリングする
画像復号装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261739118P | 2012-12-19 | 2012-12-19 | |
US61/739,118 | 2012-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014097596A1 true WO2014097596A1 (ja) | 2014-06-26 |
Family
ID=50977958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/007350 WO2014097596A1 (ja) | 2012-12-19 | 2013-12-13 | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2014097596A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011013580A1 (ja) * | 2009-07-31 | 2011-02-03 | ソニー株式会社 | 画像処理装置および方法 |
WO2012142966A1 (en) * | 2011-04-21 | 2012-10-26 | Mediatek Inc. | Method and apparatus for improved in-loop filtering |
WO2013155897A1 (en) * | 2012-04-16 | 2013-10-24 | Mediatek Inc. | Method and apparatus for loop filtering across slice or tile boundaries |
WO2014006860A1 (ja) * | 2012-07-02 | 2014-01-09 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置および画像符号化復号装置 |
-
2013
- 2013-12-13 WO PCT/JP2013/007350 patent/WO2014097596A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011013580A1 (ja) * | 2009-07-31 | 2011-02-03 | ソニー株式会社 | 画像処理装置および方法 |
WO2012142966A1 (en) * | 2011-04-21 | 2012-10-26 | Mediatek Inc. | Method and apparatus for improved in-loop filtering |
WO2013155897A1 (en) * | 2012-04-16 | 2013-10-24 | Mediatek Inc. | Method and apparatus for loop filtering across slice or tile boundaries |
WO2014006860A1 (ja) * | 2012-07-02 | 2014-01-09 | パナソニック株式会社 | 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置および画像符号化復号装置 |
Non-Patent Citations (2)
Title |
---|
BENJAMIN BROSS ET AL.: "High efficiency video coding (HEVC) text specification draft 7", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-I1003_D9, 9TH MEETING, July 2012 (2012-07-01), GENEVA, CH, pages 30 - 33, 37-39, 42-43, 62-70, 75-79, 83-84 * |
SEMIH ESENLIK ET AL.: "AHG6: Modification to loop filtering across slice boundaries", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-J0266_R3, 10TH MEETING, July 2012 (2012-07-01), STOCKHOLM, SWEDEN, pages 1 - 8 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6341426B2 (ja) | 画像復号化方法および画像復号化装置 | |
AU2018282369B2 (en) | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus | |
JP6384690B2 (ja) | 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置 | |
WO2013111593A1 (ja) | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置 | |
WO2013183268A1 (ja) | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置および画像符号化復号装置 | |
JP6210368B2 (ja) | 画像復号方法および画像復号装置 | |
JP2013225896A (ja) | 画像復号方法及び画像復号装置 | |
WO2012023281A1 (ja) | 動画像復号方法、動画像符号化方法、動画像復号装置、及び、動画像符号化装置 | |
WO2013175698A1 (ja) | 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置および画像符号化復号装置 | |
WO2013118485A1 (ja) | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置および画像符号化復号装置 | |
JP5680812B1 (ja) | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 | |
JP6717562B2 (ja) | 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置 | |
RU2815733C1 (ru) | Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения | |
RU2827404C1 (ru) | Способ передачи битового потока по сети | |
RU2808610C1 (ru) | Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения | |
RU2794163C2 (ru) | Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения | |
WO2014097596A1 (ja) | 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13864739 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13864739 Country of ref document: EP Kind code of ref document: A1 |