WO2016056550A1 - 画像復号装置 - Google Patents

画像復号装置 Download PDF

Info

Publication number
WO2016056550A1
WO2016056550A1 PCT/JP2015/078347 JP2015078347W WO2016056550A1 WO 2016056550 A1 WO2016056550 A1 WO 2016056550A1 JP 2015078347 W JP2015078347 W JP 2015078347W WO 2016056550 A1 WO2016056550 A1 WO 2016056550A1
Authority
WO
WIPO (PCT)
Prior art keywords
pattern
wedge
rotation
unit
prediction
Prior art date
Application number
PCT/JP2015/078347
Other languages
English (en)
French (fr)
Inventor
知宏 猪飼
健史 筑波
Original Assignee
シャープ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2015015036A external-priority patent/JP2017216487A/ja
Application filed by シャープ株式会社 filed Critical シャープ株式会社
Priority to US15/517,429 priority Critical patent/US10244256B2/en
Publication of WO2016056550A1 publication Critical patent/WO2016056550A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to an image decoding apparatus that decodes encoded data representing an image, and an image encoding apparatus that generates encoded data by encoding an image.
  • the multi-view image encoding technique includes a parallax predictive encoding that reduces the amount of information by predicting a parallax between images when encoding images of a plurality of viewpoints, and a decoding method corresponding to the encoding method.
  • a vector representing the parallax between viewpoint images is called a displacement vector.
  • the displacement vector is a two-dimensional vector having a horizontal element (x component) and a vertical element (y component), and is calculated for each block which is an area obtained by dividing one image.
  • x component horizontal element
  • y component vertical element
  • each viewpoint image is encoded as a different layer in each of a plurality of layers.
  • a method for encoding a moving image composed of a plurality of layers is generally referred to as scalable encoding or hierarchical encoding.
  • scalable coding high coding efficiency is realized by performing prediction between layers.
  • a reference layer without performing prediction between layers is called a base layer, and other layers are called enhancement layers.
  • Scalable encoding in the case where a layer is composed of viewpoint images is referred to as view scalable encoding.
  • the base layer is also called a base view
  • the enhancement layer is also called a non-base view.
  • scalable coding in the case of a texture layer (image layer) composed of texture (image) and a depth layer (distance image layer) composed of depth map (distance image) is a three-dimensional scalable code. It is called chemistry.
  • Non-Patent Document 1 there is a HEVC-based three-dimensional scalable coding technique disclosed in Non-Patent Document 1.
  • depth encoding such as DMM prediction (DepthepModeling Mode; also called depth intra prediction) and region-specific DC coding (SDC; Segment-wise DC Coding).
  • DMM prediction DepthepModeling Mode; also called depth intra prediction
  • SDC region-specific DC coding
  • the DC coding for each region represents the average (DC) value of the prediction residual for each target region on the depth map without performing frequency conversion / inverse quantization on one or a plurality of regions. This is a technique for encoding prediction residual DC information.
  • DMM prediction basically uses a depth model in which a target block (also referred to as a depth block) on a depth map is composed of two non-rectangular flat regions, and the depth value of each flat region is expressed by a fixed value. Is based.
  • the depth model is composed of partition information indicating the region to which each pixel belongs, and depth value information of each region.
  • Non-Patent Document 1 in DMM1 prediction, a wedgelet division pattern (wedge pattern, wedgelet pattern) is held in a lookup table defined in advance for each block size, and an identifier (wedge pattern index) that specifies the division pattern The wedge pattern specified by wedge_full_tab_idx) is selected.
  • the depth block is divided into two regions based on the selected wedge pattern, and each region is determined based on the depth prediction value predicted from the surrounding pixels for each divided region and the depth value information for correcting the depth prediction value. This is a technique for predicting a predicted value for restoring the depth value of.
  • Non-Patent Document 1 a common syntax (depth_dc_flag , Depth_dc_abs, depth_dc_sign_flag).
  • Non-Patent Document 1 since all patterns are generated by line segment drawing processing and area filling processing, there is a problem that the processing amount is large. Further, there is a problem that the memory size is large when a wedge pattern is generated by virtually doubling the block size vertically and horizontally. In addition, when storing in all the wedge patterns, there is a problem that the processing amount of the storage is large because matching comparison of the wedge patterns is performed.
  • One aspect of the present invention is an image decoding apparatus that decodes an image, a wedge pattern generation unit that generates a wedge pattern, a rotation pattern generation unit that derives a rotation pattern by rotating the wedge pattern, A pattern storage unit that adds a rotation pattern to a wedge pattern table, and a DC predicted value derivation unit that derives a predicted value for each region divided by the wedge pattern included in the wedge pattern table. .
  • the wedgelet pattern generation unit 145T4 does not generate all the wedge patterns by the line drawing process and the area filling process using the line drawing unit 1462 and the area filling unit 1463, but a part of the wedge patterns. Is generated by a rotation process using the rotation pattern generation unit 1565. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained.
  • FIG. 1 is a schematic diagram illustrating a configuration of an image transmission system according to an embodiment of the present invention. It is the functional block diagram shown about the schematic structure of the moving image decoding apparatus which concerns on a present Example.
  • (A) shows an example of a syntax table related to an intra CU
  • (b) is an example of a syntax table related to intra prediction mode extension. It is an example of the syntax which concerns on the DC offset information contained in a CU layer. It is a figure which shows the example of the prediction mode number corresponding to the classification
  • (A) is an example showing an edge boundary of an object on a block
  • (b) is a division pattern indicating that the block is divided into two regions (P1, P2) along the edge boundary of the object.
  • An example of a wedgelet pattern (wedgePattern) is shown
  • (c) is an example in which a predicted value is assigned to each of the divided areas.
  • DMM1 wedgelet division
  • (A) is an example of the start point S and end point E on the block
  • (b) is an example of a line segment connecting the start point S and the end point E
  • An example is shown
  • (d) shows an example of a wedge rate pattern.
  • It is a figure for demonstrating an example of the wedgelet pattern according to wedge direction wedgeOri (wedgeOri 0..5) produced
  • 22 is a flowchart showing the operation of the pattern storage unit 1464.
  • FIG. 2 is a schematic diagram showing the configuration of the image transmission system 5 according to the present embodiment.
  • the image transmission system 5 is a system that transmits a code obtained by encoding a plurality of layer images and displays an image obtained by decoding the transmitted code.
  • the image transmission system 5 includes an image encoding device 2, a network 3, an image decoding device 2, and an image display device 4.
  • the signal T indicating a plurality of layer images (also referred to as texture images) is input to the image encoding device 2.
  • a layer image is an image that is viewed or photographed at a certain resolution and a certain viewpoint.
  • each of the plurality of layer images is referred to as a viewpoint image.
  • the viewpoint corresponds to the position or observation point of the photographing apparatus.
  • the plurality of viewpoint images are images taken by the left and right photographing devices toward the subject.
  • the image encoding device 2 encodes each of these signals to generate encoded data # 1. Details of the encoded data # 1 will be described later.
  • a viewpoint image is a two-dimensional image (planar image) observed at a certain viewpoint.
  • the viewpoint image is indicated by, for example, a luminance value or a color signal value for each pixel arranged in a two-dimensional plane.
  • one viewpoint image or a signal indicating the viewpoint image is referred to as a picture.
  • encoding and decoding of an image including at least a base layer image and an image other than the base layer image is handled as the plurality of layer images.
  • the image on the reference side is referred to as a first layer image
  • the image on the reference side is referred to as a second layer image.
  • the base layer image is treated as a first layer image and the enhancement layer image is treated as a second layer image.
  • the enhancement layer image include an image of a viewpoint other than the base view and a depth image.
  • the viewpoint image is indicated by, for example, a luminance value or a color signal value for each pixel arranged in a two-dimensional plane.
  • the depth map (also called depth map, “depth image”, “depth image”, “distance image”) corresponds to the distance from the viewpoint (shooting device, etc.) of the subject or background included in the subject space.
  • Signal values (referred to as “depth value”, “depth value”, “depth”, etc.), and are image signals composed of signal values (pixel values) for each pixel arranged on a two-dimensional plane.
  • the pixels constituting the depth map correspond to the pixels constituting the viewpoint image. Therefore, the depth map is a clue for representing the three-dimensional object space by using the viewpoint image which is a reference image signal obtained by projecting the object space onto the two-dimensional plane.
  • the network 3 transmits the encoded data # 1 generated by the image encoding device 2 to the image decoding device 1.
  • the network 3 is the Internet, a wide area network (WAN: Wide Area Network), a small network (LAN: Local Area Network), or a combination thereof.
  • the network 3 is not necessarily limited to a bidirectional communication network, and may be a unidirectional or bidirectional communication network that transmits broadcast waves such as terrestrial digital broadcasting and satellite broadcasting.
  • the network 3 may be replaced with a storage medium that records encoded data # 1 such as a DVD (Digital Versatile Disc) or a BD (Blue-ray Disc).
  • the image decoding apparatus 1 decodes each of the encoded data # 1 transmitted by the network 3, and generates and outputs a plurality of decoded layer images Td (decoded viewpoint image TexturePic and decoded depth map DepthPic), respectively.
  • the image display device 4 displays all or part of the plurality of decoded layer images Td generated by the image decoding device 1. For example, in view scalable coding, a 3D image (stereoscopic image) and a free viewpoint image are displayed in all cases, and a 2D image is displayed in some cases.
  • the image display device 4 includes a display device such as a liquid crystal display or an organic EL (Electro-luminescence) display.
  • a display device such as a liquid crystal display or an organic EL (Electro-luminescence) display.
  • an enhancement layer image with high image quality is displayed and only a lower processing capability is provided. Displays a base layer image that does not require higher processing capability and display capability as an extension layer.
  • the viewpoint image is indicated by, for example, a luminance value or a color signal value for each pixel arranged in a two-dimensional plane.
  • the depth map (also called depth map, “depth image”, “depth image”, “distance image”) corresponds to the distance from the viewpoint (shooting device, etc.) of the subject or background included in the subject space.
  • Signal values (referred to as “depth value”, “depth value”, “depth”, etc.), and are image signals composed of signal values (pixel values) for each pixel arranged on a two-dimensional plane.
  • the pixels constituting the depth map correspond to the pixels constituting the viewpoint image. Therefore, the depth map is a clue for representing the three-dimensional object space by using the viewpoint image which is a reference image signal obtained by projecting the object space onto the two-dimensional plane.
  • FIG. 3 is a functional block diagram illustrating a schematic configuration of the image decoding device 1.
  • the moving image decoding apparatus 1 includes encoded data # 1 in which the moving image encoding apparatus 2 encodes a layer image (one or a plurality of viewpoint images TexturePic and a depth map DepthPic corresponding to the viewpoint image TexturePic). Entered.
  • the moving image decoding apparatus 1 decodes the input encoded data # 1 and externally outputs the layer image # 2 (one or more viewpoint images TexturePic and a depth map DepthPic corresponding to the viewpoint image TexturePic). Output.
  • the configuration of the encoded data # 1 will be described below.
  • the encoded data # 1 exemplarily includes a sequence and a plurality of pictures constituting the sequence.
  • Fig. 4 shows the structure of the hierarchy below the sequence layer in the encoded data # 1.
  • 4A to 4E respectively show a sequence layer that defines a sequence SEQ, a picture layer that defines a picture PICT, a slice layer that defines a slice S, a slice data layer that defines slice data, and a coding tree. It is a figure which shows the encoding unit layer which prescribes
  • sequence layer In the sequence layer, a set of data referred to by the video decoding device 1 for decoding a sequence SEQ to be processed (hereinafter also referred to as a target sequence) is defined.
  • the sequence SEQ includes a video parameter set (Sequence Parameter Set), a picture parameter set PPS (Picture Parameter Set), a picture PICT, and an additional extension.
  • Information SEI Supplemental Enhancement Information
  • # indicates the layer ID.
  • FIG. 4 shows an example in which encoded data of # 0 and # 1, that is, layer 0 and layer 1, exists, but the type of layer and the number of layers are not dependent on this.
  • the video parameter set VPS is a set of encoding parameters common to a plurality of moving images, a plurality of layers included in the moving image, and encoding parameters related to individual layers in a moving image composed of a plurality of layers.
  • a set is defined.
  • sequence parameter set SPS a set of encoding parameters referred to by the video decoding device 1 for decoding the target sequence is defined. For example, the width and height of the picture are defined.
  • a set of encoding parameters referred to by the video decoding device 1 for decoding each picture in the target sequence is defined.
  • a quantization width reference value (pic_init_qp_minus26) used for picture decoding and a flag (weighted_pred_flag) indicating application of weighted prediction are included.
  • a plurality of PPS may exist. In that case, one of a plurality of PPSs is selected from each picture in the target sequence.
  • Picture layer In the picture layer, a set of data referred to by the video decoding device 1 for decoding a picture PICT to be processed (hereinafter also referred to as a target picture) is defined. As shown in (b) of FIG. 4, the picture PICT includes slices S 1 to S NS (NS is the total number of slices included in the picture PICT).
  • slice layer In the slice layer, a set of data referred to by the video decoding device 1 for decoding a slice S to be processed (a slice segment, also referred to as a target slice) is defined. As shown in FIG. 4C, the slice S includes a slice header SH and slice data SDATA.
  • the slice header SH includes a coding parameter group that the moving image decoding apparatus 1 refers to in order to determine a decoding method of the target slice.
  • Slice type designation information (slice_type) for designating a slice type is an example of an encoding parameter included in the slice header SH.
  • I slice that uses only intra prediction at the time of encoding (2) P slice that uses unidirectional prediction or intra prediction at the time of encoding, (3) B-slice using unidirectional prediction, bidirectional prediction, or intra prediction at the time of encoding may be used.
  • the slice data SDATA includes one or a plurality of tree blocks TBLK 1 to TBLK NC (NC is the total number of tree blocks included in the slice data SDATA).
  • Tree block layer In the tree block layer, a set of data referred to by the video decoding device 1 for decoding a processing target tree block TBLK (hereinafter also referred to as a target tree block) is defined.
  • the tree block TBLK includes a tree block header TBLKH and coding unit information CU 1 to CU NL (NL is the total number of coding unit information included in the tree block TBLK).
  • NL is the total number of coding unit information included in the tree block TBLK.
  • the tree block TBLK is divided into units for specifying a block size for each process of intra prediction or inter prediction and conversion.
  • the above unit of the tree block TBLK is divided by recursive quadtree partitioning.
  • the tree structure obtained by this recursive quadtree partitioning is hereinafter referred to as a coding tree.
  • a unit corresponding to a leaf that is a node at the end of the coding tree is referred to as a coding node.
  • the encoding node is a basic unit of the encoding process, hereinafter, the encoding node is also referred to as an encoding unit (CU).
  • CU encoding unit
  • coding unit information (hereinafter referred to as CU information)
  • CU 1 to CU NL is information corresponding to each coding node (coding unit) obtained by recursively dividing the tree block TBLK into quadtrees. is there.
  • the root of the coding tree is associated with the tree block TBLK.
  • the tree block TBLK is associated with the highest node of the tree structure of the quadtree partition that recursively includes a plurality of encoding nodes.
  • each coding node is half the size of the coding node to which the coding node directly belongs (that is, the unit of the node one layer higher than the coding node).
  • the tree block header TBLKH includes an encoding parameter referred to by the video decoding device 1 in order to determine a decoding method of the target tree block. Specifically, as shown in FIG. 4 (d), tree block division information SP_TBLK that specifies a division pattern of the target tree block into each CU, and a quantization parameter difference that specifies the size of the quantization step ⁇ qp (qp_delta) is included.
  • the tree block division information SP_TBLK is information representing a coding tree for dividing the tree block. Specifically, the shape and size of each CU included in the target tree block, and the position in the target tree block Is information to specify.
  • the quantization parameter difference ⁇ qp is a difference qp ⁇ qp ′ between the quantization parameter qp in the target tree block and the quantization parameter qp ′ in the tree block encoded immediately before the target tree block.
  • CU layer In the CU layer, a set of data referred to by the video decoding device 1 for decoding a CU to be processed (hereinafter also referred to as a target CU) is defined.
  • the encoding node is a node at the root of a prediction tree (PT) and a transformation tree (TT).
  • PT prediction tree
  • TT transformation tree
  • the encoding node is divided into one or a plurality of prediction blocks, and the position and size of each prediction block are defined.
  • Prediction processing is performed for each prediction block.
  • a prediction block that is a unit of prediction is also referred to as a prediction unit (PU).
  • intra prediction there are two types of division in the prediction tree: intra prediction and inter prediction.
  • intra prediction there are 2N ⁇ 2N (the same size as the encoding node) and N ⁇ N division methods.
  • inter prediction there are 2N ⁇ 2N (the same size as the encoding node), 2N ⁇ N, N ⁇ 2N, and N ⁇ N division methods.
  • the encoding node is divided into one or a plurality of transform blocks, and the position and size of each transform block are defined.
  • transform processing is performed for each conversion block.
  • the transform block which is a unit of transform is also referred to as a transform unit (TU).
  • the CU information CU specifically includes a skip flag SKIP, PT information PTI, and TT information TTI.
  • the skip flag SKIP is a flag indicating whether or not the skip mode is applied to the target PU.
  • the value of the skip flag SKIP is 1, that is, when the skip mode is applied to the target CU, PT information PTI and TT information TTI in the CU information CU are omitted.
  • PT information PTI is information regarding the PT included in the CU. As shown in FIG. 4D, the PT information PTI includes prediction type information PType and prediction information PInfo.
  • Prediction type information PType is information that specifies whether to use intra prediction or inter prediction.
  • the prediction type information CuPredMode is set to MODE_INTRA indicating intra prediction
  • inter prediction it is set to MODE_INTER indicating inter prediction.
  • a CU to which intra prediction is applied is called an intra CU
  • a CU to which an inter CU is applied is also called an inter CU.
  • the prediction information PInfo is composed of intra prediction information or inter prediction information depending on which prediction method is specified by the prediction type information PType.
  • a PU to which intra prediction is applied is also referred to as an intra PU
  • a PU to which inter prediction is applied is also referred to as an inter PU.
  • the prediction information PInfo includes information specifying the shape, size, and position of the target PU. As described above, the generation of the predicted image is performed in units of PU. Details of the prediction information PInfo will be described later.
  • TT information TTI is information related to TT included in the CU.
  • the TT information TTI is a set of information regarding each of one or a plurality of TUs included in the TT, and is referred to when the moving image decoding apparatus 1 decodes residual data.
  • a TU may be referred to as a conversion block.
  • the TT information TTI includes TT division information SP_TU that designates a division pattern for each transform block of the target CU, and TU information TUI 1 to TUI NT (NT is the target CU). The total number of transform blocks included).
  • TT division information SP_TU is information for determining the shape and size of each TU included in the target CU and the position in the target CU.
  • the TT division information SP_TU can be realized from information (split_transform_unit_flag) indicating whether or not the target node is divided and information (trafoDepth) indicating the depth of the division.
  • the TU partition information SP_TU includes information on whether or not a non-zero conversion coefficient exists in each TU.
  • non-zero coefficient existence information CBF; CodedCodeBlock Flag
  • CBF relating to luminance luma is called cbf_luma
  • CBF relating to color difference Cb is called cbf_cb
  • CBF relating to color difference Cr is called cbf_cr.
  • non-zero coefficient existence information also referred to as rqt_root_flag,, or no_residual_data_flag
  • prediction residual DC information representing an average (DC) value of the prediction residual is obtained for each region or regions in the TU.
  • An SDC flag sdc_flag indicating whether or not to perform encoding is included.
  • DC coding by region is also called Segment-wiseSDC Coding (SDC).
  • SDC Segment-wiseSDC Coding
  • DC coding by region in intra prediction is called intra SDC
  • DC coding by region in inter prediction is called inter SDC.
  • the TU information TUI 1 to TUI NT are individual information regarding one or more TUs included in the TT.
  • the TU information TUI includes a quantized prediction residual.
  • Each quantization prediction residual is encoded data generated by applying the following process A or process B to the target block, which is a processing target block, by the video encoding device 2.
  • Process A-1 DCT transform (DiscreteCosine Transform) of the prediction residual obtained by subtracting the prediction image from the encoding target image
  • Process A-2 Quantize the transform coefficient obtained in Process A-1
  • Process A-3 Variable-length coding the transform coefficient quantized in Process A-2
  • Process B-1 An average value (DC value) of prediction residuals obtained by subtracting the prediction image from the encoding target image is calculated.
  • Process B-2 The DC value obtained in Process B-1 is variable length encoded.
  • each depth block is used for encoding a prediction residual of a region divided into one or a plurality of regions.
  • prediction information PInfo As described above, there are two types of prediction information PInfo: inter prediction information and intra prediction information.
  • the inter prediction information includes an encoding parameter that is referred to when the video decoding device 1 generates an inter predicted image by inter prediction. More specifically, the inter prediction information includes inter PU division information that specifies a division pattern of the target CU into each inter PU, and inter prediction parameters for each inter PU.
  • the inter prediction parameters include a reference image index, an estimated motion vector index, and a motion vector residual.
  • the intra prediction information includes an encoding parameter that is referred to when the video decoding device 1 generates an intra predicted image by intra prediction. More specifically, the intra prediction information includes intra PU division information that specifies a division pattern of the target CU into each intra PU, and intra prediction parameters for each intra PU.
  • the intra prediction parameter is a parameter for restoring intra prediction (prediction mode) for each intra PU.
  • Intra prediction parameters Parameters related to intra prediction (DC prediction, Planar prediction, Angular prediction) (intra prediction parameters) commonly used in coding of depth map DepthPic and texture TexturePic are flags related to MPM (Most Probable Mode, and so on).
  • MPM Motion Probable Mode, and so on.
  • a certain mpm_flag, mpm_idx that is an index for selecting an MPM, and rem_idx that is an index (residual prediction mode index) for specifying a prediction mode other than the MPM are included. Note that mpm_flag and rem_idx correspond to “prev_intra_luma_pred_flag” (SYN02 in FIG.
  • chroma_mode corresponds to “intra_chroma_pred_mode” (not shown).
  • Parameters for restoring a prediction mode (intra extended mode (SYN01 in FIG. 5 (a))) relating to depth intra prediction (DMM prediction) used for coding a depth map (depth intra prediction parameters, DMM prediction mode information) Include a flag (depth intra prediction presence / absence flag) dim_not_present_flag (SYN01A in FIG. 5B) indicating whether or not depth intra prediction is present, and an index (wedge pattern) specifying a wedge pattern representing a division pattern in the PU in DMM1 prediction Index) wedge_full_tab_idex (SYN01C in FIG. 5B).
  • the prediction parameters related to intra SDC, inter SDC, and depth intra prediction further include DC offset information for correcting the depth prediction value of one or two divided areas in the PU, that is, whether or not there is a DC offset.
  • DC offset information for correcting the depth prediction value of one or two divided areas in the PU, that is, whether or not there is a DC offset.
  • the video decoding device 1 generates a predicted image for each PU, generates a decoded image # 2 by adding the generated predicted image and a prediction residual decoded from the encoded data # 1, and generates The decoded image # 2 is output to the outside.
  • An encoding parameter is a parameter referred in order to generate a prediction image.
  • the encoding parameters include PU size and shape, block size and shape, and original image and predicted image.
  • residual data a set of all information excluding the residual data among the information included in the encoding parameter is referred to as side information.
  • a picture (frame), a slice, a tree block, a CU, a block, and a PU to be decoded are a target picture, a target slice, a target tree block, a target CU, a target block, and a target PU, respectively. I will call it.
  • the size of the tree block is, for example, 64 ⁇ 64 pixels
  • the size of the CU is, for example, 64 ⁇ 64 pixels, 32 ⁇ 32 pixels, 16 ⁇ 16 pixels, and 8 ⁇ 8 pixels
  • the size of the PU is For example, 64 ⁇ 64 pixels, 32 ⁇ 32 pixels, 16 ⁇ 16 pixels, 8 ⁇ 8 pixels, 4 ⁇ 4 pixels, and the like.
  • these sizes are merely examples, and the sizes of the tree block, CU, and PU may be other than the sizes shown above.
  • FIG. 3 is a functional block diagram illustrating a schematic configuration of the video decoding device 1.
  • the moving picture decoding apparatus 1 includes a variable length decoding unit 11, an inverse quantization / inverse conversion unit 13, a predicted image generation unit 14, an adder 15, and a frame memory 16.
  • variable length decoding unit 11 decodes various parameters included in the encoded data # 1 input from the video decoding device 1. In the following description, it is assumed that the variable length decoding unit 11 appropriately decodes a parameter encoded by an entropy encoding method such as CABAC. Specifically, the variable length decoding unit 11 decodes encoded data # 1 for one frame according to the following procedure.
  • variable length decoding unit 11 separates the encoded data # 1 for one frame into various types of information included in the hierarchical structure shown in FIG. 4 by demultiplexing.
  • the variable length decoding unit 11 refers to information included in various headers and sequentially separates the encoded data # 1 into slices and tree blocks.
  • the various headers include (1) information about the method of dividing the target picture into slices, and (2) information about the size, shape, and position of the tree block belonging to the target slice. .
  • variable length decoding unit 11 refers to the tree block division information SP_TBLK included in the tree block header TBLKH, and divides the target tree block into CUs. Further, the variable length decoding unit 11 decodes the TT information TTI related to the conversion tree obtained for the target CU and the PT information PTI related to the prediction tree obtained for the target CU.
  • the variable length decoding unit 11 supplies the TT information TTI obtained for the target CU to the TU information decoding unit 12. Further, the variable length decoding unit 11 supplies the PT information PTI obtained for the target CU to the predicted image generation unit 14.
  • the TT information TTI includes the TU information TUI corresponding to the TU included in the conversion tree as described above. Further, as described above, the PT information PTI includes PU information PUI (prediction information Info of each PU) corresponding to each PU included in the target prediction tree.
  • the variable length decoding unit 11 decodes each syntax from the encoded data # 1 according to the syntax table of the intra prediction mode extension intra_mode_ext () shown in SYN01 of FIG.
  • the flag (DMM1 prediction mode enable / disable flag) intra_sdc_dmm_wfull_flag is 1 in the depth encoding tool
  • the intra prediction mode extension intra_mode_ext () is decoded.
  • the DMM1 prediction mode availability flag intra_sdc_dmm_wfull_flag is 1, it indicates that the DMM1 prediction mode, which is a depth encoding tool, can be applied in the decoding target layer, and when it is 0, it indicates that it is not applied.
  • the DMM1 prediction mode enable / disable flag is decoded from a parameter set (video parameter set VPS, sequence parameter set SPS, picture parameter set PPS, slice header SH) and the like.
  • the variable length decoding unit 11 decodes the depth intra prediction presence / absence flag dim_not_present_flag (SYN01A in FIG. 5B).
  • the value of the flag is estimated as 1. This flag is a flag indicating the presence / absence of depth intra prediction.
  • the depth intra prediction mode flag depth_intra_mode_flag for the target PU is not included in the encoded data, and the intra prediction mode numbers' 0 'to' This indicates that any intra prediction method of 34 ′ (DC prediction, Planar prediction, Angular prediction) is used for the target PU.
  • the flag is 0, it indicates that the depth intra prediction mode depth_intra_mode_flag is in the encoded data.
  • variable length decoding unit 11 derives the DMM flag DmmFlag of the target PU based on the decoded depth intra prediction presence / absence flag dim_not_present_flag by the following equation.
  • DmmFlag ! Dim_not_present_flag That is, the logical negation value of the depth intra prediction presence / absence flag is set in the DMM flag. When the DMM flag is 1, it indicates that depth intra prediction is used, and when the DMM flag is 0, it indicates that depth intra prediction is not used.
  • variable length decoding unit 11 sets a prediction mode number indicating DMM1 prediction to the prediction mode predModeIntra. Further, the wedge pattern index wedge_full_tab_idx that specifies the wedge pattern indicating the division pattern in the PU is decoded.
  • the variable length decoding unit 11 decodes the MPM flag mpm_flag indicating whether or not the intra prediction mode of the target PU matches the estimated prediction mode MPM.
  • the flag indicates that the intra prediction mode of the target PU matches the estimated prediction mode MPM.
  • the prediction mode numbers “0” to “34” DC prediction, Planar prediction, Angular Among any prediction, this indicates any prediction mode except the estimated prediction mode MPM.
  • variable length decoding unit 11 further decodes the MPM index mpm_idx designating the estimated prediction mode MPM, and sets the estimated prediction mode indicated by the mpm_idx to the prediction mode predModeIntra.
  • variable length decoding unit 11 When the MPM flag is 0, the variable length decoding unit 11 further decodes an index rem_idx for designating a prediction mode other than the MPM, and is a prediction mode number excluding the estimated prediction mode MPM identified from the rem_idx. Any prediction mode number in 0 'to' 34 '(DC prediction, Planar prediction, or Angular prediction) is set to the prediction mode predModeIntra.
  • the variable length decoding unit 11 further includes a DC offset information decoding unit 111 (not shown), and the DC offset information decoding unit 111 decodes the DC offset information included in the target CU.
  • the DC offset information decoding unit 111 derives a CU DC offset information presence / absence flag cuDepthDcPresentFlag indicating the presence / absence of DC offset information in the target CU by the following equation.
  • cuDepthDcPresentFlag (sdc_flag
  • the intra-CU DC offset information presence / absence flag is 1, it indicates that DC offset information can exist in the target CU.
  • the flag is 0, it indicates that no DC offset information exists in the target CU.
  • the DC offset information decoding unit 111 corrects the depth prediction value of the region divided into one or more in the PU for each PU in the target CU. DC offset information for decoding is decoded.
  • the DC offset information decoding unit 111 derives an intra-PU DC offset information presence / absence flag puDepthDcPresentFlag indicating whether or not DC offset information related to the target PU can exist.
  • puDepthDcPresentFlag (DmmFlag
  • the DC offset information flag in PU is 1, it indicates that DC offset information can exist in the target PU, and when the flag is 0, it indicates that DC offset information does not exist in the target PU.
  • the DC offset information decoding unit 111 derives the number of divided areas dcNumSeg of the target PU based on the DMM flag of the target PU by the following formula.
  • dcNumSeg DmmFlag? 2: 1 That is, when the DMM flag is 1, the number of divided areas dcNumSeg of the target PU is set to 2, and when the DMM flag is 0, dcNumSeg is set to 1.
  • X? Y: Z is a ternary operator that selects Y when X is true (other than 0), and Z when X is false (0).
  • DcOffset [i] ! Depth_dc_offset_flag? 0: (1-2 * depth_dc_sign_flag [i]) * (depth_dc_abs [i] + dcNumSeg-2) That is, when the DC offset information presence / absence flag is 0, the DC offset value DcOffset [i] of the divided region Ri is set to 0, and when the DC offset information presence / absence flag is 1, depth_dc_sign_flag [i], depth_dc_abs [i] Based on the number of divided areas dcNumSeg, the DC offset value DcOffset [i] of the divided area Ri is set.
  • the derivation formula of the DC offset value is not limited to the above, and can be changed within a practicable range.
  • the DC offset value may be derived from the following equation.
  • DcOffset [i] (1-2 * depth_dc_sign_flag [i]) * (depth_dc_abs [i] + dcNumSeg-2)
  • the inverse quantization / inverse transform unit 13 performs an inverse quantization / inverse transform process on each block included in the target CU based on the TT information TTI. Specifically, for each target TU, the inverse quantization / inverse transform unit 13 performs inverse quantization and inverse orthogonal transform on the quantized prediction residual included in the TU information TUI corresponding to the target TU, thereby performing the target TU.
  • the prediction residual D (or resSamples [x] [y]) for each pixel corresponding to is restored.
  • the orthogonal transform refers to an orthogonal transform from the pixel region to the frequency region.
  • the inverse orthogonal transform is a transform from the frequency domain to the pixel domain.
  • Examples of inverse orthogonal transform include inverse DCT transform (Inverse Discrete Cosine Transform), inverse DST transform (Inverse Discrete Sine Transform), and the like.
  • the inverse quantization / inverse transform unit 13 supplies the restored prediction residual D to the adder 15. Note that, when the SDC flag is 1, the inverse quantization / inverse transformation unit 13 omits the inverse quantization / inverse transformation process, and the prediction residual D (or resSamples [x] [y]) for each pixel of the target TU. Is set to 0 and supplied to the adder 15.
  • the predicted image generation unit 14 generates a predicted image based on the PT information PTI for each PU included in the target CU. Specifically, the predicted image generation unit 14 is a decoded image by performing intra prediction or inter prediction for each target PU according to the parameters included in the PU information PUI (prediction information Info) corresponding to the target PU. A predicted image Pred is generated from the locally decoded image P ′. The predicted image generation unit 14 supplies the generated predicted image Pred to the adder 15. The configuration of the predicted image generation unit 14 will be described in more detail later.
  • the adder 15 adds the predicted image Pred supplied from the predicted image generation unit 14 and the prediction residual D supplied from the inverse quantization / inverse transform unit 13, thereby obtaining the decoded image P for the target CU. Generate.
  • the decoded image P that has been decoded is sequentially recorded in the frame memory 16.
  • decoded images corresponding to all tree blocks decoded before the target tree block are stored. It is recorded.
  • Decoded image # 2 corresponding to # 1 is output to the outside.
  • the predicted image generation unit 14 generates and outputs a predicted image based on the PT information PTI.
  • the PU information PTI input to the predicted image generation unit 14 includes a prediction mode (IntraPredMode) and a color difference prediction mode (IntraPredModeC).
  • IntraPredMode a prediction mode
  • IntraPredModeC a color difference prediction mode
  • the definition of the prediction mode luminance / color difference
  • FIG. 7 shows an example of prediction mode numbers corresponding to the classification of intra prediction schemes used in the video decoding device 1.
  • Planar prediction (INTRA_PLANAR) is '0'
  • DC prediction (INTRA_DC) is '1'
  • Angular prediction (INTRA_ANGULAR) is '2' to '34'
  • DMM1 prediction (INTRA_DMM_WFULL) is '35'
  • DMM4 prediction INTRA_DMM_CREDTEX
  • DMM1 prediction and DMM4 prediction are generically called depth intra prediction.
  • Depth intra prediction is based on a depth model in which a target block (also referred to as a depth block) on a depth map is composed of two non-rectangular flat regions, and the depth value of each flat region is expressed by a fixed value.
  • a depth block dividing method there are a wedgelet partition called DMM1 and a contour partition called DMM4. This specification describes a method using wedgelet splitting.
  • FIG. 8 shows prediction directions corresponding to the prediction mode identifiers for 33 types of prediction modes belonging to the direction prediction.
  • FIG. 9 is a functional block diagram illustrating a configuration example of the predicted image generation unit 14.
  • this structural example has illustrated the functional block which concerns on the prediction image production
  • FIG. 9 is a functional block diagram illustrating a configuration example of the predicted image generation unit 14.
  • this structural example has illustrated the functional block which concerns on the prediction image production
  • the predicted image generation unit 14 includes a prediction unit setting unit 141, a reference pixel setting unit 142, a switch 143, a reference pixel filter unit 144, and a predicted image derivation unit 145.
  • the prediction unit setting unit 141 sets the PU included in the target CU as the target PU in a prescribed setting order, and outputs information about the target PU (target PU information).
  • the target PU information includes at least the size nS of the target PU, the position of the target PU in the CU, and the index (luminance color difference index cIdx) indicating the luminance or color difference plane of the target PU.
  • the switch 143 outputs the reference pixel to the corresponding output destination based on the luminance / color difference index cIdx and the prediction mode predModeIntra among the input target PU information. More specifically, the luminance color difference index cIdx is 0 (the pixel to be processed is luminance), and the prediction mode predModeIntra is 0 to 34 (the prediction mode is Planar prediction or DC prediction, Alternatively, when Angular prediction is performed (predModeIntra ⁇ 35), the switch 143 outputs the input reference pixel to the reference pixel filter unit 144.
  • the switch 143 outputs the input reference pixel to the predicted image deriving unit 145.
  • the reference pixel filter unit 144 applies a filter to the input reference pixel value, and outputs a reference pixel value after the filter application. Specifically, the reference pixel filter unit 144 determines whether to apply the filter according to the target PU size and the prediction mode predModeIntra.
  • the predicted image deriving unit 145 generates and outputs a predicted image predSamples of the target PU based on the input PU information (prediction mode predModeIntra, luminance color difference index cIdx, PU size nS) and the reference pixel p [x] [y]. To do. Detailed description of the predicted image deriving unit 145 will be described later.
  • the prediction unit setting unit 141 sets one of the PUs included in the CU as the target PU according to a predetermined order, and sets the target PU information as the reference pixel setting unit 142 and the switch. It outputs to 143 (S11).
  • the reference pixel setting unit 142 sets the reference pixel of the target PU using the decoded pixel value read from the external frame memory (S12).
  • the switch 143 determines whether the target PU is luminance or color difference based on the input target PU information, or whether the prediction mode predModeIntra is DMM prediction, and switches the output according to the determination result ( S13).
  • the output of the switch 143 is connected to the reference pixel filter unit 144. Subsequently, the reference pixel is input to the reference pixel filter unit 144, the reference pixel filter is applied according to the prediction mode separately input, and the reference pixel after the filter application is output to the predicted image derivation unit 145 (S14). ).
  • the output of the switch 143 is output to the prediction image deriving unit 145. Connected.
  • the predicted image derivation unit 145 generates predicted images predSamples in the target PU based on the input PU information (prediction mode predModeIntra, luminance color difference index cIdx, PU size nS) and the reference pixel p [x] [y]. And output (S15).
  • the prediction unit setting unit 141 determines whether the prediction images of all the PUs in the target CU have been generated (S16). When the prediction image of some PUs in the target CU has not been generated (NO in S16), the process returns to S1, and the prediction image generation process for the next PU in the target CU is executed. If predicted images of all PUs in the target CU have been generated (YES in S16), the predicted images of the luminance and color difference of each PU in the target CU are combined and output as a predicted image of the target CU, and the process ends. To do.
  • the predicted image derivation unit 145 further includes a DC prediction unit 145D, a Planar prediction unit 145P, an Angular prediction unit 145A, and a DMM prediction unit 145T.
  • the predicted image derivation unit 145 selects a prediction method used for generating a predicted image based on the input prediction mode predModeIntra.
  • the selection of the prediction method is realized by selecting a prediction method corresponding to the prediction mode number of the input prediction mode predModeIntra based on the definition of FIG.
  • the predicted image deriving unit 145 derives a predicted image corresponding to the selection result of the prediction method. More specifically, the prediction image deriving unit 145, when the prediction method is Planar prediction, DC prediction, Angular prediction, and DMM prediction, respectively, Planar prediction unit 145P, DC prediction unit 145D, Angular prediction unit 145A, and A predicted image is derived by the DMM prediction unit 145T.
  • the DC prediction unit 145D derives a DC prediction value corresponding to the average value of the pixel values of the input reference pixels, and outputs a prediction image using the derived DC prediction value as a pixel value.
  • the Planar prediction unit 145P generates and outputs a prediction image based on pixel values derived by linearly adding a plurality of reference pixels according to the distance to the prediction target pixel.
  • the Angular prediction unit 145A generates and outputs a prediction image corresponding to the target PU using reference pixels in a prediction direction (reference direction) corresponding to the input prediction mode predModeIntra.
  • main reference pixels are set according to the value of the prediction mode predModeIntra, and the predicted image is generated with reference to the main reference pixels in units of lines or columns in the PU.
  • the DMM prediction unit 145T generates and outputs a prediction image corresponding to the target PU based on DMM prediction (also referred to as depth modeling mode or depth intra prediction) corresponding to the input prediction mode predModeIntra.
  • DMM prediction also referred to as depth modeling mode or depth intra prediction
  • FIG. 11 is a conceptual diagram of DMM prediction executed in the DMM prediction unit 145T.
  • the depth map mainly has an edge region representing an object boundary and a flat region representing an object area (the depth value is almost constant).
  • the target block is divided into two regions P1 and P2 along the edge of the object, and as shown in FIG.
  • Wedge pattern (wedgelet pattern) WedgePattern [x] [y] is a matrix with the size of the width x height of the target block (target PU), and 0 or 1 for each element (x, y) It is set and indicates which of the two regions P1 and P2 each pixel of the target block belongs to. In the example of FIG. 11 (b), if the value of the element is 0, it belongs to the region P1, and if it is 1, it belongs to the region P2. Next, as shown in FIG. 11 (c), a prediction image is generated by filling the depth prediction values in the regions P1 and P2.
  • wedge pattern a wedge pattern divided by a line segment called a wedgelet
  • wedge pattern and the wedgelet pattern are the same (two-dimensional pattern divided into two regions). There is no particular need to distinguish.
  • a wedge pattern (wedgelet pattern) is also simply called a pattern.
  • FIG. 1 is a functional block diagram showing a configuration example of the DMM prediction unit 145T.
  • the DMM prediction unit 145T includes a wedge pattern deriving unit 145T2 and a DC predicted value deriving unit 145T3.
  • the DMM prediction unit 145T activates the wedge pattern generation unit corresponding to the input prediction mode predModeIntra, and generates a wedge pattern wedgePattern [x] [y] indicating the division pattern of the target PU. More specifically, when the prediction mode predModeIntra is the prediction mode number ‘35’, that is, in the INTRA_DMM_WEDGEFULL mode, the wedge pattern deriving unit 145T2 is activated. On the other hand, when the prediction mode predModeIntra is the prediction mode number '36', that is, in the INTRA_DMM_CPCREDTEX mode, it is activated.
  • wedge pattern deriving unit 145T2 Based on the input target PU size nS, wedge pattern index wedge_full_tab_idx, preset reference wedge pattern size nBS, and reference wedge pattern number NumWedgePattern [log2 (nS)], the wedge pattern deriving unit 145T2
  • the wedge pattern wedgePattern [x] [y] to be applied to the target PU is derived from the wedge pattern table array WedgePatternTable [] [x] [y] stored in and is output to the DC predicted value deriving unit 145T3.
  • the DC predicted value deriving unit 145T3 divides the target PU into two regions based on the wedge pattern wedgePattern [x] [y] indicating the division pattern of the target PU (for example, the region P1, shown in FIG. 11C), P2), a prediction value related to the region P1 and a prediction value related to the region P2 are derived on the basis of the input PT information and the reference pixel p [x] [y], and the prediction value derived in each region is calculated as a prediction image predSamples [ Derived by setting x] [y].
  • the wedge pattern deriving unit 145T2 activates the wedgelet pattern generation unit 145T4 only at the first activation, and generates a plurality of wedge patterns for each block size nS. Next, the generated wedge pattern is stored in the wedge pattern table 145T5.
  • a wedgelet pattern in which all elements are 0 is generated.
  • a start point S (xS, yS) and an end point E (xE, yE) are set in the wedgelet pattern.
  • the starting point and the ending point are set on the sides of the rectangle that forms the pattern.
  • a line segment is drawn between the start point S and the end point E using Bresenham's algorithm (shaded elements in FIG. 12 (b)).
  • FIG. 12C subsequently, as shown in FIG. 12D, for example, by setting the element corresponding to the coordinates on the line segment and the left side of the line segment to 1, the wedgelet pattern wedgePattern [x] [y] is generated.
  • patternSize is the size (vertical width, horizontal width) of the block for generating the wedgelet pattern.
  • FIG. 13 (a) shows two lines divided by a line segment connecting two points obtained by selecting a point on the line segment S on the upper side of the block and an end point on the line segment E on the left side of the block.
  • FIG. 13B shows two lines divided by a line segment connecting two points obtained by selecting a point on the line segment S on the right side of the block and an end point on the line segment E on the upper side of the block.
  • FIG. 13C two points divided by a line segment connecting two points obtained by selecting a point on the line segment S on the lower side of the block and an end point on the line segment E on the right side of the block are shown.
  • FIG. 13D shows two lines divided by a line segment connecting two points obtained by selecting a point on the line segment S on the left side of the block and an end point on the line segment E on the lower side of the block.
  • FIG. 13E shows two lines divided by a line segment connecting two points obtained by selecting a point on the line segment S on the upper side of the block and an end point on the line segment E on the lower side of the block.
  • FIG. 13F two points divided by a line segment connecting two points obtained by selecting a point on the line segment S on the left side of the block and an end point on the line segment E on the right side of the block are shown.
  • FIG. 14 is a block diagram showing a configuration of the wedgelet pattern generation unit 145T4.
  • the wedgelet pattern generation unit 145T4 includes a basic pattern generation unit 1461, a pattern storage unit 1464, and a rotation pattern generation unit 1565.
  • the basic pattern generation unit 1461 includes a line segment drawing unit 1462 and an area fill unit 1463.
  • the wedgelet pattern generation unit 145T4 of this embodiment does not generate all the wedgelet patterns by line segment drawing processing and area fill processing using the line segment drawing unit 1462 and the area filling unit 1463, but instead of some wedges.
  • the let pattern is generated by a rotation process using the rotation pattern generation unit 1565. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained.
  • FIG. 16 is a diagram showing a wedgelet pattern generation process in the wedgelet pattern generation unit 145T4.
  • the wedgelet pattern generation unit 145T4 of this embodiment is a wedgelet included in the first basic pattern which is a set of wedgelet patterns generated by the basic pattern generation unit 1461 shown in FIG.
  • the first basic pattern, the first rotation pattern, which is a set of wedgelet patterns the first basic pattern, the first rotation pattern, which is a set of wedgelet patterns
  • the first basic pattern second rotation pattern and the first basic pattern third rotation pattern are generated and included in the second basic pattern which is a set of wedgelet patterns generated by the basic pattern generation unit 1461 shown in FIG.
  • Each wedgelet pattern is referenced one by one and rotated by the rotation pattern generator 1565 shown in FIG. Tsu generating a second basic pattern
  • first rotation pattern is a set of Gillette pattern.
  • examples of the first rotation pattern, the second rotation pattern, and the third rotation pattern examples of 90 degrees, 180 degrees, and 270 degrees clockwise will be described. Regardless of this order, 270 degrees, 180 degrees, 90 degrees, etc. may be used. Further, the order may be 180 degrees, 90 degrees, 270 degrees, or the like.
  • FIG. 17 is a flowchart showing the operation of the wedgelet pattern generation unit 145T4.
  • posStart posWedgePattern (S0005)
  • posWedgePattern S0005
  • m 0..wBlkSize-1
  • n 0..wBlkSize-1
  • wBlkSize a block size (virtual block size).
  • the line drawing unit 1462 draws a line segment, and the area filling unit 1463 fills the area, thereby generating a wedgelet pattern of the start point and the end point indicated by the wedge direction wedgeOri and the variables m and n.
  • the pattern storage unit 1464 stores the generated wedgelet pattern in the wedge pattern table 145T5. More specifically, the number of wedge patterns NumWedgePattern is incremented by 1 when stored when the condition for matching is indicated in the pattern storage unit 1464. Set the number of wedge patterns NumWedgePattern at the time of storage to posWedgePattern.
  • the generated wedgelet pattern is stored in the wedge pattern table 145T5. More specifically, the number of wedge patterns NumWedgePattern is incremented by 1 when stored when the condition for matching is indicated in the pattern storage unit 1464. Set the number of wedge patterns NumWedgePattern at the time of storage to posWedgePattern.
  • patternSize patternSize
  • wBlkSize patternSize ⁇ resShift
  • the virtual enlargement shift value resShift is 0 or 1.
  • the wedgelet pattern generation unit 145T4 sets log2BlkSize as logarithm of the size of the wedge rate pattern to 2, 3, 4, and generates a wedgelet pattern of each size (4, 8, 16).
  • a pattern size patternSize, a virtual enlargement shift value resShift, and a virtual block size wBlkSize are introduced by the following equations.
  • the wedgelet pattern generation unit 145T4 sets 0 to the variable posWedgePattern (S0001).
  • the wedgelet pattern generation unit 145T4 sets a wedge direction wedgeOri (S0002), and generates a plurality of wedgelet patterns (a set of wedgelet patterns) corresponding to each wedge direction wedgeOri. Specifically, 0, 1, 2, 3, 4, and 5 are used for each wedge direction wedgeOri.
  • the wedgelet pattern generation unit 145T4 generates a wedgelet pattern by the basic pattern generation unit 1461 when the wedge direction wedgeOri is 0 or 4 (S0004 to S0009).
  • the rotation pattern generation unit 1465 reads the wedgelet pattern stored in the wedge pattern table 145T and rotates it to generate a wedgelet pattern.
  • the generated wedgelet pattern is stored in the wedge pattern table 145T by the pattern storage unit 1464.
  • the number of wedge tables for each size log2BlkSize is recorded in the array NumWedgePattern []. In the variable posWedgePattern, NumWedgePattern [log2BlkSize] is set.
  • the wedgelet pattern generation unit 145T4 sets posWedgePattern, which is the number of wedge tables NumWedgePattern [log2BlkSize] stored in the wedge pattern table 145T at that time, in the variable posStart before deriving the basic pattern (S0004).
  • the wedgelet pattern generation unit 145T4 sets posWedgePattern-1 which is the number of wedge tables NumWedgePattern [log2BlkSize] stored in the wedge pattern table 145T at that time after deriving the basic pattern to the variable posEnd (S0009).
  • the basic pattern generation unit 1461 performs the basic pattern by the following processing. (Wedge rate pattern constituting the basics) is executed.
  • the basic pattern generation unit 1461 inputs the start point (xS, yS) and the end point (xE, yE) to the line segment drawing unit 1462, and generates a line segment pattern in curPattern.
  • the basic pattern generation unit 1461 inputs the start point (xS, yS) and the end point (xE, yE) to the region fill unit 1463, and sets 1 in one of the curPattern regions.
  • the basic pattern generation unit 1461 inputs the pattern curPattern generated in the pattern storage unit 1464.
  • the line segment drawing unit 1462 is a line segment obtained from the start point (xS, yS) and end point (xE, yE) on the enlarged block of size patternSize ⁇ refShift obtained by shifting the wedgelet pattern size patternSize left by refShift. 1 is set to coordinates (xPos >> refShift, yPos >> refShift) obtained by shifting the coordinates (xPos, yPos) to the right by refShift.
  • the line segment drawing unit 1462 derives a line segment connecting the start point (xS, yS) and the end point (xE, yE) by the process indicated by the following pseudo code, and generates the pattern curPattern [] [] (wedgePattern [] []) Output.
  • FIG. 20 shows the relationship between the virtual coordinates (posX, posY) of the present embodiment and the patterns.
  • the line segment drawing unit 1462 sets virtual coordinates (posX, posY) on a virtual block of wBlkSize ⁇ wBlkSize as a point on a line connecting the start point (xS, yS) and the end point (xE, yE).
  • the line segment drawing unit 1462 secures a virtual block on the memory and does not write 1 to the virtual coordinates (posX, posY), but converts the virtual coordinates to the memory corresponding to the pattern of patternSize ⁇ patternSize. Write 1 to the coordinates (posY >> resShift, posX >> resShift) shifted right by resShift.
  • the line segment drawing unit 1462 moves the start point (xS, yS) and end point (xE, yE) on the virtual block size wBlkSize, and executes a process of setting the pixel of the virtual coordinates (posX, posY) to 1.
  • the line segment drawing process is operated.
  • the line segment drawing unit 1462 substitutes 1 for the pattern curPattern [] []
  • the virtual coordinates are shifted right by the virtual enlargement shift value resShift to change the coordinates (posY >> resShift ⁇ ⁇ , posX >> resShift).
  • the region fill unit 1463 fills one of the two regions divided by the line segment with 1. The other area remains 0. In the following fill processing, the region is filled so that the value of the pattern of the upper left coordinate is always 1. In another configuration of the wedgelet pattern generation unit 145T4, the area may be filled so that the value of the upper left coordinate pattern is always zero.
  • the area fill unit 1463 fills the area by setting the value of the pattern curPattern [] [] to 1 by the process indicated by the following pseudo code.
  • curPattern [iX] [iY] 1 ⁇ That is, the area filling unit 1463 performs the following processing on the vertical component iY from 0 to the end point coordinate yE >> resShift.
  • yE >> resShift is a coordinate on the wedgelet pattern derived by right-shifting the end point coordinate yE in the virtual block by the virtual enlargement shift value resShift.
  • CurPattern is the wedge pattern wedgePattern [] [] to be processed.
  • FIG. 21 is a diagram for explaining another operation of the area filling unit 1463. Specifically, the area is filled by setting the value of the pattern curPattern [] [] to 1 by the process shown in the following pseudo code.
  • the area fill unit 1463 performs the following processing on the vertical component iY from 0 to curSize-1 (loop B0).
  • the area filling unit 1463 searches for a position where the pattern value curPattern [iX] [iY] is 1 with respect to the horizontal component iX starting from curSize ⁇ 1 (processing B1). That is, as long as the pattern value curPattern [iX] [iY] is 0, the value of iX is decreased one by one. In FIG. 21A, a point iX1 is found.
  • the area fill unit 1463 performs the following pseudo code processing, for example.
  • the rotation pattern generation unit 1465 generates a rotation pattern of the basic pattern by reading out and rotating the basic patterns stored in the wedge pattern table 145T one by one (corresponding to FIG. 16B) (S0010 to S0010). S0013).
  • each WedgePatternTable [log2BlkSize] [pos] of the wedge pattern table 145T specified by pos from startPos (0 in this case) to endPos is used as a reference pattern refPattern [] [] and rotated by the following processing ROT.
  • the subsequent pattern wedgePattern [] [] is derived.
  • wedgePattern [x] [y] refPattern [i] [j] R1
  • i and j are values in the range of 0..patternSize.
  • offsetX and offsetY are offsets set so that the coordinate (x, y) after coordinate conversion satisfies 0 or more and patternSize-1 or less.
  • cInc corresponds to cos ⁇
  • sInc corresponds to sin ⁇
  • cInc 2 + sInc 2 1 is satisfied.
  • the rotation pattern generation unit 1465 performs a process in which cInc is set to 0 or ⁇ 1, sInc is set to 1, ⁇ 1 (when cInc is 0), or 0 (when cInx is ⁇ 1) as the process ROT. Do.
  • the rotation pattern generation unit 1465 generates coordinates (i, j) on the reference pattern when generating the target pattern wedgePattern [] [] from the reference pattern refPattern [] [] as shown in the following process ROT ′. Convert the coordinates to coordinates (x, y) on the target pattern, and change the pixel refPattern [i] [j] on coordinates (i, j) on the reference pattern to pixels on coordinates (x, y) on the target pattern It may be used as wedgePattern [x] [y].
  • xOffset cInc-sInc ⁇ 0? patternSize-1?
  • yOffset sInc + cInc ⁇ 0?
  • the pattern storage unit 1464 If there is no matching (overlapping) wedgelet pattern in the wedge pattern table for the wedgelet patterns generated by the basic pattern generation unit 1461 and the rotation pattern generation unit 1465, the pattern storage unit 1464 is wBlksize ⁇ wBlksize. Add to the wedge pattern table WedgePatternTable [log2BlkSize] [NumWedgePattern [log2BlkSize]]. More specifically, the generated wedgelet pattern wedgePattern [x] [y] is set to the corresponding element of the wedge pattern table WedgePatternTable by the following equation.
  • the overlapping wedgelet pattern is the same divided pattern as the generated wedgelet pattern, or a wedgelet pattern obtained by inverting each element value of the generated wedgelet pattern (for example, in FIG. 11B). , 0 to 1 and 1 to 0).
  • wBlksize indicates the size of the width and height of the block for generating the wedgelet pattern
  • the array NumWedgePattern [] is a wedge pattern table for each block size using the logarithm of the block size (log2BlkSize) as an argument. Represents the number of wedgelet patterns added to (number of wedge patterns). Each time a wedgelet pattern is added to the wedge pattern table, 1 is added to the number of wedge patterns NumWedgePattern [log2BlkSize]. Note that the initial value of NumWedgePattern is 0. The number of wedgelet patterns of size log2BlkSize stored in the wedge pattern table 145T5 is NumWedgePattern [log2BlkSize].
  • FIG. 18 is a flowchart showing the operation of the pattern storage unit 1464.
  • the pattern storage unit 1464 completes the process without storing when the match determination C1 is performed and it is determined that they match, and the process proceeds to S2002 when it is determined that they do not match.
  • the pattern storage unit 1464 includes the pattern WedgePatternTable [log2BlkSize] [k] [x] [y] and the target pattern wedgePattern [x] stored in the wedge pattern table 145T5 of the index k (0..NumWedgePattern [log2BlkSize]-1). ] [Y] are compared, and if even one is not equal, the match flag is set to 0 (match determination process C1).
  • the pattern storage unit 1464 performs the inversion match determination C2 and ends the process without storing if it is determined that they match, and otherwise shifts to S2003.
  • the pattern storage unit 1464 includes the pattern WedgePatternTable [log2BlkSize] [k] [x] [y] and the target pattern wedgePattern [x] stored in the wedge pattern table 145T5 of the index k (0..NumWedgePattern [log2BlkSize]-1). ] [Y] are compared, and if one is equal (if it is different from the inverted pattern), the match flag is set to 0 (reverse match determination processing C2).
  • the pattern storage unit 1464 stores the generated wedgelet pattern in the wedge pattern table 145T5. Only when the match determination C1 and the inversion match determination C2 determine that there is no match and patIdenticalFlag is 0, the data is stored. The number of wedge patterns NumWedgePattern [log2BlkSize] is incremented by 1 when stored.
  • FIG. 15 is a flowchart showing processing focusing on each basic pattern generation and each rotation pattern generation in the wedgelet pattern generation processing in the wedgelet pattern generation unit 145T4.
  • FIG. 19 is a table showing generation parameters used for basic pattern generation and rotation pattern generation. By using parameters, each pattern can be generated by a common process. Further, each basic pattern generation and each rotation pattern generation may be performed using individual processing (program, circuit) obtained by expanding the generation parameters of the figure without using common processing (program, circuit).
  • the wedgelet pattern generation unit 145T4 generates a first basic pattern generation in the basic pattern generation unit 1461 (corresponding to FIG. 16A).
  • the basic pattern generation includes a start point, end point setting, line segment drawing, and area fill.
  • the start point is a point on the line segment S on the upper side of the block
  • the end point is a point on the line segment E on the left side of the block.
  • xPosS, yPosS, xPosE, and yPosE may be set to initial values, and xIncS, yIncS, xIncE, and yIncE may be incremented to set the start point and end point as follows.
  • xS (xPosS + m * xIncS)
  • yS (yPosS + m * yIncS)
  • xE (xPosE + n * xIncE)
  • yE (yPosE + n * yIncE)
  • the area filling unit 1463 searches for a pixel having a pattern of 1, and sets a continuing pixel to 1 if there is a pixel having a pattern of 1.
  • This area fill can use a common process for the first basic pattern and the second basic pattern.
  • the line segment drawing unit 1462 of the present embodiment has an effect that one area fill process can be used in common without using a different area fill process for each derived wedgelet pattern.
  • the pattern storage unit 1464 stores the pattern filled by the area fill unit 1463 in the wedge pattern table 145T.
  • the number of tables NumWedgePattern [log2BlkSize] stored in the wedge pattern table 145T before derivation of the basic pattern is a variable startPos
  • the variable startPos is 0, and the variable endPos is the number of wedge pattern tables 145T after the first basic pattern is derived.
  • the rotation pattern generation unit 1465 generates a rotation pattern of a basic pattern by reading and rotating the basic patterns stored in the wedge pattern table 145T one by one.
  • each WedgePatternTable [log2BlkSize] [pos] of the wedge pattern table 145T designated by pos from startPos (here 0) to endPos (here, the number of wedge tables after deriving the first basic pattern-1) is set.
  • the rotation pattern generation unit 1465 of the present embodiment generates a target wedgelet pattern wedgePattern [x] [y] from the input reference wedgelet pattern refPattern [i] [j], and coordinates (i , J) as the value of the target wedgelet pattern wedgePattern [x] [y] on the coordinates (x, y) obtained by coordinate transformation of the rotation matrix, the value refPattern of the coordinates (i, j) of the reference wedgelet pattern Use [i] [j]. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained.
  • the rotation pattern generation unit 1465 uses the wedgelet pattern between the start point and end point set by the basic pattern setting unit 1461 as an input refPattern [] [], and uses the wedgelet pattern wedgePattern [] [] as a rotation pattern. To derive.
  • the generated pattern wedgePattern [] [] is stored in the pattern storage unit 1464.
  • the rotation pattern generation unit 1465 generates a rotation pattern of the basic pattern by reading and rotating the basic patterns one by one stored in the wedge pattern table 145T. (Equivalent to FIG. 16C).
  • the rotation pattern generation unit 1465 reads the basic patterns stored in the wedge pattern table 145T one by one and rotates them to generate a rotation pattern of the basic pattern.
  • the wedgelet pattern of the wedge direction wedgeOri 3 shown in FIG.
  • the wedgelet pattern generation unit 145T4 generates second basic pattern generation in the basic pattern generation unit 1461 (corresponding to FIG. 16A).
  • the start point is a point on the line segment S on the upper side of the block
  • the end point is the lower side of the block. This is a point on line E.
  • the start point is a point on the line segment S on the left side of the block
  • the end point is a point on the line segment E on the right side of the block.
  • the area filling unit 1463 fills one of the two areas divided by the line segment derived by the line segment drawing unit 1462 with 1. The other area remains 0. Specifically, the fill is performed by the process indicated by the following pseudo code.
  • the generated pattern wedgePattern [] [] is stored in the pattern storage unit 1464.
  • the number of tables NumWedgePattern [log2BlkSize] stored in the wedge pattern table 145T before derivation of the basic pattern is a variable startPos
  • the rotation pattern generation unit 1465 reads the second basic patterns stored in the wedge pattern table 145T one by one and rotates them to rotate the second basic patterns. Generate a pattern.
  • the wedgelet pattern of the wedge direction wedgeOri 5 shown in FIG.
  • the WedgePatternTable [log2BlkSize] [pos] of the wedge pattern table 145T specified by pos from startPos to endPos is used as the reference pattern refPattern [] [] to derive the rotated pattern wedgePattern [] []. .
  • iOffset 0
  • the generated pattern wedgePattern [] [] is stored in the pattern storage unit 1464.
  • FIG. 22 is a diagram illustrating the configuration of the wedgelet pattern generation unit 145T4 ′.
  • the wedgelet pattern generation unit 145T4 ′ includes a basic pattern generation unit 1461, a pattern storage unit 1464 ′, and a rotation pattern generation unit 1565 ′.
  • the rotation pattern generation unit 1465 ′ performs inversion in some cases when setting the target pattern based on the reference pattern refPattern. Specifically, the rotation pattern generation unit 1465 ′ performs pseudo code processing shown in the following processing ROT.
  • Equation R2 is an equation for performing inversion according to conditions in addition to rotation so that the value of the wedgelet pattern at the upper left coordinate (0, 0) of the target pattern is 1.
  • FIG. 24 is a diagram for explaining the operation of the rotation pattern generation unit 1465 ′ of the present embodiment.
  • the area filling unit 1463 generates a wedgelet pattern in which the value of the wedgelet pattern at the upper left coordinate is 1.
  • inversion refers to an operation of switching 1 and 0.
  • the value refPattern [i0] [j0] of the reference pattern coordinate (i0, j0) on a certain reference pattern is referred to as the value of the upper left coordinate (0, 0) of the target pattern after rotation.
  • the rotation pattern generation unit 1465 ′ sets refPattern [i] [j] without inversion, and the reference pattern value When refPattern [i0] [j0] is 0, it is inverted and 1-refPattern [i] [j] is set.
  • Coordinates (i0, j0) before rotation, where coordinates (x, y) become (0,0) after rotation, are obtained as follows.
  • refPattern [iOffset] [jOffset] 1
  • refPattern [i] [j] is not inverted and refPattern [i] [j] is set as the rotation pattern value
  • refPattern [iOffset] When jOffset] is 0, the reference pattern refPattern [i] [j] is inverted and 1-refPattern [i] [j] is set as the rotation pattern value, so that the value of the upper left coordinate pattern is always 1.
  • the rotation pattern can be derived.
  • the region fill unit 1463 included in the wedgelet pattern generation unit 145T4 ′ when the region fill unit 1463 included in the wedgelet pattern generation unit 145T4 ′ generates a wedgelet pattern in which the upper left of the wedgelet pattern is always 1, the rotation pattern included in the wedgelet pattern generation unit 145T4 ′.
  • the generation unit 1465 ′ can easily generate a pattern in which the upper left of the wedgelet pattern is always 1 (or always 0).
  • FIG. 23 is a diagram showing a wedgelet pattern generation process in the wedgelet pattern generation unit 145T4 ′.
  • the pixel value of the upper left coordinate of the wedgelet pattern is inverted before and after the rotation.
  • the pixel value of the upper left coordinate of the wedgelet pattern is not inverted.
  • the change in the value of the wedgelet pattern at the upper left coordinate can be eliminated by inverting the rotation pattern according to the condition when generating the rotation pattern as in Expression R2.
  • a pattern in which 1 and 0 of the wedgelet pattern are inverted is not generated from the basic pattern generation unit 1461 and the rotation pattern generation unit 1565 ′, and thus the pattern is stored.
  • the coincidence determination process in the unit 1464 ′ can be simplified as compared with the wedgelet pattern generation unit 145T4.
  • FIG. 25 is a diagram illustrating a wedgelet pattern generation unit 145T4 ′ according to another embodiment of the present embodiment.
  • the wedgelet pattern generation unit 145T4 ′ includes an area fill unit 1463 ′ and a rotation pattern generation unit 1465 ′′ instead of the region fill unit 1463 and the rotation pattern generation unit 1465.
  • the area filling unit 1463 ′ performs area filling so that the value of the upper left coordinate pattern is always 0.
  • the rotation pattern generation unit 1465 ′′ uses the following formula R2 ′ instead of the formula R2.
  • the rotation pattern generation unit 1465 ′′ having the above-described configuration allows the upper left coordinates of the wedgelet pattern before and after the rotation. There is an effect that the value of the pattern is not changed.
  • FIG. 26 is a flowchart showing the operation of the pattern storage unit 1464 ′ included in the wedgelet pattern generation unit 145T4 ′.
  • the pattern storage unit 1464 ′ ends the process without storing if it is determined to match in the match determination C1, and transitions to S2013 if it is determined that they do not match.
  • the pattern storage unit 1464 includes the pattern WedgePatternTable [log2BlkSize] [k] [x] [y] and the target pattern wedgePattern [x] stored in the wedge pattern table 145T5 of the index k (0..NumWedgePattern [log2BlkSize]-1). ] [Y] are compared, and if even one is not equal, the match flag is set to 0 (match determination process C1).
  • the pattern storage unit 1464 ′ stores the generated wedgelet pattern in the wedge pattern table 145T5 only when there is no match in the match determination C1, that is, when patIdenticalFlag is 0.
  • the number of wedge patterns NumWedgePattern [log2BlkSize] is incremented by 1 when stored.
  • the region fill unit 1463 and the rotation pattern generation unit 1465 ′ (or the rotation pattern generation unit 1465 ′′) always set the upper left pixel of the wedgelet pattern to 1 (or 0). Accordingly, since the wedgelet pattern is generated, it is not necessary to perform the inversion match determination C2 in the pattern storage unit 1464 ′. Therefore, according to the wedgelet pattern generation unit 145T4 ′, it is only necessary to perform the coincidence determination C1, and thus the determination process for determining whether the generated pattern matches the wedgelet pattern already stored in the wedge pattern table 145T5 is reduced. Has the effect of making
  • the wedgelet pattern generation unit 145T4 ′ may use an expression R3 that is simpler than the following expressions R2 and R2 ′ as the rotation pattern generation unit 1465 ′.
  • the rotation pattern generation unit 1465 ′ using Expression R3 it is not guaranteed that the upper left pixel of the wedgelet pattern derived as the rotation pattern is always 1 (or 0), but the upper left pixel of the reference pattern is 1 (or 0). In many cases, the upper left pixel of the wedgelet pattern is 1 (or 0). Thereby, it is not necessary to perform the inversion match determination C2 in the pattern storage unit 1464 ′. Therefore, according to the wedgelet pattern generation unit 145T4 ′, it is only necessary to perform the coincidence determination C1, and thus the determination process for determining whether the generated pattern matches the wedgelet pattern already stored in the wedge pattern table 145T5 is reduced. Has the effect of making It should be noted that there is no problem even if some of the inverted and matching patterns are stored in the wedge pattern table 145T5.
  • wedge pattern generation unit 145T4 ′′ In many cases, the wedge pattern (wedgelet pattern) of the rotation pattern generated from the rotation pattern generation units 1465 and 1465 ′ matches the wedge pattern (wedgelet pattern) already generated and stored in the wedge pattern table 145T5. There is nothing. For this reason, it is appropriate to simplify the operation of the pattern storage unit so that the coincidence determination is omitted in the rotation pattern.
  • the wedgelet pattern generation unit 145T4 ′′ including the pattern storage unit 1464 ′′ having such a configuration will be described.
  • the wedgelet pattern generation unit 145T4 ′′ has the same configuration as the wedgelet pattern generation unit 145T4 and the wedgelet pattern generation unit 145T4 ′, but the pattern storage unit 1464 instead of the pattern storage unit 1464 and the pattern storage unit 1464 ′. "" Is used.
  • FIG. 27 is a flowchart showing the operation of the pattern storage unit 1464 ′′ included in the wedgelet pattern generation unit 145T4 ′′.
  • the wedgelet pattern is stored in the wedge pattern table 145T5 according to the conditions.
  • wedgeOri 1,2,3,5 indicating a rotation pattern
  • the process proceeds to S2023, and the wedgelet pattern is stored in the wedge pattern table 145T5 regardless of the conditions.
  • the pattern storage unit 1464 ′′ matches the wedgelet pattern already stored in the wedge pattern table 145T5, the pattern storage unit 1464 ′′ proceeds to S2025 without storing the pattern. If they do not match, the process proceeds to S2023.
  • the match determination C1 and the inversion match determination C2 that have already been described can be used.
  • the expression R2, R2 ′ that is inverted according to the condition at the time of reference such that the upper left pixel of the wedgelet pattern is 1 (or 0) or the expression R3 that is always inverted at the time of reference is used.
  • the pattern storage unit 1464 ′′ only performs the match determination C 1 without performing the inversion match determination C 2, similarly to the pattern storage unit 1464 ′.
  • the pattern storage unit 1464 ′′ stores the generated wedgelet pattern in the wedge pattern table 145T5.
  • the case of storing is the case of the basic pattern, the case of not matching the wedgelet pattern already stored in the wedge pattern table 145T5, or the case of the rotation pattern.
  • the number of wedge patterns NumWedgePattern [log2BlkSize] is incremented by 1 when stored.
  • the matching determination is performed only with the pattern between the patterns in which the wedge direction wedgeOri matches the basic pattern. There is an effect that the amount is small.
  • FIG. 28 is another example of a flowchart showing the wedgelet pattern generation processing in the wedgelet pattern generation unit 145T4, and generates the second basic pattern ahead of the first basic pattern.
  • S1011 Second Basic Pattern Generation A second basic pattern is generated by the same operation as S1005 described above with reference to FIGS. 16 (e) and 23 (e).
  • S1013 First Basic Pattern Generation A first basic pattern is generated by the same operation as S1001 already described with reference to FIGS. 16 (a) and 23 (a).
  • a first basic pattern third rotation pattern is generated by the same operation as S1004 already described with reference to FIGS. 16 (d) and 23 (d).
  • the effect of the wedgelet pattern generation unit 145T4 is the same as that when the first basic pattern is generated first. That is, the wedgelet pattern generation unit 145T4 of this embodiment does not generate all the wedgelet patterns by line segment drawing processing and region fill processing using the line segment drawing unit 1462 and the region fill unit 1463, but a part of them.
  • the wedgelet pattern is generated by a rotation process using the rotation pattern generation unit 1565. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained.
  • the wedge pattern table 145T5 records a wedge pattern table WedgePatternTable for each block size supplied from the wedgelet pattern generation unit 145T4.
  • the wedgelet pattern generation unit 145T4 provided in the video decoding device 1 according to the present embodiment described above includes all the wedgelet patterns as a line segment drawing process and a region fill process using the line segment drawing unit 1462 and the region fill unit 1463. In this case, some wedgelet patterns are generated by a rotation process using the rotation pattern generation unit 1565. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained.
  • the line drawing unit 1462 included in the video decoding device 1 according to the present embodiment described above includes the start point (xS on the enlarged block of size patternSize ⁇ refShift obtained by shifting the wedgelet pattern size patternSize left by refShift. , YS) and the coordinates (xPos >> ErefShift, yPos >> refShift) obtained by right-shifting the line segment coordinates (xPos, yPos) obtained from the end points (xE, yE) by refShift This has the effect of preventing an increase in the memory size used for line segment drawing processing.
  • the wedgelet pattern generation unit 145T4 ′ included in the video decoding device 1 according to the present embodiment described above uses the rotation pattern generation unit 1465 ′ to invert with rotation, so that the upper left of the wedgelet pattern is always 1 (or always). 0) can be easily generated (in the case of Formula R2).
  • a pattern that is 1 (or always 0) can be easily generated when the upper left of the wedgelet pattern is many (in the case of Expression R3).
  • the area filling unit 1463 included in the video decoding device 1 searches for a pixel having a pattern of 1, and sets a continuing pixel to 1 if there is a pixel having a pattern of 1.
  • one area fill process can be used in common without using a different area fill process for each derived wedgelet pattern.
  • the pattern storage unit 1464 ′′ of the wedgelet pattern generation unit 145T4 ′′ included in the moving image decoding device 1 according to the present embodiment described above performs matching determination only for the basic pattern, and performs matching determination for the rotation pattern. Since the data is stored without being performed, the processing amount is small.
  • the wedgelet pattern generation unit 145T4B includes a basic pattern generation unit 1461, a pattern storage unit 1464, and a rotation pattern generation unit 1565B, similar to the wedgelet pattern generation unit 145T4. , A line drawing unit 1462 and a region filling unit 1463.
  • FIG. 31 is a diagram showing a wedgelet pattern generation process in the wedgelet pattern generation unit 145T4.
  • the wedgelet pattern generation unit 145T4B according to the present embodiment generates a set of wedgelet patterns constituting the first basic pattern by the basic pattern generation unit 1461.
  • the rotation pattern generation unit 1465B rotates the individual wedgelet patterns included in the first basic pattern, which is the set of the wedgelet patterns generated immediately before, to set the wedgelet patterns.
  • a first basic pattern that is a first rotation pattern (first rotation pattern) is generated.
  • the rotation pattern generation unit 1465B rotates the individual wedgelet patterns included in the first basic pattern first rotation pattern, which is a set of the wedgelet patterns generated immediately before, so as to be wedges.
  • a first basic pattern second rotation pattern (second rotation pattern) that is a set of let patterns is generated.
  • the rotation pattern generation unit 1465B rotates each wedgelet pattern included in the first basic pattern second rotation pattern which is a set of the wedgelet patterns generated immediately before,
  • One basic pattern third rotation pattern (third rotation pattern) is generated.
  • the wedgelet pattern generation unit 145T4B of the present embodiment generates a set of wedgelet patterns constituting the second basic pattern by the basic pattern generation unit 1461.
  • the rotation pattern generation unit 1465B rotates the individual wedgelet patterns included in the second basic pattern, which is the set of the wedgelet patterns generated immediately before, to generate the first set of wedgelet patterns.
  • 2 basic pattern 1st rotation pattern (4th rotation pattern) is produced
  • the rotation pattern generation unit 1465B in order to generate the first rotation pattern, the second rotation pattern, the third rotation pattern, and the fourth rotation pattern, the rotation pattern generation unit 1465B will explain an example of 90 degrees clockwise, respectively. Instead, it can be rotated 270 degrees.
  • FIG. 32 is a flowchart showing the operation of the wedgelet pattern generation unit 145T4B.
  • the current wedge pattern number NumWedgePattern is set to a variable posStart (also called posWedgePattern).
  • the line drawing unit 1462 draws a line segment, and the area filling unit 1463 fills the area, thereby generating a wedgelet pattern that is a basic pattern of the start and end points indicated by the wedge direction wedgeOri, variables m, and n. To do. Specifically, the basic pattern generation unit 1461 derives the start point (xS, yS) and the end point (xE, yE) by the following equations.
  • the basic pattern generation unit 1461 may derive the start point (xS, yS) and the end point (xE, yE) by the following expressions as described later as a modification.
  • sizeScaleS and sizeScaleE are variables for changing the starting point and the ending point at intervals of sizeScaleS and sizeScaleE, respectively, and are derived from the following equations.
  • log2BlkSize is a logarithm with 2 as the base of the block size.
  • the wedgelet pattern If the generated wedgelet pattern satisfies a predetermined condition, the wedgelet pattern is stored in the wedge pattern table 145T5. When storing, the number of wedge patterns NumWedgePattern is incremented by one.
  • the rotation pattern generation unit 1465B generates a wedgelet pattern, which is a rotation pattern, using the wedgelet pattern indicated by pos stored in the wedge pattern table 145T5 as a reference wedgelet pattern.
  • the wedgelet pattern If the generated wedgelet pattern satisfies a predetermined condition, the wedgelet pattern is stored in the wedge pattern table 145T5. When storing, the number of wedge patterns NumWedgePattern is incremented by one.
  • the predetermined condition is that the match determination C1 or C2 in the pattern storage unit 164 is performed, and as a result, the stored wedgelet pattern and the generated wedgelet pattern do not overlap.
  • the variable n taking each value in the range from 0 to wBlkSize-1 the start point (xS, yS) and the end point (xE, yE) are set, and the line drawing unit 1462 and the area fill unit 1463 derive each pattern. . Since the line drawing unit 1462 and the area filling unit 1463 have already been described, description thereof will be omitted.
  • the basic pattern generation unit 1461 may change the unit for generating the wedge rate table as a modification. Specifically, set variable m to take each value in the range from 0 to (wBlkSize / sizeScaleS) -1, variable n to take each value in the range from 0 to (wBlkSize / sizeScaleE)-1, and start point (xS, yS ) And the end point (xE, yE) may be derived by the following equations.
  • sizeScaleS and sizeScaleE are variables for processing the units to be generated (decimation), and the line drawing unit 1462 and the region filling unit 1463 use the start point that changes in sizeScaleS units and the end point that changes in sizeScaleE units. Draw line segments, fill regions, and derive wedgelet patterns.
  • the rotation pattern generation unit 1465B generates a rotation pattern by reading and rotating the wedgelet patterns stored in the wedge pattern table 145T one by one as shown in FIG. 31 (corresponding to S0110 to S0113 in FIG. 32). ). Specifically, the rotated pattern wedgePattern [] [] is derived using each WedgePatternTable [log2BlkSize] [pos] of the wedge pattern table 145T specified by pos from startPos to endPos as the reference pattern refPattern [] [].
  • the rotation pattern generation unit 1465B included in the wedgelet pattern generation unit 145T4B will be described.
  • the rotation pattern generation unit 1465 already described has rotations of 90 degrees, 180 degrees, and 270 degrees, but the rotation pattern generation unit 1465B of this embodiment has one rotation direction (specifically, 90 degrees or 270 degrees). With only.
  • Expression R1 that does not perform inversion when deriving the rotation pattern wedgePattern [x] [y] from the reference pattern will be described, but the reference pattern refPattern [i] [j] is inverted according to conditions.
  • Expression R2, Expression R2 ′, or Expression R3 that always inverts the reference pattern may be used.
  • the wedgelet pattern generation unit 145T4B does not generate all the wedgelet patterns by the line segment drawing process and the area fill process using the line segment drawing unit 1462 and the area fill unit 1463, but a part of the wedges.
  • the let pattern is generated by a rotation process using the rotation pattern generation unit 1565B. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained. Furthermore, since the rotation pattern generation unit 1565B is a process of only a single angle rotation (90 degrees or 270 degrees in this case), an effect is obtained that the necessary rotation process is easy.
  • the moving image encoding device 2 is a device that generates and outputs encoded data # 1 by encoding the input image # 10.
  • the input image # 10 is a layer image including one or a plurality of viewpoint images TexturePic and a depth map DepthPic at the same time corresponding to the viewpoint image TexturePic.
  • FIG. 29 is a functional block diagram showing the configuration of the moving image encoding device 2.
  • the moving image encoding apparatus 2 includes an encoding setting unit 21, an inverse quantization / inverse conversion unit 22, a predicted image generation unit 23, an adder 24, a frame memory 25, a subtractor 26, a conversion / A quantization unit 27 and an encoded data generation unit 29 are provided.
  • the encoding setting unit 21 generates image data related to encoding and various setting information based on the input image # 10.
  • the encoding setting unit 21 generates the next image data and setting information.
  • the encoding setting unit 21 generates the CU image # 100 for the target CU by sequentially dividing the input image # 10 into slice units, tree block units, and CU units.
  • the encoding setting unit 21 generates header information H ′ based on the result of the division process.
  • the header information H ′ includes (1) information on the size and shape of the tree block belonging to the target slice and the position in the target slice, and (2) the size, shape and shape of the CU belonging to each tree block.
  • the encoding setting unit 21 refers to the CU image # 100 and the CU information CU 'to generate PT setting information PTI'.
  • the PT setting information PTI ' includes information on all combinations of (1) possible division patterns of the target CU for each PU and (2) prediction modes that can be assigned to each PU.
  • the encoding setting unit 21 supplies the CU image # 100 to the subtractor 26. In addition, the encoding setting unit 21 supplies the header information H ′ to the encoded data generation unit 29. Also, the encoding setting unit 21 supplies the PT setting information PTI ′ to the predicted image generation unit 23.
  • the inverse quantization / inverse transform unit 22 performs inverse quantization and inverse orthogonal transform on the quantized prediction residual for each block supplied from the transform / quantization unit 27, thereby predicting the prediction residual for each block. To restore.
  • the inverse orthogonal transform has already been described with respect to the inverse quantization / inverse transform unit 13 shown in FIG. 3, and thus the description thereof is omitted here.
  • the inverse quantization / inverse transform unit 22 integrates the prediction residual for each block according to the division pattern specified by the TT division information (described later), and generates the prediction residual D for the target CU.
  • the inverse quantization / inverse transform unit 22 supplies the prediction residual D for the generated target CU to the adder 24.
  • the predicted image generation unit 23 refers to the local decoded image P ′ and the PT setting information PTI ′ recorded in the frame memory 25 to generate a predicted image Pred for the target CU.
  • the predicted image generation unit 23 sets the prediction parameter obtained by the predicted image generation process in the PT setting information PTI ′, and transfers the set PT setting information PTI ′ to the encoded data generation unit 29.
  • the predicted image generation process performed by the predicted image generation unit 23 is the same as that performed by the predicted image generation unit 14 included in the video decoding device 1, and thus description thereof is omitted here. That is, the predicted image generation unit 14 includes a DMM prediction unit 145T including a wedge pattern deriving unit 145T2 and a DC predicted value deriving unit 145T3.
  • the DMM prediction unit 145T includes a wedgelet pattern generation unit 145T4.
  • the wedgelet pattern generation unit 145T4 includes a basic pattern generation unit 1461, a pattern storage unit 1464, and a rotation pattern generation unit 1565.
  • the basic pattern generation unit 1461 includes a line segment drawing unit 1462 and an area fill unit 1463.
  • the previously described wedgelet pattern generation unit 145T4 ′ and wedgelet pattern generation unit 145T4 ′ may be used instead of the wedgelet pattern generation unit 145T4.
  • a wedgelet pattern generation unit 145T4B including the rotation pattern generation unit 1465B already described may be used instead of the wedgelet pattern generation unit 145T4.
  • the adder 24 adds the predicted image Pred supplied from the predicted image generation unit 23 and the prediction residual D supplied from the inverse quantization / inverse transform unit 22 to thereby obtain the decoded image P for the target CU. Generate.
  • Decoded decoded image P is sequentially recorded in the frame memory 25.
  • decoded images corresponding to all tree blocks decoded prior to the target tree block for example, all tree blocks preceding in the raster scan order
  • the time of decoding the target tree block It is recorded.
  • the subtractor 26 generates a prediction residual D for the target CU by subtracting the prediction image Pred from the CU image # 100.
  • the subtractor 26 supplies the generated prediction residual D to the transform / quantization unit 27.
  • the transform / quantization unit 27 generates a quantized prediction residual by performing orthogonal transform and quantization on the prediction residual D.
  • the orthogonal transformation refers to transformation from the pixel region to the frequency region.
  • Examples of inverse orthogonal transformation include DCT transformation (DiscretecreCosine Transform), DST transformation (Discrete Sine Transform), and the like.
  • the transform / quantization unit 27 refers to the CU image # 100 and the CU information CU 'and determines a division pattern of the target CU into one or a plurality of blocks. Further, according to the determined division pattern, the prediction residual D is divided into prediction residuals for each block.
  • the transform / quantization unit 27 generates a prediction residual in the frequency domain by orthogonally transforming the prediction residual for each block, and then quantizes the prediction residual in the frequency domain to Generate quantized prediction residuals. Note that when the SDC flag is 1, the transform unit / quantization unit 27 omits frequency transform / quantization, and sets the prediction residual D (or resSamples [x] [y]) for each pixel of the target TU to 0. To do.
  • the transform / quantization unit 27 generates the quantization prediction residual for each block, TT division information that specifies the division pattern of the target CU, information about all possible division patterns for each block of the target CU, and TT setting information TTI ′ including is generated.
  • the transform / quantization unit 27 supplies the generated TT setting information TTI ′ to the inverse quantization / inverse transform unit 22 and the encoded data generation unit 29.
  • the encoded data generation unit 29 encodes header information H ′, TT setting information TTI ′, and PT setting information PTI ′, and multiplexes the encoded header information H, TT setting information TTI, and PT setting information PTI. Coded data # 1 is generated and output.
  • the wedgelet pattern generation unit 145T4 included in the moving image encoding device 2 according to the present embodiment described above includes all the wedgelet patterns, line segment drawing processing using the line segment drawing unit 1462 and the region fill unit 1463, and region fill. Rather than being generated by processing, some wedgelet patterns are generated by rotation processing using the rotation pattern generation unit 1565. Since the line segment drawing process and the area filling process having a large processing amount can be replaced with a rotation process having a small processing amount, an effect of reducing the processing is obtained.
  • the line drawing unit 1462 included in the video encoding device 2 according to the present embodiment described above has a starting point on the enlarged block of size patternSize ⁇ refShift obtained by shifting the wedgelet pattern size patternSize left by refShift ( xS, yS) and the coordinates (xPos >> refShift, yPos >> refShift) obtained by right-shifting the line segment coordinates (xPos, yPos) obtained from the end points (xE, yE) by refShift
  • refShift the coordinates (xPos >> refShift, yPos >> refShift) obtained by right-shifting the line segment coordinates (xPos, yPos) obtained from the end points (xE, yE) by refShift
  • the wedgelet pattern generation unit 145T4 ′ included in the moving image encoding device 2 according to the present embodiment described above is configured so that the line segment drawing unit 1462 and the rotation pattern generation unit 1465 ′ further use inversion with rotation, thereby using a wedge.
  • the area filling unit 1463 included in the moving picture coding apparatus 2 according to the present embodiment described above searches for a pixel whose pattern is 1, and sets a continuing pixel to 1 if there is a pixel whose pattern is 1. Thus, there is an effect that one area fill process can be used in common without using a different area fill process for each derived wedgelet pattern.
  • the pattern storage unit 1464 ′′ of the wedgelet pattern generation unit 145T4 ′′ included in the moving image encoding device 2 according to the present embodiment described above performs matching determination only for the basic pattern, and matches determination for the rotation pattern. Since the data is stored without performing processing, there is an effect that the processing amount is small.
  • the wedgelet pattern generation unit 145T4B included in the moving picture encoding device 2 according to the present embodiment described above performs the matching determination only for the basic pattern, and stores the rotation pattern without performing the matching determination. There is an effect that there is little.
  • the program for realizing the control function may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by a computer system and executed.
  • the “computer system” is a computer system built in either the moving picture decoding apparatus 1 or the moving picture encoding apparatus 2 and includes hardware such as an OS and peripheral devices.
  • the “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM or a CD-ROM, and a hard disk incorporated in a computer system.
  • the “computer-readable recording medium” is a medium that dynamically holds a program for a short time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line,
  • a volatile memory inside a computer system serving as a server or a client may be included and a program that holds a program for a certain period of time.
  • the program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.
  • the moving image decoding apparatus 1 may implement
  • LSI Large Scale Integration
  • Each functional block of the video decoding device 1 and the video encoding device 2 may be individually made into a processor, or a part or all of them may be integrated into a processor.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. Further, in the case where an integrated circuit technology that replaces LSI appears due to progress in semiconductor technology, an integrated circuit based on the technology may be used.
  • One aspect of the present invention is a DMM prediction apparatus including a wedge pattern derived by a wedgelet pattern generation unit and a DC predicted value deriving unit that derives a predicted value for each region divided by the wedge pattern.
  • the let pattern generation means includes a basic pattern generation unit that generates a basic pattern and a rotation pattern generation unit that derives a rotation pattern.
  • the basic pattern generation unit includes a line segment drawing unit and a region fill unit.
  • the rotation pattern generation unit generates a target wedgelet pattern from the input reference wedgelet pattern, and sets the value of the target wedgelet pattern on the coordinates (x, y) to (x, It is characterized in that it is derived using the value of the reference wedgelet pattern on the coordinates (i, j) obtained by converting the coordinates of y) with the rotation matrix.
  • the rotation pattern generation unit uses a value obtained by inverting the value of the coordinates (i, j) of the reference wedgelet pattern as the value of the target wedgelet pattern. .
  • One embodiment of the present invention is the first basic pattern generated by the basic pattern generator, the second basic pattern, and the first basic pattern first rotation generated from the first basic pattern by the rotation pattern generator.
  • the pattern, the first basic pattern, the second rotation pattern, the first basic pattern, the third rotation pattern, and the rotation pattern generation unit generate a wedgelet pattern from the second basic pattern generated from the second basic pattern. It is characterized by doing.
  • One embodiment of the present invention is characterized in that the rotation pattern generation unit derives a rotation pattern by inputting a wedgelet pattern between a start point and an end point set by the basic pattern setting unit.
  • the line segment drawing unit obtains coordinates (xPos, yPos) on a virtual block of size patternSize ⁇ refShift obtained by shifting the wedgelet pattern size patternSize to the left by refShift, and only refShift.
  • a feature is that 1 is set to coordinates (xPos >> refShift, yPos >> refShift) obtained by right shifting.
  • One embodiment of the present invention is characterized in that the area filling unit searches for a pixel having a pattern of 1, and sets a continuing pixel to 1 if there is a pixel having a pattern of 1.
  • One embodiment of the present invention is characterized by further comprising a pattern storage unit that performs matching determination only for the basic pattern and stores the rotation pattern without performing matching determination.
  • the basic pattern generation unit generates a first basic pattern and a second basic pattern
  • the rotation pattern generation unit generates a first rotation pattern, a second rotation pattern, a third rotation pattern
  • a rotation pattern of four rotation patterns is generated
  • the rotation pattern generation unit generates a rotation pattern based on the pattern generated immediately before.
  • the DMM prediction apparatus sets the number of patterns before generating a pattern of a certain group as a start start position posStart and the number of patterns before generating a rotation pattern minus 1 as an end position posEnd.
  • a rotation pattern is generated by referring to the pattern at each position pos at the end position and rotating by the rotation pattern generation unit.
  • the rotation pattern generation unit uses 90-degree rotation.
  • the rotation pattern generation unit rotates 90 degrees by changing the value (refPattern [) of the reference pattern refPattern at the position (x + y, wBlkSize-1-x + y) obtained by coordinate transformation of (x, y). Referring to x + y] [wBlkSize ⁇ 1 ⁇ x + y], a value Pattern [x] [y] of the rotation pattern at the position (x, y) is derived.
  • One embodiment of the present invention is characterized in that the rotation pattern generation unit uses 270-degree rotation.
  • One form of the image decoding apparatus of the present invention includes the above-described DMM prediction apparatus.
  • One form of the image coding apparatus of the present invention includes the above-described DMM prediction apparatus.
  • the present invention can be suitably applied to an image decoding apparatus that decodes encoded data obtained by encoding image data and an image encoding apparatus that generates encoded data obtained by encoding image data. Further, the present invention can be suitably applied to the data structure of encoded data generated by an image encoding device and referenced by the image decoding device.
  • 1 video decoding device (image decoding device) 11 Variable length decoding unit 111 DC offset information decoding unit 13 Inverse quantization / inverse conversion unit 14 Predicted image generation unit 141 Prediction unit setting unit 142 Reference pixel setting unit 143 Switch 144 Reference pixel filter unit 145 Predicted image derivation unit 145D DC prediction unit 145P Planar prediction unit 145A Angular prediction unit 145T DMM prediction unit (DMM prediction device) 145T2 wedge pattern deriving unit 145T3 DC predicted value deriving unit 145T4, 145T4B wedgelet pattern generating unit 145T5 wedge pattern table (buffer) 1461 Basic pattern generation unit 1462 Line segment drawing unit 1463 Area fill units 1464, 1464 ′, 1464 ′′ Pattern storage units 1465, 1465 ′, 1465 ′′, 1465B Rotation pattern generation unit 15 Adder 16 Frame memory 2 Video coding Device (image coding device) 21 Encoding setting unit 22 Inverse quantization / inverse conversion unit 23 Predictive image generation unit 24 Add

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 ウェッジレットパターン生成では、全てのパターンを線分描画処理、及び、領域フィル処理によって生成しているため、処理量が大きいという課題がある。 動画像復号装置(1)は、ウェッジパターンを生成するウェッジレットパターン生成部(145T4)と、ウェッジパターンを回転させることで回転パターンを導出する回転パターン生成部(1465)と、回転パターンをウェッジパターンテーブルへ追加するパターン格納部(1464)と、ウェッジパターンテーブル(145T5)に含まれるウェッジパターンで分割される領域毎の予測値を導出するDC予測値導出部(145T3)と、を備える。

Description

画像復号装置
 本発明は、画像を表す符号化データを復号する画像復号装置、および画像を符号化することによって符号化データを生成する画像符号化装置に関する。
 複数視点の画像符号化技術には、複数の視点の画像を符号化する際に画像間の視差を予測することによって情報量を低減する視差予測符号化や、その符号化方法に対応した復号方法が提案されている。視点画像間の視差を表すベクトルを変位ベクトルと呼ぶ。変位ベクトルは、水平方向の要素(x成分)と垂直方向の要素(y成分)を有する2次元のベクトルであり、1つの画像を分割した領域であるブロック毎に算出される。また、複数視点の画像を取得するには、それぞれの視点に配置されたカメラを用いることが一般的である。複数視点の符号化では、各視点画像は、複数のレイヤにおいてそれぞれ異なるレイヤとして符号化される。複数のレイヤから構成される動画像の符号化方法は、一般に、スケーラブル符号化又は階層符号化と呼ばれる。スケーラブル符号化では、レイヤ間で予測を行うことで、高い符号化効率を実現する。レイヤ間で予測を行わずに基準となるレイヤは、ベースレイヤ、それ以外のレイヤは拡張レイヤと呼ばれる。レイヤが視点画像から構成される場合のスケーラブル符号化を、ビュースケーラブル符号化と呼ぶ。このとき、ベースレイヤはベースビュー、拡張レイヤは非ベースビューとも呼ばれる。さらに、ビュースケーラブルに加え、テクスチャ(画像)からなるテクスチャレイヤ(画像レイヤ)と、デプスマップ(距離画像)からなるデプスレイヤ(距離画像レイヤ)から構成される場合のスケーラブル符号化は、3次元スケーラブル符号化と呼ばれる。
 例えば、非特許文献1のHEVCベースの3次元スケーラブル符号化技術がある。非特許文献1では、効率良くデプスマップを符号化するために、DMM予測(Depth Modeling Mode;デプスイントラ予測もという)や、領域別DC符号化(SDC; Segment-wise DC Coding)というデプス符号化ツールがある。
 領域別DC符号化は、デプスマップ上の対象ブロックにおいて、1又は複数の領域毎に、予測残差を、周波数変換・逆量子化をせずに、予測残差の平均(DC)値を表わす予測残差DC情報を符号化する技術である。
 DMM予測は、基本的に、デプスマップ上の対象ブロック(デプスブロックとも称する)は、2つの非矩形の平坦領域から構成され、各平坦領域のデプス値は固定値で表現されるというデプスモデルに基づいている。また、デプスモデルは、各画素が属する領域を表わすパーティション情報、及び各領域のデプス値情報から構成される。
 DMM予測では、ウェッジレット分割 (Wedgelet Partition)、及び輪郭分割(Contour Partition)がある。非特許文献1では、DMM1予測において、ウェッジレット分割の分割パターン(ウェッジパターン、ウェッジレットパターン)を、ブロックサイズ毎に予め定義したルックアップテーブルに保持し、分割パターンを指定する識別子(ウェッジパターンインデックスwedge_full_tab_idx)により指定されるウェッジパターンが選択される。選択されたウェッジパターンに基づいてデプスブロックを2つの領域へ分割し、分割された領域毎に周辺画素から予測されるデプス予測値と、デプス予測値を補正するデプス値情報に基づいて、各領域のデプス値を復元する予測値を予測する技術である。
 なお、DMM予測における領域毎のデプス値情報、及び領域別DC符号化における領域毎の予測残差DC情報を総称して、DCオフセット情報と称し、非特許文献1では、共通のシンタックス(depth_dc_flag, depth_dc_abs, depth_dc_sign_flag)を利用して符号化される。
G. Tech, K. Wegner, Y. Chen, S. Yea, "3D-HEVC Draft Text 5", JCT3V-I1001_v3, JCT-3V 9th Meeting: Sapporo, JP, 3 - 9 July 2014(2014年8月13日公開)
 非特許文献1のウェッジパターン生成では、全てのパターンを線分描画処理、及び、領域フィル処理によって生成しているため、処理量が大きいという課題がある。また、仮想的にブロックサイズを縦横2倍にしてウェッジパターンを生成する場合にメモリサイズが大きいという課題がある。また、全てのウェッジパターンにおいて格納する場合に、ウェッジパターンの一致比較を行うため格納の処理量が大きいという課題がある。
 本発明の1つの形態は、画像を復号する画像復号装置であって、ウェッジパターンを生成するウェッジパターン生成部と、前記ウェッジパターンを回転させることで回転パターンを導出する回転パターン生成部と、前記回転パターンをウェッジパターンテーブルへ追加するパターン格納部と、前記ウェッジパターンテーブルに含まれる前記ウェッジパターンで分割される領域毎の予測値を導出するDC予測値導出部と、を備えることを特徴とする。
 本実施形態のウェッジレットパターン生成部145T4は、全てのウェッジパターンを線分描画部1462、領域フィル部1463を用いた線分描画処理、領域フィル処理により生成するのではなく、一部のウェッジパターンは回転パターン生成部1565を用いた回転処理により生成する。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。
本実施例に係るDMM予測部の詳細構成を示すブロック図である。 本発明の実施形態に係る画像伝送システムの構成を示す概略図である。 本実施例に係る動画像復号装置の概略的構成について示した機能ブロック図である。 本発明の一実施形態に係る動画像符号化装置によって生成され、上記動画像復号装置によって復号される符号化データのデータ構成を示す図であって、(a)は、シーケンスSEQを既定するシーケンスレイヤ、(b)は、ピクチャPICTを規定するピクチャレイヤ、(c)は、スライスSを規定するスライスレイヤ、(d)は、スライスデータに含まれるツリーブロックを規定するツリーブロックレイヤ、(e)は、符号化ツリーに含まれる符号化単位(Coding Unit; CU)を規定するCUレイヤ(符号化ユニットレイヤ)を示す図である。 CUレイヤに含まれるシンタックスの例を示す図である。(a)は、イントラCUに係るシンタックステーブルの一例を示し、(b)は、イントラ予測モード拡張に係るシンタックステーブルの一例である。 CUレイヤに含まれるDCオフセット情報に係るシンタックスの一例である。 上記動画像復号装置で利用されるイントラ予測方式の分類と対応する予測モード番号の例を示す図である。 方向予測に属する33種類の予測モードについて、予測モードの識別子に対応する予測方向を示す図である。 上記動画像復号装置が備える予測画像生成部の構成例について示す機能ブロック図である。 上記予測画像生成部におけるCU単位の予測画像生成処理の概略を示すフローチャートである。 DMM予測の概略について説明する図である。(a)はブロック上のオブジェクトのエッジ境界を示す例であり、(b)は該ブロックを、オブジェクトのエッジ境界に沿って2つの領域(P1、P2)へ分割することを示す分割パターンであるウェッジレットパターン(wedgePattern)の一例を示し、(c)上記各分割された領域へ予測値を割り当てた一例である。 DMM予測において、ウェッジレット分割(DMM1)に基づくウェッジレットパターンの生成方法を説明する図である。(a)はブロック上の始点S、及び終点Eの一例であり、(b)は、始点Sと終点Eを結ぶ線分の一例を示し、(c)線分で分割された領域のフィルの一例を示し、(d)はウェッジレートパターンの一例を示す。。 DMM1予測において、ウェッジレットパターン生成部145T4において生成されるウェッジ方向wedgeOri(wedgeOri=0..5)別のウェッジレットパターンの一例を説明するための図である。(a)は、wedgeOri=0のウェッジレットパターンの例を示し、(b)は、wedgeOri=1のウェッジレットパターンの例を示し、(c)は、wedgeOri=2のウェッジレットパターンをの例を示し、(d)は、wedgeOri=3のウェッジレットパターンの例を示し、(e)は、wedgeOri=4のウェッジレットパターンの例を示し、(f)はwedgeOri=5のウェッジレットパターンの例である。 ウェッジレットパターン生成部145T4の構成を示すブロック図である。 ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示すフローチャートである。 ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示す図である。 ウェッジレットパターン生成部145T4の動作を示すフローチャートである。 パターン格納部1464の動作を示すフローチャートである。 基本パターン生成および回転パターン生成に用いるパラメータを示すテーブルである 本実施形態の仮想座標(posX、posY)と、パターンとの関係を示す図である。 本実施形態の領域フィル部1463の動作を説明する図である。第1基本パターンにおける処理を示す。 ウェッジレットパターン生成部145T4´の構成を説明する図である。 ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示す図である。 本実施形態の回転パターン生成部1465´の動作を説明する図である。 本実施形態の回転パターン生成部1465´の動作を説明する図である。 ウェッジレットパターン生成部145T4´の備えるパターン格納部1464´の動作を示すフローチャートである。 ウェッジレットパターン生成部145T4´´の備えるパターン格納部1464´´の動作を示すフローチャートである。 本実施形態のウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示すフローチャートの別の例である。第2基本パターンの次に第1基本パターンを生成する場合を示す。 本発明の一実施形態に係る動画像符号化装置の構成について示す機能ブロック図である。 本実施形態のウェッジレットパターン生成部145T4Bの構成を示すブロック図である。 本実施形態のウェッジレットパターン生成部145T4Bにおけるウェッジレットパターン生成処理を示す図である。 本実施形態のウェッジレットパターン生成部145T4Bの動作を示すフローチャートである。
 〔概要〕
 以下、図面を参照しながら本発明の実施形態について説明する。
 図2は、本実施形態に係る画像伝送システム5の構成を示す概略図である。
 画像伝送システム5は、複数のレイヤ画像を符号化した符号を伝送し、伝送された符号を復号した画像を表示するシステムである。画像伝送システム5は、画像符号化装置2、ネットワーク3、画像復号装置2及び画像表示装置4を含んで構成される。
 画像符号化装置2には、複数のレイヤ画像(テクスチャ画像ともいう)を示す信号Tが入力される。レイヤ画像とは、ある解像度及びある視点で視認もしくは撮影される画像である。複数のレイヤ画像を用いて3次元画像を符号化するビュースケーラブル符号化を行う場合、複数のレイヤ画像のそれぞれは、視点画像と呼ばれる。ここで、視点は撮影装置の位置又は観測点に相当する。例えば、複数の視点画像は、被写体に向かって左右の撮影装置のそれぞれが撮影した画像である。画像符号化装置2は、この信号のそれぞれを符号化して符号化データ#1を生成する。符号化データ#1の詳細については、後述する。視点画像とは、ある視点において観測される2次元画像(平面画像)である。視点画像は、例えば2次元平面内に配置された画素毎の輝度値、又は色信号値で示される。
 以下では、1枚の視点画像又は、その視点画像を示す信号をピクチャ(picture)と呼ぶ。本実施形態では、複数のレイヤ画像として、少なくともベースレイヤ画像と、ベースレイヤ画像以外の画像(拡張レイヤ画像)を含む画像の符号化および復号を扱う。複数のレイヤのうち、画像もしくは符号化パラメータにおいて参照関係(依存関係)にある2つのレイヤについて、参照される側の画像を、第1レイヤ画像、参照する側の画像を第2レイヤ画像と呼ぶ。例えば、ベースレイヤを参照して符号化される(ベースレイヤ以外の)エンハンスレイヤ画像がある場合、ベースレイヤ画像を第1レイヤ画像、エンハンスレイヤ画像を第2レイヤ画像として扱う。なお、エンハンスレイヤ画像の例としては、ベースビュー以外の視点の画像やデプス画像などがある。
 視点画像は、例えば2次元平面内に配置された画素毎の輝度値、又は色信号値で示される。また、デプスマップ(depth map、「デプス画像」、「深度画像」、「距離画像」とも言う)とは、被写空間に含まれる被写体や背景の、視点(撮影装置等)からの距離に対応する信号値(「デプス値」、「深度値」、「デプス」等と呼ぶ)であって、二次元平面に配置された画素毎の信号値(画素値)からなる画像信号である。デプスマップを構成する画素は、視点画像を構成する画素と対応する。従って、デプスマップは、被写空間を二次元平面に射影した基準となる画像信号である視点画像を用いて、三次元の被写空間を表すための手がかりとなる。
 ネットワーク3は、画像符号化装置2が生成した符号化データ#1を画像復号装置1に伝送する。ネットワーク3は、インターネット(internet)、広域ネットワーク(WAN:Wide Area Network)、小規模ネットワーク(LAN:Local Area Network)又はこれらの組み合わせである。ネットワーク3は、必ずしも双方向の通信網に限らず、地上波ディジタル放送、衛星放送等の放送波を伝送する一方向又は双方向の通信網であっても良い。また、ネットワーク3は、DVD(Digital Versatile Disc)、BD(Blue-ray Disc)等の符号化データ#1を記録した記憶媒体で代替されても良い。
 画像復号装置1は、ネットワーク3が伝送した符号化データ#1のそれぞれを復号し、それぞれ復号した複数の復号レイヤ画像Td(復号視点画像TexturePic、及び復号デプスマップDepthPic)を生成して出力する。
 画像表示装置4は、画像復号装置1が生成した複数の復号レイヤ画像Tdの全部又は一部を表示する。例えば、ビュースケーラブル符号化においては、全部の場合、3次元画像(立体画像)や自由視点画像が表示され、一部の場合、2次元画像が表示される。画像表示装置4は、例えば、液晶ディスプレイ、有機EL(Electro-luminescence)ディスプレイ等の表示デバイスを備える。また、空間スケーラブル符号化、SNRスケーラブル符号化では、画像復号装置1、画像表示装置4が高い処理能力を有する場合には、画質の高い拡張レイヤ画像を表示し、より低い処理能力しか有しない場合には、拡張レイヤほど高い処理能力、表示能力を必要としないベースレイヤ画像を表示する。
 視点画像は、例えば2次元平面内に配置された画素毎の輝度値、又は色信号値で示される。また、デプスマップ(depth map、「デプス画像」、「深度画像」、「距離画像」とも言う)とは、被写空間に含まれる被写体や背景の、視点(撮影装置等)からの距離に対応する信号値(「デプス値」、「深度値」、「デプス」等と呼ぶ)であって、二次元平面に配置された画素毎の信号値(画素値)からなる画像信号である。デプスマップを構成する画素は、視点画像を構成する画素と対応する。従って、デプスマップは、被写空間を二次元平面に射影した基準となる画像信号である視点画像を用いて、三次元の被写空間を表すための手がかりとなる。
 以下では、図1~図32を参照しながら、本発明の一実施形態に係る画像復号装置1および画像符号化装置2について説明する。図3は、画像復号装置1の概略的構成を示す機能ブロック図である。
 動画像復号装置1には、動画像符号化装置2がレイヤ画像(1又は複数の視点画像TexturePic、及び視点画像TexturePicに対応する同時刻のデプスマップDepthPic)を符号化した符号化データ#1が入力される。動画像復号装置1は、入力された符号化データ#1を復号して、レイヤ画像#2(1又は複数の視点画像TexturePic、及び視点画像TexturePicに対応する同時刻のデプスマップDepthPic)を外部に出力する。動画像復号装置1の詳細な説明に先立ち、符号化データ#1の構成を以下に説明する。
 〔符号化データの構成〕
 図4を用いて、動画像符号化装置2によって生成され、動画像復号装置1によって復号される符号化データ#1の構成例について説明する。符号化データ#1は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
 符号化データ#1におけるシーケンスレイヤ以下の階層の構造を図4に示す。図4の(a)~(e)は、それぞれ、シーケンスSEQを規定するシーケンスレイヤ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、スライスデータを規定するスライスデータレイヤ、符号化ツリーに含まれる符号化単位(Coding Unit; CU)を規定する符号化ユニットレイヤを示す図である。
 (シーケンスレイヤ)
 シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。シーケンスSEQは、図4の(a)に示すように、ビデオパラメータセット(Video Parameter Set)シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図4では、#0と#1、すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
 ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
 シーケンスパラメータセットSPSでは、対象シーケンスを復号するために動画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。
 ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために動画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
 (ピクチャレイヤ)
 ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図4の(b)に示すように、スライスS1~SNSを含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
 なお、以下、スライスS1~SNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ#1に含まれるデータであって、添え字を付している他のデータについても同様である。
 (スライスレイヤ)
 スライスレイヤでは、処理対象のスライスS(対象スライスとも称する、スライスセグメント)を復号するために動画像復号装置1が参照するデータの集合が規定されている。スライスSは、図4の(c)に示すように、スライスヘッダSH、及び、スライスデータSDATAを含んでいる。
 スライスヘッダSHには、対象スライスの復号方法を決定するために動画像復号装置1が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
 スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、又は、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるBスライスなどが挙げられる。
 スライスデータSDATAには、1又は複数のツリーブロックTBLK~TBLKNC(NCは、スライスデータSDATAに含まれるツリーブロックの総数)が含まれる。
 (ツリーブロックレイヤ)
 ツリーブロックレイヤでは、処理対象のツリーブロックTBLK(以下、対象ツリーブロックとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。
 ツリーブロックTBLKは、ツリーブロックヘッダTBLKHと、符号化単位情報CU~CUNL(NLはツリーブロックTBLKに含まれる符号化単位情報の総数)とを含む。ここで、まず、ツリーブロックTBLKと、符号化単位情報CUとの関係について説明すると次のとおりである。
 ツリーブロックTBLKは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのユニットに分割される。
 ツリーブロックTBLKの上記ユニットは、再帰的な4分木分割により分割されている。この再帰的な4分木分割により得られる木構造のことを以下、符号化ツリー(coding tree)と称する。
 以下、符号化ツリーの末端のノードであるリーフ(leaf)に対応するユニットを、符号化ノード(coding node)として参照する。また、符号化ノードは、符号化処理の基本的な単位となるため、以下、符号化ノードのことを、符号化単位(CU)とも称する。
 つまり、符号化単位情報(以下、CU情報と称する)CU~CUNLは、ツリーブロックTBLKを再帰的に4分木分割して得られる各符号化ノード(符号化単位)に対応する情報である。
 また、符号化ツリーのルート(root)は、ツリーブロックTBLKに対応付けられる。換言すれば、ツリーブロックTBLKは、複数の符号化ノードを再帰的に含む4分木分割の木構造の最上位ノードに対応付けられる。
 なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード(すなわち、当該符号化ノードの1階層上位のノードのユニット)のサイズの縦横とも半分である。
 (ツリーブロックヘッダ)
 ツリーブロックヘッダTBLKHには、対象ツリーブロックの復号方法を決定するために動画像復号装置1が参照する符号化パラメータが含まれる。具体的には、図4の(d)に示すように、対象ツリーブロックの各CUへの分割パターンを指定するツリーブロック分割情報SP_TBLK、および、量子化ステップの大きさを指定する量子化パラメータ差分Δqp(qp_delta)が含まれる。
 ツリーブロック分割情報SP_TBLKは、ツリーブロックを分割するための符号化ツリーを表す情報であり、具体的には、対象ツリーブロックに含まれる各CUの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報である。
 また、量子化パラメータ差分Δqpは、対象ツリーブロックにおける量子化パラメータqpと、当該対象ツリーブロックの直前に符号化されたツリーブロックにおける量子化パラメータqp’との差分qp-qp’である。
 (CUレイヤ)
 CUレイヤでは、処理対象のCU(以下、対象CUとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。
 ここで、CU情報CUに含まれるデータの具体的な内容の説明をする前に、CUに含まれるデータの木構造について説明する。符号化ノードは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートのノードとなる。予測ツリーおよび変換ツリーについて説明すると次のとおりである。
 予測ツリーにおいては、符号化ノードが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。
 予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位(prediction unit;PU)とも称する。
 予測ツリーにおける分割の種類は、イントラ予測と、インター予測との2つがある。イントラ予測の場合、分割方法は、2N×2N(符号化ノードと同一サイズ)と、N×Nとがある。インター予測の場合、分割方法は、2N×2N(符号化ノードと同一サイズ)、2N×N、N×2N、および、N×Nがある。
 また、変換ツリーにおいては、符号化ノードが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。
 変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。
 (CU情報のデータ構造)
 続いて、図4の(e)を参照しながらCU情報CUに含まれるデータの具体的な内容について説明する。図4の(e)に示すように、CU情報CUは、具体的には、スキップフラグSKIP、PT情報PTI、および、TT情報TTIを含む。
 スキップフラグSKIPは、対象のPUについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグSKIPの値が1の場合、すなわち、対象CUにスキップモードが適用されている場合、そのCU情報CUにおけるPT情報PTI、および、TT情報TTIは省略される。
 PT情報PTIは、CUに含まれるPTに関する情報である。PT情報PTIは、図4の(d)に示すように、予測タイプ情報PType、および、予測情報PInfoを含んでいる。
 予測タイプ情報PType(又は、CuPredMode)は、イントラ予測を用いるのか、または、インター予測を用いるのかを指定する情報である。例えば、イントラ予測を用いる場合には、予測タイプ情報CuPredModeは、イントラ予測を示すMODE_INTRAに設定され、インター予測を用いる場合には、インター予測を示すMODE_INTERに設定される。イントラ予測を適用するCUをイントラCUと呼び、インターCUを適用するCUをインターCUとも呼ぶ。
 予測情報PInfoは、予測タイプ情報PTypeが何れの予測方法を指定するのかに応じて、イントラ予測情報、または、インター予測情報より構成される。以下では、イントラ予測が適用されるPUをイントラPUとも呼称し、インター予測が適用されるPUをインターPUとも呼称する。
 また、予測情報PInfoは、対象PUの形状、サイズ、および、位置を指定する情報が含まれる。上述のとおり予測画像の生成は、PUを単位として行われる。予測情報PInfoの詳細については後述する。
 TT情報TTIは、CUに含まれるTTに関する情報である。言い換えれば、TT情報TTIは、TTに含まれる1または複数のTUそれぞれに関する情報の集合であり、動画像復号装置1により残差データを復号する際に参照される。なお、以下、TUのことを変換ブロックと称することもある。
 TT情報TTIは、図4の(d)に示すように、対象CUの各変換ブロックへの分割パターンを指定するTT分割情報SP_TU、および、TU情報TUI1~TUINT(NTは、対象CUに含まれる変換ブロックの総数)を含んでいる。
 TT分割情報SP_TUは、具体的には、対象CUに含まれる各TUの形状、サイズ、および、対象CU内での位置を決定するための情報である。例えば、TT分割情報SP_TUは、対象となるノードの分割を行うのか否かを示す情報(split_transform_unit_flag)と、その分割の深度を示す情報(trafoDepth)とから実現することができる。
 また、TU分割情報SP_TUには、各TUに非ゼロの変換係数が存在するか否かの情報が含まれる。例えば、個々のTUに対する非ゼロ係数の存否情報(CBF;Coded Block Flag)がり、色空間毎に、輝度lumaに関するCBFをcbf_luma、色差Cbに関するCBFをcbf_cb、色差Crに関するCBFをcbf_crと称する。また、複数のTUに対する非ゼロ係数の存否情報(rqt_root_flag, 又はno_residual_data_flagとも称する)がTU分割情報SP_TUに含まれる。また、各TUに対する非ゼロの変換係数を符号化する代わりに、TUにおいて、1又は複数の領域毎に、予測残差の平均(DC)値を表わす予測残差DC情報(DCオフセット情報)を符号化する(領域別DC符号化を行う)か否かを示すSDCフラグsdc_flagが含まれる。なお、領域別DC符号化は、Segment-wise DC Coding (SDC)とも呼ばれる。特に、イントラ予測における領域別DC符号化を、イントラSDCと呼び、インター予測における領域別DC符号化をインターSDCと呼ぶ。なお、領域別DC符号化が適用される場合、CUサイズ、PUサイズ、及びTUサイズは等しくてもよい。
 TU情報TUI1~TUINTは、TTに含まれる1または複数のTUそれぞれに関する個別の情報である。例えば、TU情報TUIは、量子化予測残差を含んでいる。
 各量子化予測残差は、動画像符号化装置2が以下の処理A、又は処理Bを、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
 (処理A:周波数変換・量子化を実施する場合)
 処理A-1:符号化対象画像から予測画像を減算した予測残差をDCT変換(DiscreteCosine Transform)する;
 処理A-2:処理A-1にて得られた変換係数を量子化する;
 処理A-3:処理A-2にて量子化された変換係数を可変長符号化する;
 なお、上述した量子化パラメータqpは、動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表す(QP=2qp/6)。
 (処理B:領域別DC符号化の場合(SDC; Segment-wise DC Coding))
 処理B-1:符号化対象画像から予測画像を減算した予測残差の平均値(DC値)を算出する。
 処理B-2:処理B-1にて得られたDC値を可変長符号化する。
 特に、領域別にDC値を符号化することを、領域別DC符号化(SDC; Segment-Wise DCCoding)と呼び、平坦な領域の予測残差の符号化に有効である。例えば、デプスマップの符号化において、各デプスブロックにおいて、1又は複数に分割された領域の予測残差の符号化に利用される。
 (予測情報PInfo)
 上述のとおり、予測情報PInfoには、インター予測情報およびイントラ予測情報の2種類がある。
 インター予測情報には、動画像復号装置1が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、インター予測情報には、対象CUの各インターPUへの分割パターンを指定するインターPU分割情報、および、各インターPUについてのインター予測パラメータが含まれる。
 インター予測パラメータには、参照画像インデックスと、推定動きベクトルインデックスと、動きベクトル残差とが含まれる。
 一方、イントラ予測情報には、動画像復号装置1が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、イントラ予測情報には、対象CUの各イントラPUへの分割パターンを指定するイントラPU分割情報、および、各イントラPUについてのイントラ予測パラメータが含まれる。イントラ予測パラメータは、各イントラPUについてのイントラ予測(予測モード)を復元するためのパラメータである。
 デプスマップDepthPic、及びテクスチャTexturePicの符号化で共通に利用されるイントラ予測(DC予測、Planar予測、Angular予測)に関するパラメータ(イントラ予測パラメータ)には、MPM(Most Probable Mode、以下同様)に関するフラグであるmpm_flag、MPMを選択するためのインデックスであるmpm_idx、および、MPM以外の予測モードを指定するためのインデックス(残余予測モードインデックス)であるrem_idxが含まれる。なお、mpm_flagおよびrem_idxは、それぞれ、非特許文献1における“prev_intra_luma_pred_flag”(図5(a)のSYN02)および“rem_intra_luma_pred_mode”(図5(a)のSYN03)に対応している。また、chroma_modeは、“intra_chroma_pred_mode”(不図示)に対応している。
 デプスマップの符号化に利用されるデプスイントラ予測(DMM予測)に関する予測モード(イントラ拡張モード(図5(a)のSYN01))を復元するためのパラメータ(デプスイントラ予測パラメータ, DMM予測モード情報)には、デプスイントラ予測の有無を示すフラグ(デプスイントラ予測有無フラグ)dim_not_present_flag(図5(b)のSYN01A)、及びDMM1予測において、PU内の分割パターンを表わすウェッジパターンを指定するインデックス(ウェッジパターンインデックス)wedge_full_tab_idex(図5(b)のSYN01C)がある。
 また、イントラSDCや、インターSDC、及びデプスイントラ予測に関する予測パラメータには、さらに、PU内の分割された1又は2つの領域のデプス予測値を補正するためのDCオフセット情報、すなわち、DCオフセット有無フラグdepth_dc_flag(図6のSYND1)、DCオフセット値の絶対値を示すdepth_dc_abs(図6のSYND02)、及びDCオフセット値の符号を示すdepth_dc_sign_flag(図6のSYND03)がある。
 〔動画像復号装置〕
 以下では、本実施形態に係る動画像復号装置1の構成について、図1~図28を参照して説明する。
 (動画像復号装置の概要)
 動画像復号装置1は、PU毎に予測画像を生成し、生成された予測画像と、符号化データ#1から復号された予測残差とを加算することによって復号画像#2を生成し、生成された復号画像#2を外部に出力する。
 ここで、予測画像の生成は、符号化データ#1を復号することによって得られる符号化パラメータを参照して行われる。符号化パラメータとは、予測画像を生成するために参照されるパラメータのことである。符号化パラメータには、インター予測において参照される動きベクトルやイントラ予測において参照される予測モードなどの予測パラメータに加えて、PUのサイズや形状、ブロックのサイズや形状、および、原画像と予測画像との残差データなどが含まれる。以下では、符号化パラメータに含まれる情報のうち、上記残差データを除く全ての情報の集合を、サイド情報と呼ぶ。
 また、以下では、復号の対象となるピクチャ(フレーム)、スライス、ツリーブロック、CU、ブロック、および、PUをそれぞれ、対象ピクチャ、対象スライス、対象ツリーブロック、対象CU、対象ブロック、および、対象PUと呼ぶことにする。
 なお、ツリーブロックのサイズは、例えば64×64画素であり、CUのサイズは、例えば、64×64画素、32×32画素、16×16画素、8×8画素であり、PUのサイズは、例えば、64×64画素、32×32画素、16×16画素、8×8画素や4×4画素などである。しかしながら、これらのサイズは、単なる例示であり、ツリーブロック、CU、および、PUのサイズは以上に示したサイズ以外のサイズであってもよい。
 (動画像復号装置の構成)
 再び、図3を参照して、動画像復号装置1の概略的構成について説明すると次のとおりである。図3は、動画像復号装置1の概略的構成について示した機能ブロック図である。
 図3に示すように動画像復号装置1は、可変長復号部11、逆量子化・逆変換部13、予測画像生成部14、加算器15およびフレームメモリ16を備えている。
  [可変長復号部]
 可変長復号部11は、動画像復号装置1から入力された符号化データ#1に含まれる各種のパラメータを復号する。以下の説明では、可変長復号部11が、CABAC等のエントロピー符号化方式により符号化されているパラメータの復号を適宜行うものとする。可変長復号部11は、具体的には、以下の手順により、1フレーム分の符号化データ#1を復号する。
 まず、可変長復号部11は、1フレーム分の符号化データ#1を、逆多重化することで、図4に示した階層構造に含まれる各種情報に分離する。例えば、可変長復号部11は、各種ヘッダに含まれる情報を参照して、符号化データ#1を、スライス、ツリーブロックに順次分離する。
 ここで、各種ヘッダには、(1)対象ピクチャのスライスへの分割方法についての情報、および(2)対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報が含まれる。
 そして、可変長復号部11は、ツリーブロックヘッダTBLKHに含まれるツリーブロック分割情報SP_TBLKを参照して、対象ツリーブロックを、CUに分割する。また、可変長復号部11は、対象CUについて得られる変換ツリーに関するTT情報TTI、および、対象CUについて得られる予測ツリーに関するPT情報PTIを復号する。
 可変長復号部11は、対象CUについて得られたTT情報TTIをTU情報復号部12に供給する。また、可変長復号部11は、対象CUについて得られたPT情報PTIを予測画像生成部14に供給する。なお、TT情報TTIには、上述のとおり、変換ツリーに含まれるTUに対応するTU情報TUIが含まれる。また、PT情報PTIには、上述のとおり、対象予測ツリーに含まれる各PUに対応するPU情報PUI(各PUの予測情報Pinfo)が含まれる。
 以下では、本発明に関連の深いイントラPUの予測情報Pinfoに含まれるイントラ予測パラメータ、及び領域別DC符号化(イントラSDC、インターSDC)やデプスイントラ予測に利用されるDCオフセット情報の復号処理の概略について説明する。
 (イントラ予測パラメータ)
 可変長復号部11は、図5のSYN01に示すイントラ予測モード拡張intra_mode_ext()のシンタックステーブルに従って、符号化データ#1より各シンタックスを復号する。なお、復号対象レイヤにおいて、デプス符号化ツールにおいてDMM1予測の可否を示すフラグ(DMM1予測モード可否フラグ)intra_sdc_dmm_wfull_flagが1、の場合、イントラ予測モード拡張intra_mode_ext()が復号される。なお、DMM1予測モード可否フラグintra_sdc_dmm_wfull_flagは、1の場合、デプス符号化ツールであるDMM1予測モードが復号対象レイヤにおいて適用されうることを示し、0の場合は、適用されないことを示す。また、DMM1予測モード可否フラグは、パラメータセット(ビデオパラメータセットVPS、シーケンスパラメータセットSPS、ピクチャパラメータセットPPS、スライスヘッダSH)等から復号される。
 まず、可変長復号部11は、対象PUサイズが32×32以下の場合(logPbSize<6)、デプスイントラ予測有無フラグdim_not_present_flag(図5(b)のSYN01A)を復号する。対象PUサイズが32×32より大きい場合には、該フラグの値を1と推定する。該フラグは、デプスイントラ予測の有無を示すフラグであり、該フラグの値が1の場合、対象PUに関するデプスイントラ予測モードフラグdepth_intra_mode_flagが符号化データ中になく、イントラ予測モード番号‘0’~‘34’(DC予測、Planar予測、Angular予測)のいずれかのイントラ予測方式が対象PUに利用されることを示す。また、該フラグが0の場合は、デプスイントラ予測モードdepth_intra_mode_flagが符号化データ中にあることを示す。
 また、可変長復号部11は、復号したデプスイントラ予測有無フラグdim_not_present_flagに基づいて、対象PUのDMMフラグDmmFlagを下記式により導出する。
  DmmFlag = !dim_not_present_flag
 すなわち、DMMフラグには、デプスイントラ予測有無フラグの論理否定の値が設定される。DMMフラグは1の場合、デプスイントラ予測が利用されることを示し、DMMフラグが0の場合、デプスイントラ予測が利用されないことを示す。
 (デプスイントラ予測有無フラグが1の場合)
 可変長復号部11は、デプスイントラモードフラグdepth_intra_mode_flagが0の場合、すなわち、デプスイントラ予測がDMM1予測である場合、予測モードpredModeIntraへ、DMM1予測を示す予測モード番号を設定する。さらに、PU内の分割パターンを示すウェッジパターンを指定するウェッジパターンインデックスwedge_full_tab_idxを復号する。
 (デプスイントラ予測有無フラグが0の場合)
 可変長復号部11は、デプスイントラ予測有無フラグdim_not_present_flagが0場合、対象PUのイントラ予測モードが推定予測モードMPMと一致するか否かを示すMPMフラグmpm_flagを復号する。該フラグが1の場合、対象PUのイントラ予測モードが推定予測モードMPMと一致することを示し、該フラグが0の場合、予測モード番号‘0’~‘34’(DC予測、Planar予測、Angular予測のいずれか)の中で、推定予測モードMPMを除くいずれかの予測モードであることを示す。
 可変長復号部11は、MPMフラグが1の場合、さらに、推定予測モードMPMを指定するMPMインデックスmpm_idxを復号して、該mpm_idxが示す推定予測モードを、予測モードpredModeIntraへ設定する。
 可変長復号部11は、MPMフラグが0の場合、さらに、MPM以外の予測モードを指定するためのインデックスrem_idxを復号して、該rem_idxから特定される、推定予測モードMPMを除く予測モード番号‘0’~‘34’(DC予測、Planar予測、Angular予測のいずれか)の中でいずれかの予測モード番号を、予測モードpredModeIntraへ設定する。
 (DCオフセット情報)
 可変長復号部11は、さらに、図示しないDCオフセット情報復号部111を備え、該DCオフセット情報復号部111によって、対象CU内に含まれるDCオフセット情報の復号を行う。
 より具体的には、DCオフセット情報復号部111は、対象CU内にDCオフセット情報の有無を示すCU内DCオフセット情報有無フラグcuDepthDcPresentFlagを下記式により導出する。
  cuDepthDcPresentFlag = ( sdc_flag || (CuPredMode == MODE_INTRA ) )
 すなわち、SDCフラグsdc_flagが1、又は、予測タイプ情報CuPredModeがイントラ予測である場合に、該CU内DCオフセット情報有無フラグは1(真)に設定され、それ以外の場合(SDCフラグが0(偽)、かつ、インター予測の場合)は、0(偽)に設定される。該CU内DCオフセット情報有無フラグが1の場合、対象CU内にDCオフセット情報が存在しうることを示し、該フラグが0の場合、対象CU内にDCオフセット情報が存在しないことを示す。
 続いて、DCオフセット情報復号部111は、CU内DCオフセット情報有無フラグが1の場合、対象CU内の各PU毎に、該PU内の1又は複数に分割された領域のデプス予測値を補正するためのDCオフセット情報を復号する。
 より具体的には、まず、DCオフセット情報復号部111は、対象PUに関するDCオフセット情報が存在しうるか否かを示すPU内DCオフセット情報有無フラグpuDepthDcPresentFlagを下記式により導出する。
  puDepthDcPresentFlag = ( DmmFlag || sdc_flag )
 すなわち、対象PUのDMMフラグが1、又はSDCフラグが1の場合、該PU内DCオフセット情報有無フラグが1(真)に設定され、それ以外の場合(DmmFlag==0 && sdc_flag==0)は、0(偽)に設定される。該PU内DCオフセット情報フラグが1の場合、対象PU内にDCオフセット情報が存在しうることを示し、該フラグが0の場合、対象PU内にDCオフセット情報が存在しないことを示す。
 DCオフセット情報復号部111は、対象PUの分割領域数dcNumSegを、対象PUのDMMフラグに基づいて、下記式により導出する。
  dcNumSeg = DmmFlag ? 2 : 1
 すなわち、DMMフラグが1の場合には、対象PUの分割領域数dcNumSegを2に設定し、該DMMフラグが0の場合には、dcNumSegを1に設定する。なお、X ? Y: Zは、Xが真(0以外)の場合Y、偽(0)の場合Zを選択する3項演算子である。
 DCオフセット情報復号部111は、DCオフセット情報(DCオフセット情報有無フラグdepth_dc_flag, DCオフセット絶対値depth_dc_abs[i]、DCオフセット符号depth_dc_sign_flag[i])、及び分割領域数dcNumSegに基づいて、各PU内の分割領域Ri(i=0..dcNumSeg-1)に対応するDCオフセット値DcOffset[i]を下記式により導出する。
  DcOffset[i] = !depth_dc_offset_flag ? 0 : 
       ( 1 - 2*depth_dc_sign_flag[i] ) * ( depth_dc_abs[i] + dcNumSeg - 2 )
 すなわち、DCオフセット情報有無フラグが0の場合、分割領域RiのDCオフセット値DcOffset[i]を0へ設定し、DCオフセット情報有無フラグが1の場合には、depth_dc_sign_flag[i]、depth_dc_abs[i]、分割領域数dcNumSegに基づいて、分割領域RiのDCオフセット値DcOffset[i]を設定する。
 なお、DCオフセット値の導出式は、上記に限定されず、実施可能な範囲で変更可能である。例えば、DCオフセット値は、下記式によって導出してもよい。
  DcOffset[i] = 
       ( 1 - 2*depth_dc_sign_flag[i] ) * ( depth_dc_abs[i] + dcNumSeg - 2 )
  [逆量子化・逆変換部]
 逆量子化・逆変換部13は、対象CUに含まれる各ブロックについて、TT情報TTIに基づいて逆量子化・逆変換処理を実行する。具体的には、逆量子化・逆変換部13は、各対象TUについて、対象TUに対応するTU情報TUIに含まれる量子化予測残差を逆量子化および逆直交変換することによって、対象TUに対応する画素毎の予測残差D(又はresSamples[x][y])を復元する。なお、ここで直交変換とは、画素領域から周波数領域への直交変換のことを指す。したがって、逆直交変換は、周波数領域から画素領域への変換である。また、逆直交変換の例としては、逆DCT変換(Inverse Discrete Cosine Transform)、および逆DST変換(Inverse Discrete Sine Transform)等が挙げられる。逆量子化・逆変換部13は、復元した予測残差Dを加算器15に供給する。なお、逆量子化・逆変換部13は、SDCフラグが1の場合、逆量子化・逆変換処理を省略し、対象TUの画素毎の予測残差D(又はresSamples[x][y])を0へ設定し、加算器15に供給する。
  [予測画像生成部]
 予測画像生成部14は、対象CUに含まれる各PUについて、PT情報PTIに基づいて予測画像を生成する。具体的には、予測画像生成部14は、各対象PUについて、対象PUに対応するPU情報PUI(予測情報Pinfo)に含まれるパラメータに従ってイントラ予測またはインター予測を行うことにより、復号済み画像である局所復号画像P’から予測画像Predを生成する。予測画像生成部14は、生成した予測画像Predを加算器15に供給する。なお、予測画像生成部14の構成については、後ほど、より詳しく説明する。
  [加算器]
 加算器15は、予測画像生成部14より供給される予測画像Predと、逆量子化・逆変換部13より供給される予測残差Dとを加算することによって、対象CUについての復号画像Pを生成する。
  [フレームメモリ]
 フレームメモリ16には、復号された復号画像Pが順次記録される。フレームメモリ16には、対象ツリーブロックを復号する時点において、当該対象ツリーブロックよりも先に復号された全てのツリーブロック(例えば、ラスタスキャン順で先行する全てのツリーブロック)に対応する復号画像が記録されている。
 また、対象CUを復号する時点において、当該対象CUよりも先に復号された全てのCUに対応する復号画像が記録されている。
 なお、動画像復号装置1において、画像内の全てのツリーブロックに対して、ツリーブロック単位の復号画像生成処理が終わった時点で、動画像復号装置1に入力された1フレーム分の符号化データ#1に対応する復号画像#2が外部に出力される。
 (予測モードの定義)
 前述の通り、予測画像生成部14は、PT情報PTIに基づいて予測画像を生成して出力する。対象CUがインターCUの場合、予測画像生成部14に入力されるPU情報PTIは、例えば、動きベクトルmvLX(X=0,1)、及びフレームメモリ16に格納された復号済画像を参照画像として指定するための、参照画像インデックスrefIdxLX(X=0,1)、単予測(L0予測、L1予測)又は、双方向予測等のインター予測方式を指定するインター予測識別子inter_pred_idxを含む。
 対象CUがイントラCUの場合、予測画像生成部14に入力されるPU情報PTIは、予測モード(IntraPredMode)と、色差予測モード(IntraPredModeC)を含む。以下、予測モード(輝度・色差)の定義について、図7を参照して説明する。
 (概要)
 図7は、動画像復号装置1で利用されるイントラ予測方式の分類と対応する予測モード番号の例を示している。Planar予測(INTRA_PLANAR)に‘0’、DC予測(INTRA_DC)に‘1’、Angular予測(INTRA_ANGULAR)に‘2’~ ‘34’、DMM1予測(INTRA_DMM_WFULL)に‘35’、DMM4予測(INTRA_DMM_CREDTEX)に‘36’の予測モード番号がそれぞれ割り当てられている。DMM1予測、及びDMM4予測を総称して、デプスイントラ予測とも呼ぶ。デプスイントラ予測とは、デプスマップ上の対象ブロック(デプスブロックとも称する)が2つの非矩形の平坦領域から構成され、各平坦領域のデプス値は固定値で表現されるというデプスモデルに基づいている。デプスブロックの分割方法として、DMM1と呼ばれる、ウェッジレット分割 (Wedgelet Partition)、及びDMM4とも呼ばれる輪郭分割(Contour Partition)がある。本明細書では、ウェッジレット分割を用いる方法を説明する。
 次に、図8を用いて、Angular予測に含まれる各予測モードの識別子を説明する。図8には方向予測に属する33種類の予測モードについて、予測モードの識別子と対応する予測方向が図示されている。
  (予測画像生成部の詳細)
 次に、図9を用いて予測画像生成部14の構成についてさらに詳しく説明する。図9は予測画像生成部14の構成例について示す機能ブロック図である。なお、本構成例は、予測画像生成部14の機能のうち、イントラCUの予測画像生成に係る機能ブロックを図示している。
 図9に示すように、予測画像生成部14は、予測単位設定部141、参照画素設定部142、スイッチ143、参照画素フィルタ部144、および予測画像導出部145を備える。
 予測単位設定部141は、対象CUに含まれるPUを規定の設定順序で対象PUに設定し、対象PUに関する情報(対象PU情報)を出力する。対象PU情報には、対象PUのサイズnS、対象PUのCU内の位置、対象PUの輝度または色差プレーンを示すインデックス(輝度色差インデックスcIdx)が少なくとも含まれる。
 スイッチ143は、入力される対象PU情報のうち、輝度色差インデックスcIdx、および予測モードpredModeIntraとに基づいて、参照画素を対応する出力先へ出力する。より具体的には、輝度色差インデックスcIdxが0であり(処理対象の画素が輝度である)、かつ、予測モードpredModeIntraが、0~34である(予測モードが、Planar予測、又は、DC予測、又は、Angular予測である(predModeIntra<35))とき、スイッチ143は、入力される参照画素を、参照画素フィルタ部144へ出力する。それ以外の場合、すなわち、輝度色差インデックスcIdxが1である(処理対象の画素が色差である)、又は、予測モードpredModeIntraが、予測モード番号‘35’に割り当てられたデプスイントラ予測である(predModeIntra>=35)とき、スイッチ143は、入力される参照画素を、予測画像導出部145へ出力する。
 参照画素フィルタ部144は、入力される参照画素値にフィルタを適用して、フィルタ適用後の参照画素値を出力する。具体的には、参照画素フィルタ部144は、フィルタの適用有無を、対象PUサイズと予測モードpredModeIntraとに応じて決定する。
 予測画像導出部145は、入力されるPU情報(予測モードpredModeIntra、輝度色差インデックスcIdx、PUサイズnS)と参照画素p[x][y]に基づいて対象PUの予測画像predSamplesを生成して出力する。予測画像導出部145の詳細な説明は後述する。
  (予測画像生成処理の流れ)
 次に、予測画像生成部14におけるCU単位の予測画像生成処理の概略を図10のフローチャートを用いて説明する。CU単位の予測画像生成処理が始まると、まず、予測単位設定部141がCU内に含まれるPUの一つを既定の順序に従って対象PUに設定して対象PU情報を参照画素設定部142およびスイッチ143に出力する(S11)。次に、参照画素設定部142は対象PUの参照画素を、外部のフレームメモリから読み出した復号画素値を用いて設定する(S12)。次に、スイッチ143が、入力された対象PU情報に基づいて対象PUが輝度か色差か、又は予測モードpredModeIntraがDMM予測であるか否かを判定し、当該判定結果に応じて出力を切り替える(S13)。
 対象PUが輝度であり、かつ、予測モードpredModeIntraがデプスイントラ予測でない場合(cIdx==0 && predModeIntra<35)(S13でYES)、スイッチ143の出力は参照画素フィルタ部144に接続される。続いて、参照画素フィルタ部144に対し参照画素が入力され、別途入力された予測モードに応じて参照画素フィルタが適用され、フィルタ適用後の参照画素が予測画像導出部145に出力される(S14)。
 一方、対象PUが色差である、又は、予測モードpredModeIntraがデプスイントラ予測である場合(cIdx==1 || predModeIntra>=35)(S13でNO)、スイッチ143の出力は予測画像導出部145に接続される。
 次に、予測画像導出部145は、入力されるPU情報(予測モードpredModeIntra、輝度色差インデックスcIdx、PUサイズnS)と参照画素p[x][y]に基づいて対象PUにおける予測画像predSamplesを生成して出力する(S15)。
 対象PUの輝度または色差の予測画像の生成が終わると、予測単位設定部141が、対象CU内の全てのPUの予測画像が生成されたかを判定する(S16)。対象CU内の一部のPUの予測画像が生成されていない場合(S16でNO)、上記S1に戻り、対象CU内の次のPUの予測画像生成処理を実行する。対象CU内の全てのPUの予測画像が生成されている場合(S16でYES)、対象CU内の各PUの輝度および色差の予測画像を合わせて対象CUの予測画像として出力し、処理を終了する。
  (予測画像導出部145の詳細)
 続いて、予測画像導出部145の詳細について説明する。図9に示すように、予測画像導出部145は、さらに、DC予測部145D、Planar予測部145P、Angular予測部145A、及びDMM予測部145Tを備える。
 予測画像導出部145は、入力される予測モードpredModeIntraに基づいて予測画像生成に用いる予測方式を選択する。予測方式の選択は、前述の図7の定義に基づいて、入力される予測モードpredModeIntraの予測モード番号に対応する予測方式を選択することで実現される。
 さらに、予測画像導出部145は、予測方式の選択結果に応じた予測画像を導出する。より具体的には、予測画像導出部145は、予測方式が、Planar予測、DC予測、Angular予測、及びDMM予測の場合、それぞれ、Planar予測部145P、DC予測部145D、Angular予測部145A、及びDMM予測部145Tにより予測画像を導出する。
 DC予測部145Dは、入力される参照画素の画素値の平均値に相当するDC予測値を導出し、導出されたDC予測値を画素値とする予測画像を出力する。
 Planar予測部145Pは、予測対象画素との距離に応じて複数の参照画素を線形加算することで導出した画素値により予測画像を生成して出力する。
  [Angular予測部145A]
 Angular予測部145Aは、入力される予測モードpredModeIntraに対応する予測方向(参照方向)の参照画素を用いて対象PU内に対応する予測画像を生成して出力する。Angular予測による予測画像の生成処理では、予測モードpredModeIntraの値に応じて主参照画素を設定し、予測画像をPU内のラインまたはコラムの単位で主参照画素を参照して生成する。
  [DMM予測部145T]
 DMM予測部145Tは、入力される予測モードpredModeIntraに対応するDMM予測(Depth Modeling Mode,デプスイントラ予測ともいう)に基づいて、対象PU内に対応する予測画像を生成して出力する。
 DMM予測部145Tの詳細な説明に先だって、図11を参照しながら、DMM予測の概略について説明する。図11は、DMM予測部145Tにおいて実行されるDMM予測の概念図である。デプスマップは、主に、図11(a)に示すように、オブジェクト境界を表わすエッジ領域、及びオブジェクトエリアを表わす平坦領域(ほぼデプス値が一定)を有するという特徴がある。まず、DMM予測では、基本的に、デプスマップの画像的特徴を利用し、対象ブロックを、オブジェクトのエッジに沿った2つの領域P1、P2に分割し、図11 (b)に示すように、各画素が属する領域を表わすパターン情報であるウェッジパターンWedgePattern[x][y]を導出する。
 ウェッジパターン(ウェッジレットパターン)WedgePattern[x][y]は、対象ブロック(対象PU)の幅×高さ分の大きさがあるマトリックスであり、要素(x,y)毎に0、又は1が設定され、対象ブロックの各画素が2つの領域P1、P2のどちらに属するかを示す。図11 (b)の例では、要素の値が0であれば、領域P1に属し、1であれば、領域P2に属すこととなる。次に、図11 (c)に示すように、各領域P1、及びP2を各々のデプス予測値を埋めることによって予測画像を生成する。
 以下、ウェッジレットと呼ばれる線分により分割されたウェッジパターンを便宜的にウェッジレットパターンと呼ぶが、ウェッジパターン、ウェッジレットパターンも同じもの(2つの領域に分割された2次元パターン)であるため、特に区別しなくても良い。なお、ウェッジパターン(ウェッジレットパターン)を単にパターンとも呼ぶ。
 以下では、図1を参照しがら、DMM予測部145Tの構成について説明する。図1は、DMM予測部145Tの構成例のついて示す機能ブロック図である。
 図1に示すように、DMM予測部145Tは、ウェッジパターン導出部145T2、及びDC予測値導出部145T3を備える。
 DMM予測部145Tは、入力される予測モードpredModeIntraに対応するウェッジパターン生成手段を起動させ、対象PUの分割パターンを示すウェッジパターンwedgePattern[x][y]を生成する。より具体的には、予測モードpredModeIntraが、予測モード番号‘35’である場合、すなわち、INTRA_DMM_WEDGEFULLモードでは、ウェッジパターン導出部145T2を起動する。一方、予測モードpredModeIntraが、予測モード番号‘36’である場合、すなわち、INTRA_DMM_CPCREDTEXモードでは、を起動する。
  [ウェッジパターン導出部145T2]
 ウェッジパターン導出部145T2は、入力される対象PUサイズnS、ウェッジパターンインデックスwedge_full_tab_idx、予め設定された参照ウェッジパターンサイズnBS、及び参照ウェッジパターン数NumWedgePattern[log2(nS)]に基づいて、ウェッジパターンテーブル145T5に格納されたウェッジパターンテーブルの配列WedgePatternTable[][x][y]から、対象PUへ適用するウェッジパターンwedgePattern[x][y]を導出し、DC予測値導出部145T3へ出力する。
  wedgePattern[x][y] = WedgePatternTable[log2(nS)][wedge_full_tab_idx][x][y],
  with x = 0..nS-1, y = 0..nS-1
ここで、log2(nS)は、対象PUサイズ(nS)の2を底とする対数値でありlog2BlkSize(=log2(nS))とも表現する。nS=4、8、16、32、64に対して、log2(nS)は2,3,4,5,6となる。
   [DC予測値導出部145T3]
 DC予測値導出部145T3は、対象PUの分割パターンを示すウェッジパターンwedgePattern[x][y]に基づいて、対象PUを2つの領域に分割し(例えば、図11 (c)に示す領域P1、P2)、入力されたPT情報、及び参照画素p[x][y]に基づいて領域P1に関する予測値、及び領域P2に関する予測値を導出し、各領域に導出した予測値を予測画像predSamples[x][y]に設定して導出する。
   [ウェッジレットパターン生成部145T4]
 ウェッジパターン導出部145T2は、初回起動時のみ、ウェッジレットパターン生成部145T4を起動させ、ブロックサイズnS毎の複数のウェッジパターンを生成する。次に、生成したウェッジパターンをウェッジパターンテーブル145T5に格納する。
 ウェッジレットパターン生成部145T4におけるウェッジパターンテーブルの生成方法の説明に先だって、ウェッジレットパターンの生成方法の概要について、図12を参照して説明する。まず、全要素が0のウェッジレットパターンを生成する。次に、ウェッジレットパターン内に、始点S(xS,yS)と終点E(xE,yE)を設定する。始点と終点は、パターンを構成する四角形の辺上に設定される。図12の(a)の例では、始点S(xS,yS)=(3,patternSize -1)、終点E(xE,yE)=(patternSize -1,2)である。次に、始点Sと終点Eの間をBresenhamのアルゴリズムを用いて線分を引く(図12 (b)の斜線の要素)。図12 (c)の例では、続いて、図12(d)に示すように、例えば、その線分上及び線分より左側の座標に対応する要素を1に設定することで、ウェッジレットパターンwedgePattern[x][y]が生成される。ここで、patternSize は、ウェッジレットパターンを生成するブロックのサイズ(縦幅、横幅)である。
 以下では、ウェッジレットパターン生成部145T4におけるウェッジパターンテーブルの生成方法について説明する。ウェッジレットパターン生成部145T4では、図13に示すように、主に、6種類のウェッジ方向wedgeOri(wedgeOri=0..5)のウェッジレットパターンをブロックサイズnS別に生成する。一つのウェッジ方向wedgeOri(wedgeOri=0..5)において、始点と終点の位置をずらしながら複数のウェッジパターン(ウェッジパターンのセット)を生成する。
 図13(a)は、始点がブロックの上辺の線分S上の点、終点がブロックの左辺の線分E上の点を選択して得られる2点を結ぶ線分で分割される2つの領域から構成されるウェッジ方向wedgeOri=0のウェッジレットパターンである。
 図13(b)は、始点がブロックの右辺の線分S上の点、終点がブロックの上辺の線分E上の点を選択して得られる2点を結ぶ線分で分割される2つの領域から構成されるウェッジ方向wedgeOri=1のウェッジレットパターンである。
 図13(c)は、始点がブロックの下辺の線分S上の点、終点がブロックの右辺の線分E上の点を選択して得られる2点を結ぶ線分で分割される2つの領域から構成されるウェッジ方向wedgeOri=2のウェッジレットパターンである。
 図13(d)は、始点がブロックの左辺の線分S上の点、終点がブロックの下辺の線分E上の点を選択して得られる2点を結ぶ線分で分割される2つの領域から構成されるウェッジ方向wedgeOri=3のウェッジレットパターンである。
 図13(e)は、始点がブロックの上辺の線分S上の点、終点がブロックの下辺の線分E上の点を選択して得られる2点を結ぶ線分で分割される2つの領域から構成されるウェッジ方向wedgeOri=4のウェッジレットパターンである。
 図13(f)は、始点がブロックの左辺の線分S上の点、終点がブロックの右辺の線分E上の点を選択して得られる2点を結ぶ線分で分割される2つの領域から構成されるウェッジ方向wedgeOri=5のウェッジレットパターンである。
 本実施形態では、図13(a)に示すウェッジ方向wedgeOri=0のウェッジレットパターンを第1の基本パターンと呼び、図13(b)に示すウェッジ方向wedgeOri=1~3のウェッジレットパターンを、ウェッジ方向wedgeOri=0のウェッジレットパターンの回転により生成する。さらに、図13(e)に示すウェッジ方向wedgeOri=4のウェッジレットパターンを第2の基本パターンと呼び、図13(f)に示すウェッジ方向wedgeOri=5のウェッジレットパターンを、ウェッジ方向wedgeOri=4のウェッジレットパターンの回転により生成する。
 図14は、ウェッジレットパターン生成部145T4の構成を示すブロック図である。ウェッジレットパターン生成部145T4は、基本パターン生成部1461、パターン格納部1464、回転パターン生成部1565から構成され、基本パターン生成部1461は、線分描画部1462、領域フィル部1463から構成される。
 本実施形態のウェッジレットパターン生成部145T4は、全てのウェッジレットパターンを線分描画部1462、領域フィル部1463を用いた線分描画処理、領域フィル処理により生成するのではなく、一部のウェッジレットパターンは回転パターン生成部1565を用いた回転処理により生成する。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。
 図16は、ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示す図である。図に示すように、本実施形態のウェッジレットパターン生成部145T4は、図16(a)に示す基本パターン生成部1461で生成されるウェッジレットパターンのセットである第1基本パターンに含まれるウェッジレットパターンを一つ一つ参照し、図16(b)、(c)、(d)に示す回転パターン生成部1565による回転により、ウェッジレットパターンのセットである第1基本パターン第1回転パターン、第1基本パターン第2回転パターン、第1基本パターン第3回転パターンを生成し、図16(e)に示す基本パターン生成部1461で生成されるウェッジレットパターンのセットである第2基本パターンに含まれるウェッジレットパターンを一つ一つ参照し、図16(f)に示す回転パターン生成部1565による回転によりウェッジレットパターンのセットである第2基本パターン第1回転パターンを生成する。本実施形態では、第1回転パターン、第2回転パターン、第3回転パターンの例として、各々時計回りに90度、180度、270度の例を説明するが、90度単位の回転であればこの順によらず、270度、180度、90度などの順でも良い。また、180度、90度、270度の順等でも良い。
 図17は、ウェッジレットパターン生成部145T4の動作を示すフローチャートである。
 (S0001)変数posWedgePatternに0を設定する。
 (S0002)ウェッジ方向wedgeOriに関するループの開始。ウェッジ方向wedgeOriに0,1,2,3,4,5を順に設定しS0003からS0014の処理を行う。これにより、ウェッジ方向wedgeOriのウェッジレットパターンのセットを導出する。
 (S0003)ウェッジ方向wedgeOriが基本パターンを示す値(ここでは、wedgeOri=0, 4)の場合には、S0004に遷移し、線分描画処理と領域フィル処理により、ウェッジ方向wedgeOriの各ウェッジレットパターンを生成する。ウェッジ方向wedgeOriが基本パターンを示す値以外(ここではwedgeOri=1,2,3,5)の場合には、S0010に遷移し、回転処理によりウェッジレットパターンを生成する。
 (S0004)変数posStartに、基本パターン生成前のウェッジパターン数であるposWedgePatternを設定する。posStart=posWedgePattern
 (S0005)始点位置と終点位置を制御する変数m, nに関するループの開始。ループ変数はm, n。以下、m=0.. wBlkSize - 1、n=0.. wBlkSize - 1のm, nに対して、S0006からS0008の処理を行う。これにより、ウェッジ方向wedgeOriに対して、始点、終点を変化させながらウェッジレットパターンを生成する。なおwBlkSizeはブロックサイズ(仮想ブロックサイズ)である。
 (S0006)線分描画部1462が線分を引き、領域フィル部1463が領域をフィルすることで、ウェッジ方向wedgeOri、変数m, nで示される始点と終点のウェッジレットパターンを生成する。
 (S0007)パターン格納部1464は、生成されたウェッジレットパターンをウェッジパターンテーブル145T5に格納する。より具体的にはパターン格納部1464に示す一致判定の条件に合う場合に格納し、格納した場合には、ウェッジパターン数NumWedgePatternを1だけインクリメントする。格納した時点でのウェッジパターン数NumWedgePatternをposWedgePatternに設定する。
 (S0008)始点位置と終点位置を制御する変数m, nに関するループの終了。
 (S0009)posEndに、基本パターン生成後のウェッジパターン数であるposWedgePattern-1を設定する。posEnd=posWedgePattern-1
 (S0010)参照パターンのインデックスposに関するループの開始。posの範囲はposStartからposEnd。
 (S0011)回転パターン生成部1465を用いて、posを参照ウェッジレットパターンとして、回転パターンであるウェッジレットパターンを生成する。
 (S0012)生成されたウェッジレットパターンをウェッジパターンテーブル145T5に格納する。より具体的にはパターン格納部1464に示す一致判定の条件に合う場合に格納し、格納した場合には、ウェッジパターン数NumWedgePatternを1だけインクリメントする。格納した時点でのウェッジパターン数NumWedgePatternをposWedgePatternに設定する。
 (S0013)参照パターンのインデックスposに関するループの終了。
 (S0014)ウェッジ方向wedgeOriに関するループの終了。
 以下、ウェッジレットパターン生成部145T4を構成する各手段の動作を説明する。
 (ウェッジレットパターン生成部145T4)
 ウェッジレットパターン生成部145T4は、ブロックサイズ(パターンのサイズ)をpatternSize(=nS)として、patternSize×patternSizeのパターンを生成する。本発明では、patternSize×patternSizeのパターンを生成する際に、内部的に、ブロックサイズの1倍もしくは2倍の仮想ブロックサイズwBlkSize を用いてwBlkSize ×wBlkSize のパターンを生成することを仮定する。これにより、より細かい単位でのパターンが生成可能である。ここで、wBlkSize =patternSize<<resShiftを満たす。仮想拡大シフト値resShiftは0もしくは1とする。ここで、パターンサイズは対象パターンの2の対数log2BlkSizeを用いれば、patternSize=( 1 << log2BlkSize )である。
 ウェッジレットパターン生成部145T4は、ウェッジレートパターンのサイズの対数をlog2BlkSizeに2, 3, 4を設定し、各サイズ(4、8、16)のウェッジレットパターンを生成する。パターンサイズpatternSizeと仮想拡大シフト値resShift、仮想ブロックサイズwBlkSizeを以下の式で導入する。
  resShift = ( log2BlkSize  = =  4 ) ? 0 : 1
  patternSize=( 1  << log2BlkSize ) 
  wBlkSize = (patternSize << resShift) = ( 1  << (log2BlkSize + resShift)  )
 ウェッジレットパターン生成部145T4は、変数posWedgePatternに0を設定する(S0001)。
 ウェッジレットパターン生成部145T4は、ウェッジ方向wedgeOriを設定(S0002)し、各ウェッジ方向wedgeOriに対応する複数のウェッジレットパターン(ウェッジレットパターンのセット)を生成する。具体的には、各ウェッジ方向wedgeOriに0,1,2,3,4,5を用いる。
 ウェッジレットパターン生成部145T4は、ウェッジ方向wedgeOriが0、4の場合に、基本パターン生成部1461により、ウェッジレットパターンを生成する(S0004~S0009)。ウェッジ方向wedgeOriが1,2,3,5の場合には、回転パターン生成部1465により、ウェッジパターンテーブル145Tに格納されたウェッジレットパターンを読み出し、回転させることにより、ウェッジレットパターンを生成する。生成されたウェッジレットパターンは、パターン格納部1464により、ウェッジパターンテーブル145Tに格納される。サイズlog2BlkSize別のウェッジテーブルの数は配列NumWedgePattern[]に記録される。変数posWedgePatternには、NumWedgePattern[log2BlkSize]が設定される。
 ウェッジレットパターン生成部145T4は、基本パターン導出前に、変数posStartに、その時点のウェッジパターンテーブル145Tに格納されたウェッジテーブルの数NumWedgePattern[log2BlkSize]であるposWedgePatternを設定する(S0004)。
 ウェッジレットパターン生成部145T4は、基本パターン導出後に、変数posEndに、その時点のウェッジパターンテーブル145Tに格納されたウェッジテーブルの数NumWedgePattern[log2BlkSize]であるposWedgePattern-1を設定する(S0009)。
 (基本パターン生成部)
 基本パターン生成部1461は、第1基本パターン(ここではウェッジ方向wedgeOri=0のウェッジレットパターンのセット)と第2基本パターン(ここではウェッジ方向wedgeOri=4のウェッジレットパターンのセット)を導出する。具体的には、各基本パターンに属する各ウェッジレットパターンの始点と終点を設定し、線分描画部1462を用いて線分をウェッジレットパターンに設定し、線分により分割された2つの領域の一方を領域フィル部1463により1に設定する(S0006)。
 基本パターン生成部1461は、ウェッジ方向wedgeOriがwedgeOri=0(第1基本パターンに対応するウェッジ方向)もしくはwedgeOri=4(第2基本パターンに対応するウェッジ方向)の場合に、以下の処理により基本パターン(基本を構成するウェッジレートパターン)を実行する。
 0からwBlkSize - 1の範囲の各値をとる変数m、0からwBlkSize - 1の範囲の各値をとる変数nに設定し、始点(xS, yS、xE、yE)を以下の式により導出する。
 xS = m
 yS = 0
 xE = (wedgeOri==0) ? 0 : n
 yE = (wedgeOri==0) ? n : wBlkSize - 1
 基本パターン生成部1461は、始点(xS, yS)と終点(xE, yE)を線分描画部1462に入力し、線分パターンをcurPatternに生成する。
 基本パターン生成部1461は、始点(xS, yS)と終点(xE, yE)を領域フィル部1463に入力し、curPatternの領域の一方に1を設定する。
 基本パターン生成部1461は、パターン格納部1464に生成されたパターンcurPatternを入力する。
 (線分描画部1462)
 線分描画部1462は、ウェッジレットパターンサイズpatternSizeを、refShiftだけ左シフトして得られるサイズpatternSize<< refShiftの拡大ブロック上の始点(xS、yS)と終点(xE、yE)から得られる線分座標(xPos, yPos)を、refShiftだけ右シフトして得られる座標(xPos>> refShift, yPos>> refShift)に1を設定する。線分描画部1462は、始点(xS、yS)と終点を(xE、yE)結ぶ線分を以下の擬似コードで示す処理により導出し、パターンcurPattern[][](wedgePattern[][])に出力する。
    x0 = xS
    y0 = yS
    x1 = xE
    y1 = yE
    if( abs( yE - yS ) > abs( xE - xS ) ) {
      ( x0, y0 ) = Swap( x0, y0 )
      ( x1, y1 ) = Swap( x1, y1 )
    }
    if( x0 > x1 ) {
      ( x0, x1 ) = Swap( x0, x1 )
      ( y0, y1 ) = Swap( y0, y1 )
    }
    sumErr = 0
    posY = y0
    for( posX = x0; posX  <=  x1; posX ++ ) {
      if( abs( yE - yS ) > abs( xE - xS ) )  
        curPattern[ posY>>resShift ][ posX>>resShift ] = 1 
      else 
        curPattern[ posX>>resShift ][ posY>>resShift ] = 1 
      sumErr  +=  ( abs( y1 - y0 )  <<  1 )
      if( sumErr  >=  ( x1 - x0 ) ) {
        posY  +=  ( y0 < y1 ) ? 1 : --1
        sumErr  --=  ( x1 - x0 )  <<  1
      }
    }
 なお、x0、y0、x1、y1は、変換後の始点と終点を示す変数であり、sumErrは増分、posX、posYは、始点(xS, yS)と終点(xE, yE)を結ぶ線上の点を示す座標、Swap(x, y)はxとyを入れ替える処理を示す。curPatternは処理の対象となるウェッジパターンwedgePattern[][]である。
 図20は、本実施形態の仮想座標(posX、posY)と、パターンとの関係を示す。線分描画部1462は始点(xS, yS)と終点(xE, yE)を結ぶ線上の点として仮想座標(posX、posY)を、wBlkSize×wBlkSizeの仮想ブロック上に設定する。線分描画部1462は、メモリ上に仮想ブロックを確保し、仮想座標(posX、posY)に1を書きこむのではなく、patternSize×patternSizeのパターンに相当するメモリに、仮想座標を仮想拡大シフト値resShiftだけ右シフトした座標(posY>>resShift 、posX>>resShift )に1を書きこむ。
 すなわち、線分描画部1462では仮想ブロックサイズwBlkSize 上で始点(xS, yS)と終点(xE, yE)を移動させ、仮想座標(posX、posY)の画素を1とする処理を実行することにより、線分描画処理を動作させる特徴を有する。さらに、線分描画部1462では、パターンcurPattern[][]に1を代入する際に、仮想座標を仮想拡大シフト値resShiftだけ右シフトすることにより座標(posY>>resShift 、posX>>resShift )を導出する。このように、仮想拡大シフト値resShiftだけ拡大した座標系で描画処理を行いながら実際に格納する際には、仮想拡大シフト値resShiftだけ右シフトして元の座標に戻すことにより、線分描画処理に用いるメモリサイズを増大させることを防ぐ効果を奏する。すなわち、拡大座標を用いながら、wBlkSize ×wBlkSizeのメモリを必要とせず、patternSize ×patternSizeのメモリで良い。
 (領域フィル部1463)
 領域フィル部1463は、線分描画部1462で導出されたパターンcurPatternにおいて、線分で分けられた2つの領域の内、一方の領域を1でフィルする。他方の領域は0のままとする。以下のフィル処理では、左上座標のパターンの値を常に1とするように領域のフィルを行う。なお、ウェッジレットパターン生成部145T4の別の構成では、左上座標のパターンの値を常に0とするように領域のフィルを行っても良い。
 領域フィル部1463は、以下の擬似コードで示す処理によりパターンcurPattern[][]の値を1とすることで領域のフィルを行う。
  for( iY = 0; iY <= yE>> resShift; iY++ ) {
    for( iX = 0; iX <= curSize - 1 && curPattern[ iX ][ iY ]  = =  0 ; iX++) 
    curPattern[ iX ][ iY ] = 1
  }
 すなわち、領域フィル部1463は、0から終点座標yE>>resShiftにおける垂直成分iYに対して以下の処理を行う。なお、yE>>resShiftは、仮想ブロックでの終点座標yEを、仮想拡大シフト値resShiftで右シフトすることにより導出されるウェッジレットパターン上の座標である。なお、curPatternは処理の対象となるウェッジパターンwedgePattern[][]である。
 領域フィル部1463は、0からcurSize - 1の水平成分iXに対して、パターンの値curPattern[ iX ][ iY ]が0である位置を探索しながら、パターンの値curPattern[ iX ][ iY]が0でない点に対して、curPattern[ iX ][ iY ] = 1により1を設定する。
 上記の領域フィル部1463では、終了点yEに関する情報を必要としたが、それらの情報が不要な別の動作を行っても良い。図21は、領域フィル部1463の別の動作を説明する図である。具体的には以下の擬似コードで示す処理によりパターンcurPattern[][]の値を1とすることで領域のフィルを行う。
  for( iY = 0; iY < curSize; iY++ ) {//ループB0
    // 処理B1
    for( iX = curSize -- 1; iX >= 0 || curPattern[ iX ][ iY ]  = =  0 ; iX- -) {
    }
    // 処理B2
    for( ; iX >= 0; iX- -) {
      curPattern[ iX ][ iY ] = 1
    }
   }
 ここで、curSize=patternSize。
 領域フィル部1463は、0からcurSize-1の垂直成分iYに対して以下の処理を行う(ループB0)。領域フィル部1463は、curSize - 1から開始する水平成分iXに対して、パターンの値curPattern[ iX ][ iY ]が1である位置を探索する(処理B1)。すなわち、パターンの値curPattern[ iX ][ iY ]が0である限り、iXの値をひとつずつ減じる。図21(a)では、iX1という点が見つかる。
 続いて、領域フィル部1463は、curPattern[ iX ][ iY ]が1である位置が見つかると、iXの値を0になるまで1つずつ減じながら、curPattern[ iX ][ iY ] = 1としてパターンに1を設定する(処理B2)。図21(b)では、iX1より0に近い値に対してフィルが行われる。領域フィル部1463は、B0のループで同じ処理を繰り返し、図21(c)に示す処理B1を行い、図21(d)に示す処理B2を行う。図21(e)のように処理B1において、iX1がcurSize-1から0の間で見つからないと処理B1ではiX=-1となる。この場合、処理B2では、処理が行われず図21(f)のように、この列ではフィルは行われない。上記アルゴリズムでは、垂直成分iYがある値である各行において、パターンcurPattern[ iX ][ iY ]が1である画素があってもなくても処理が可能であるという効果を奏する。具体的には、各行においてパターンcurPattern[ iX ][ iY ]が1である画素があれば、その1の画素よりも左の画素を全て1にフィルし、curPattern[ iX ][ iY ]が1である画素がなければ処理を行わない。
 左上座標のパターンの値を常に0とするように領域のフィルでは、領域フィル部1463は例えば、以下の擬似コードの処理を行う。
  for (y = 0; y < curSize; y++)
  {
    for (x = curSize - 1; x >= 0 ; x--)
    {
      if (curPattern [(y * curSize) + x])
        break;
      curPattern [(y * curSize) + x] = 1;
    }
    for (; x >= 0 ; x--)
    {
      curPattern [(y * curSize) + x] = 0;
    }
  }
 (回転パターン生成部1465)
 回転パターン生成部1465は、ウェッジパターンテーブル145Tに格納された、基本パターンを1つ1つ読み出し、回転させることで、基本パターンの回転パターンを生成する(図16(b)に相当)(S0010~S0013)。ここでは、図13(b)に示すウェッジ方向wedgeOri=1のウェッジレットパターンを生成する。具体的には、startPos(ここでは0)からendPosまでのposで指定されるウェッジパターンテーブル145Tの各WedgePatternTable[ log2BlkSize ][ pos ]を参照パターンrefPattern[][]として、以下の処理ROTにより、回転後のパターンwedgePattern[][]を導出する。
(処理ROT)
  cInc = wedgeOri == 2 ? - 1 : 0; 
  sInc = (wedgeOri == 1 ? - 1 : 1) * (1 + cInc) 
  iOffset = cInc + sInc < 0 ? patternSize - 1 ? 0
  jOffset = -sInc + cInc < 0 ? patternSize - 1 ? 0
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc * y
      j = jOffset - sInc * x + cInc * y
      wedgePattern[ x ][ y ] = refPattern [ i ][ j ]    式R1
    }
 なお、回転パターン生成部1465は、参照パターンrefPattern[][]から対象パターンwedgePattern[][]を生成する場合に、対象パターン上の座標(x, y)を参照パターン上の座標(i, j)に座標変換し、式R1のように、参照パターン上の座標(i, j)上の画素refPattern [ i ][ j ]を、対象パターン上の座標(x, y)上の画素wedgePattern[ x ][ y ]として用いることで導出する。
    wedgePattern[ x ][ y ] = refPattern [ i ][ j ]   式R1
 なお、i, jは、各々0..patternSizeの範囲の値である。ここで、対象パターン上の座標 (x, y)と参照パターン上の座標(i, j)は、回転行列で座標変換されることとする。すなわち、x = (cosθ)i - (sinθ)j + offsetX、y = (sinθ)i + (cosθ)j + offsetYの関係を満たす。offsetX、offsetYは座標変換後の座標(x, y)が0以上をpatternSize-1以下を満たすように設定されるオフセットである。上記の処理ROTの式では、cIncがcosθ、sIncがsinθに対応し、cInc2+ sInc2= 1を満たす。
 なお、本実施形態の第1回転パターンから第3回転パターンでは、特にθ=90度(PI /2 rad)、180度(PI rad)、270度(3 PI /2 rad)のいずれかの場合を用いる。ここでPIは、円周率であり、3.141592...の値を有する。よって、回転パターン生成部1465では、cIncに0もしくは-1、sIncに1, -1(cIncが0のとき)、0(cInxが-1のとき)のいずれかを処理ROTに設定した処理を行う。
 なお、回転パターン生成部1465は、以下の処理ROT´に示すように参照パターンrefPattern[][]から対象パターンwedgePattern[][]を生成する場合に、参照パターン上の座標(i, j)を対象パターン上の座標(x, y)に座標変換し、参照パターン上の座標(i, j)上の画素refPattern [ i ][ j ]を、対象パターン上の座標(x, y)上の画素wedgePattern[ x ][ y ]として用いてもよい。
(処理ROT´)
xOffset = cInc - sInc < 0 ? patternSize - 1 ? 0
yOffset = sInc + cInc < 0 ? patternSize - 1 ? 0
for( j = 0; j < patternSize; j++ )
  for( i = 0; i < patternSize; i++ )  {
    x = xOffset + cInc * i - sInc * j
    y = yOffset + sInc * i + cInc * j
    wedgePattern[ x ][ y ] = refPattern [ i ][ j ]
  }
 (パターン格納部1464)
 パターン格納部1464は、基本パターン生成部1461および回転パターン生成部1465で生成されるウェッジレットパターンについて、ウェッジパターンテーブル中に一致する(重複する)ウェッジレットパターンが存在しなければ、wBlksize×wBlksizeのウェッジパターンテーブルWedgePatternTable[log2BlkSize][NumWedgePattern[log2BlkSize]]へ追加する。より具体的には、生成したウェッジレットパターンwedgePattern[x][y]を、下記式によりウェッジパターンテーブルWedgePatternTableの対応する要素へ、値を設定する。
  WedgePatternTable[log2BlkSize][NumWedgePattern[log2BlkSize][x][y] = 
                wedgePattern[x][y], with x = 0..wBlkSize-1, y = 0..wBlkSize-1
 なお、重複するウェッジレットパターンとは、生成されたウェッジレットパターンと同一の分割パターン、又は、生成されたウェッジレットパターンの各要素値を反転させたウェッジレットパターン(例えば、図11(b)において、0を1へ、1を0へ置換した分割パターン)と同一の分割パターンである。ここで、wBlksizeとは、ウェッジレットパターンを生成するブロックの幅及び高さのサイズを示し、配列NumWedgePattern[]は、ブロックサイズの対数値(log2BlkSize)を引数とする、ブロックサイズ別のウェッジパターンテーブルに追加されたウェッジレットパターンの個数(ウェッジパターン数)を表わす。ウェッジパターンテーブルへウェッジレットパターンが追加される度に、ウェッジパターン数NumWedgePattern[log2BlkSize]は1加算される。なお、NumWedgePatternの初期値は0である。ウェッジパターンテーブル145T5に格納されたサイズlog2BlkSizeのウェッジレットパターンのパターン数がNumWedgePattern[ log2BlkSize ]とする。
 図18は、パターン格納部1464の動作を示すフローチャートである。
 (S2001)パターン格納部1464は、一致判定C1を行い一致すると判定された場合には、格納せずに処理を終了し、一致しないと判定された場合にはS2002に遷移する。パターン格納部1464は、インデックスk(0..NumWedgePattern[ log2BlkSize ] - 1)のウェッジパターンテーブル145T5に格納されたパターンWedgePatternTable[ log2BlkSize ][ k ][ x ][ y ]と、対象のパターンwedgePattern[ x ][ y ]を比較し1つでも等しくなければ、一致フラグを0とする(一致判定処理C1)。
  // 一致判定処理C1
  for k = 0..NumWedgePattern[ log2BlkSize ] - 1
    patIdenticalFlag = 1
    for x, y =0..( 1  <<  log2BlkSize ) - 1,
      if (wedgePattern[ x ][ y ] != WedgePatternTable[ log2BlkSize ][ k ][ x ][ y ])
        patIdenticalFlag = 0
 (S2002)パターン格納部1464は、反転一致判定C2を行い一致すると判定された場合には、格納せずに処理を終了し、それ以外の場合には、S2003に遷移する。パターン格納部1464は、インデックスk(0..NumWedgePattern[ log2BlkSize ] - 1)のウェッジパターンテーブル145T5に格納されたパターンWedgePatternTable[ log2BlkSize ][ k ][ x ][ y ]と、対象のパターンwedgePattern[ x ][ y ]を比較しひとつでも等しければ(反転したパターンと一つでも異なれば)一致フラグを0とする(反転一致判定処理C2)。
  // 反転一致判定処理C2
  for k = 0..NumWedgePattern[ log2BlkSize ] - 1
    patIdenticalFlag = 1
    for x, y =0..( 1  <<  log2BlkSize ) - 1,
      if (wedgePattern[ x ][ y ] == WedgePatternTable[ log2BlkSize ][ k ][ x ][ y ])
        patIdenticalFlag = 0
 (S2003)パターン格納部1464は、生成されるウェッジレットパターンをウェッジパターンテーブル145T5に格納する。格納されるのは、一致判定C1と反転一致判定C2でどちらでも一致しないと判定され、patIdenticalFlagが0となる場合のみである。格納時にウェッジパターン数NumWedgePattern[ log2BlkSize ] を1だけインクリメントする。
 (ウェッジレットパターン生成部145T4の動作手順)
 図15は、ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理のうち、各基本パターン生成、各回転パターン生成に注目した処理を示すフローチャートである。以下、図15を参照して、ウェッジレットパターン生成部145T4の詳細動作を説明する。図19は、基本パターン生成および回転パターン生成に用いる生成パラメータを示すテーブルである。パラメータを用いることにより、各パターンの生成が共通の処理で実行可能である。また共通の処理(プログラム、回路)を用いず、図の生成パラメータを展開して得られる個別の処理(プログラム、回路)を用いて各基本パターン生成、各回転パターン生成を行っても良い。
 (S1001)第1基本パターン生成
 ウェッジレットパターン生成部145T4は、基本パターン生成部1461において第1基本パターン生成を生成する(図16(a)に相当)。ここでは、第1基本パターン生成は、図13(a)に示すウェッジ方向wedgeOri=0のウェッジレットパターンとするが、ウェッジ方向wedgeOri=0~3のウェッジレットパターンの何れか1つのウェッジレットパターンでも構わない。基本パターン生成は、始点、終点設定、線分描画、領域フィルから構成される。
 基本パターン生成部1461は、始点(xS、yS)と終点(xE、yE)を設定する。具体的には、第1のループ変数m(m= 0..wBlkSize - 1)、第2のループ変数n(n= 0..wBlkSize- 1)に対して、以下の式により、xS、yS、xE、yEを設定する。
 xS = m 
 yS = 0 
 xE = (wedgeOri==0) ? 0 : n
 yE = (wedgeOri==0) ? n : wBlkSize - 1
 wedgeOri==0なので、以下が設定される。
 xS = m 
 yS = 0 
 xE = 0 
 yE = n 
 ここでは、図13(a)で説明したように、始点がブロックの上辺の線分S上の点、終点がブロックの左辺の線分E上の点となる。
 なお、xPosS、yPosS、xPosE、yPosEは初期値、xIncS、yIncS、xIncE、yIncEは増分として以下のように始点と終点を設定しても良い。
 xS = ( xPosS + m * xIncS )
 yS = ( yPosS + m * yIncS )
 xE = ( xPosE + n * xIncE )
 yE = ( yPosE + n * yIncE )
 ウェッジ方向wedgeOri=0を基本パターンとする場合には、図19(a)に示すあたい、xPosS=0、yPosS=0、xPosE=0、yPosE=0、xIncS=1、yIncS=0、xIncE=0、yIncE=1を設定する。これにより上記値が設定される。
 領域フィル部1463は、パターンが1である画素を探索し、パターンが1である画素があれば継続する画素を1に設定する。
 なお、第2のループ変数nは1からスタートしても良い(n= 1..wBlkSize - 1)。これにより冗長なパターンが生成されることを防ぐことができる。
 この領域フィルは、第1基本パターンと第2基本パターンで共通の処理を用いることができる。本実施形態の線分描画部1462では、導出するウェッジレットパターン毎に異なる領域フィル処理を用いることなく、一つの領域フィル処理を共通で用いることができるという効果を奏する。
 パターン格納部1464は、領域フィル部1463でフィルされたパターンをウェッジパターンテーブル145Tに格納する。基本パターン導出では、基本パターン導出前のウェッジパターンテーブル145Tに格納されたテーブルの数NumWedgePattern[log2BlkSize]を変数startPos、基本パターン導出後のウェッジパターンテーブル145Tに格納されたテーブルの数NumWedgePattern[log2BlkSize]-1を変数endPosに設定する。ここでは、変数startPosは0、変数endPosを第1基本パターンを導出した後のウェッジパターンテーブル145Tの数となる。
 (S1002)第1基本パターン第1回転パターン生成
 回転パターン生成部1465は、ウェッジパターンテーブル145Tに格納された、基本パターンを1つ1つ読み出し、回転させることで、基本パターンの回転パターンを生成する(図16(b)に相当)。ここでは、図13(b)に示すウェッジ方向wedgeOri=1のウェッジレットパターンを生成する。具体的には、startPos(ここでは0)からendPos(ここでは第1基本パターン導出後のウェッジテーブル数―1)までのposで指定されるウェッジパターンテーブル145Tの各WedgePatternTable[ log2BlkSize ][ pos ]を参照パターンrefPattern[][]として、処理ROTにcInc = 0、sInc = -1を代入して得られる以下の処理ROT90により、回転後のパターンwedgePattern[][]を導出する。
(処理ROT90)
  cInc = 0
  sInc = -1
  iOffset = patternSize - 1
  jOffset = 0
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc * y = patternSize - 1 - y 
      j = jOffset - sInc * x + cInc * y = 0 
      wedgePattern[ x ][ y ] = refPattern [ i ][ j ]
    }
 本実施形態の回転パターン生成部1465は、入力された参照ウェッジレットパターンrefPattern [ i ][ j ]から対象ウェッジレットパターンwedgePattern[ x ][ y ]を生成し、参照ウェッジレットパターン上の座標(i, j)を回転行列で座標変換して得られる座標(x, y)上の対象ウェッジレットパターンの値wedgePattern[ x ][ y ]として、参照ウェッジレットパターンの座標(i, j)の値refPattern [ i ][ j ]を用いる。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。
 前記回転パターン生成部1465は、基本パターン設定部1461で設定される開始点と終了点の間のウェッジレットパターンを入力refPattern[][]として、回転パターンであるウェッジレットパターンwedgePattern[][]を導出する。
 なお、上の座標(i, j)を対象パターン上の座標(x, y)に座標変換するのではなく、対象パターン上の座標(x, y)を参照パターン上の座標(i, j)に座標変換し、対象パターン上の座標(x, y)上の画素wedgePattern[ x ][ y ]として、参照パターン上の座標(i, j)上の画素refPattern [ i ][ j ]を代入してもよい。この場合も、(i,j)と(x,y)は、回転行列で座標変換されるものとする。すなわち、i = (cosθ)x + (sinθ)y、j = -(sinθ)x + (cosθ)yの関係を満たす。
 上記第1基本パターン第1回転パターン生成の例では、
for( y = 0; y < patternSize; y++ )  
  for( x = 0; x < patternSize; x++ )  {
    i = 0 * x + 1 * y
    j = -1 * x + 0 * y
    wedgePattern[ x ][ y ] = refPattern [ i ][ j ]
  }
としても良い。
 生成されたパターンwedgePattern[][]はパターン格納部1464に格納される。
 (S1003)第1基本パターン第2回転パターン生成
 回転パターン生成部1465は、ウェッジパターンテーブル145Tに格納された、基本パターンを1つ1つ読み出し、回転させることで、基本パターンの回転パターンを生成する(図16(c)に相当)。ここでは、図13(c)に示すウェッジ方向wedgeOri=2のウェッジレットパターンを生成する。具体的には、startPos(ここでは0)からendPosまでのposで指定されるウェッジパターンテーブル145Tの各WedgePatternTable[ log2BlkSize ][ pos ]を参照パターンrefPattern[][]として、処理ROTにcInc = -1、sInc = 0を代入して得られる以下の処理ROT180により、回転後のパターンwedgePattern[][]を導出する。
(処理ROT180)
  cInc = -1
  sInc = 0
  iOffset = patternSize - 1
  jOffset = patternSize - 1
    for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc * y = patternSize - 1 - x
      j = jOffset - sInc * x + cInc * y = patternSize - 1 - y
      wedgePattern[ x ][ y ] = refPattern [ i ][ j ]
    }
 生成されたパターンwedgePattern[][]はパターン格納部1464で格納される。
 (S1004)第1基本パターン第3回転パターン生成
 回転パターン生成部1465は、ウェッジパターンテーブル145Tに格納された、基本パターンを1つ1つ読み出し、回転させることで、基本パターンの回転パターンを生成する(図16(d)に相当)。ここでは、図13(d)に示すウェッジ方向wedgeOri=3のウェッジレットパターンを生成する。具体的には、startPos(ここでは0)からendPosまでのposで指定されるウェッジパターンテーブル145Tの各WedgePatternTable[ log2BlkSize ][ pos ]を参照パターンrefPattern[][]として、処理ROTにcInc = 0、sInc = 1を代入して得られる以下の処理R270により、回転後のパターンwedgePattern[][]を導出する。
(処理ROT270)
  cInc = 0
  sInc = 1
  iOffset = 0
  jOffset = patternSize - 1
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc * y = y
      j = jOffset - sInc * x + cInc * y = patternSize - 1 - x
      wedgePattern[ x ][ y ] = refPattern [ i ][ j ]
    }
 生成されたパターンwedgePattern[][]はパターン格納部1464で格納される。
 (S1005)第2基本パターン生成
 ウェッジレットパターン生成部145T4は、基本パターン生成部1461において第2基本パターン生成を生成する(図16(a)に相当)。
 基本パターン生成部1461は、始点(xS、yS)と終点(xE、yE)を設定する。具体的には、第1のループ変数m(m= 0..wBlkSize - 1)、第2のループ変数n(n= 0..wBlkSize- 1)に対して、以下の式により、xS、yS、xE、yEを設定する
 xS = m 
 yS = 0 
 xE = (wedgeOri==0) ? 0 : n
 yE = (wedgeOri==0) ? n : wBlkSize - 1
すなわち、以下が設定される
 xS = m * 1 
 yS = 0 
 xE = n 
 yE = wBlkSize - 1 
 なお、xPosS、yPosS、xPosE、yPosEは初期値、xIncS、yIncS、xIncE、yIncEは増分とし、図19(e)に示す値であるxPosS=0、yPosS=0、xPosE=0、yPosE= wBlkSize - 1 、xIncS=1、yIncS=0、xIncE=1、yIncE=0を用いて以下のように導出してもよい
 xS = ( xPosS + m * xIncS )
 yS = ( yPosS + m * yIncS )
 xE = ( xPosE + n * xIncE )
 yE = ( yPosE + n * yIncE )
 第2基本パターンは、始点もしくは終点の移動方向が互いに並行であるパターンである。すなわち、始点の移動方向が水平方向(xIncS=1、yIncS=0)である場合、終点の移動方向も水平方向(xIncE=1、yIncE=0)であるパターンを指す。なお、移動方向に垂直な方向、ここでは垂直方向の成分は固定値となる。なお、移動方向が互いに並行であれば、(xIncS=1、yIncS=0)、(xIncE=-1、yIncE=0)のように方向が反転していても良い。
 ここで説明した第2基本パターンは、ウェッジ方向wedgeOri=4のパターンであり、図13(e)で説明したように、始点がブロックの上辺の線分S上の点、終点がブロックの下辺の線分E上の点となる。
 なお、第2基本パターンを、ウェッジ方向wedgeOri=5のパターンとすることもできる。図13(f)で説明したように、始点がブロックの左辺の線分S上の点、終点がブロックの右辺の線分E上の点となる。第2基本パターンをウェッジ方向wedgeOri=5のパターンとする場合には、xPosS=0、yPosS=0、xPosE=patternSize-1、yPosE=0、xIncS=0、yIncS=1、xIncE=0、yIncE=1を設定する。すなわち、以下が設定される
 xS = 0 
 yS = m * 1 
 xE = patternSize-1 
 yE = n * 1 
 この場合も、第2基本パターンは、始点もしくは終点の移動方向が互いに並行であるパターンとなる。すなわち、始点の移動方向が垂直方向(xIncS=0、yIncS=1)である場合、終点の移動方向も垂直方向(xIncE=0、yIncE=1)であるパターンを指す。なお、移動方向に垂直な方向、ここでは水平方向の成分は固定値となる。なお、移動方向が互いに並行であれば、(xIncS=0、yIncS=1)、(xIncE=0、yIncE=-1)のように方向が反転していても良い。
 領域フィル部1463は、線分描画部1462で導出された線分で分けられた2つの領域の内、一方の領域を1でフィルする。他方の領域は0のままとする。具体的には以下の擬似コードで示す処理によりフィルを行う。
 生成されたパターンwedgePattern[][]はパターン格納部1464に格納される。基本パターン導出では、基本パターン導出前のウェッジパターンテーブル145Tに格納されたテーブルの数NumWedgePattern[log2BlkSize]を変数startPos、基本パターン導出後のウェッジパターンテーブル145Tに格納されたテーブルの数NumWedgePattern[log2BlkSize]-1を変数endPosに設定する。
 (S1006)第2基本パターン第1回転パターン生成
 回転パターン生成部1465は、ウェッジパターンテーブル145Tに格納された、第2基本パターンを1つ1つ読み出し、回転させることで、第2基本パターンの回転パターンを生成する。ここでは、図13(f)に示すウェッジ方向wedgeOri=5のウェッジレットパターンを生成する。具体的には、startPosからendPosまでのposで指定されるウェッジパターンテーブル145Tの各WedgePatternTable[ log2BlkSize ][ pos ]を参照パターンrefPattern[][]として、回転後のパターンwedgePattern[][]を導出する。
  cInc = 0
  sInc = 1
  iOffset = 0
  jOffset = patternSize - 1
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc * y = y
      j = jOffset - sInc * x + cInc * y = patternSize - 1 - x
      wedgePattern[ x ][ y ] = refPattern [ i ][ j ]
    }
 生成されたパターンwedgePattern[][]は、パターン格納部1464に格納される。
 (ウェッジレットパターン生成部145T4の実施形態)
 以下、ウェッジレットパターン生成部145T4の変形例であるウェッジレットパターン生成部145T4´を説明する。図22は、ウェッジレットパターン生成部145T4´の構成を説明する図である。ウェッジレットパターン生成部145T4´は、基本パターン生成部1461、パターン格納部1464´、回転パターン生成部1565´から構成される。
 (回転パターン生成部1465´)
 回転パターン生成部1465´は、参照パターンrefPatternに基づいて対象パターンに設定する際に、一部の場合に反転を行う。具体的には、回転パターン生成部1465´は、以下の処理ROTに示す擬似コードの処理を行う。
(処理ROT)
  cInc = wedgeOri == 2 ? - 1 : 0;
  sInc = (wedgeOri == 1 ? - 1 : 1) * (1 + cInc);
  iOffset = cInc + sInc < 0 ? patternSize - 1 ? 0
  jOffset = -sInc + cInc < 0 ? patternSize - 1 ? 0
  for( y = 0; y < patternSize; y++ ) {
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc  * y
      j = jOffset - sInc * x + cInc  * y
      wedgePattern[ x ][ y ] = refPattern [ iOffset ][ jOffset ] ? refPattern [ i ][ j ] : 1 -refPattern [ i ][ j ]    式R2
    }
  }
 式R2は、対象パターンの左上座標(0, 0)のウェッジレットパターンの値が1となるように回転に加え、条件に応じて反転を行う場合の式である。
 図24は、本実施形態の回転パターン生成部1465´の動作を説明する図である。領域フィル部1463は左上座標のウェッジレットパターンの値が1となるウェッジレットパターンを生成する。式R2の処理を行う回転パターン生成部1465´は、図24(a)に示すように、回転後の左上座標のウェッジレットパターンの値が1となる場合、回転処理後に反転せず、refPattern [ i ][ j ]を対象パターンwedgePattern[ x ][ y ]に設定し、図24(b)に示すように回転後の左上座標のウェッジレットパターンの値が0の場合には、回転処理の後に反転して、1-refPattern [ i ][ j ](= !refPattern [ i ][ j ])を対象パターンwedgePattern[ x ][ y ]に設定する。ここで反転とは1と0を入れ替える操作を指す。
 ここで、ある参照パターン上の座標(i0 , j0)の参照パターンの値refPattern [ i0 ][ j0 ]が、回転後に対象パターンの左上座標(0, 0)の値として参照される。回転パターン生成部1465´は、回転後の左上座標の参照パターンの値refPattern [ i0 ][ j0 ]が1の場合には、反転せずrefPattern [ i ][ j ]を設定し、参照パターンの値refPattern [ i0 ][ j0 ]が0の場合には反転して、1-refPattern [ i ][ j ]を設定する。
 回転後に 座標(x, y)が(0,0)となる、回転前の座標(i0, j0)は以下により求められる。
    i0 = iOffset + cInc * 0 + sInc  * 0 = iOffset
    j0 = jOffset - sInc * 0 + cInc  * 0 = jOffset
 まとめると、(i0, j0)= (iOffset, jOffset)であり、回転後に左上座標にマッピングされる参照パターンの値はrefPattern [ iOffset ][ jOffset ]である。よって、refPattern [ iOffset ][ jOffset ]が1の場合に、参照パターンrefPattern [ i ][ j ]を反転せず、回転パターンの値としてrefPattern [ i ][ j ]を設定し、refPattern [ iOffset ][ jOffset ]が0の場合には参照パターンrefPattern [ i ][ j ]を反転して、回転パターンの値として1-refPattern [ i ][ j ]を設定することで左上座標のパターンの値が常に1の回転パターンを導出することができる。
 このように、ウェッジレットパターン生成部145T4´の備える領域フィル部1463がウェッジレットパターンの左上が常に1となるようなウェッジレットパターンを生成する場合において、ウェッジレットパターン生成部145T4´の備える回転パターン生成部1465´は、ウェッジレットパターンの左上が常に1(もしくは常に0)であるパターンを容易に生成することができるという効果を奏する。
 図23は、ウェッジレットパターン生成部145T4´におけるウェッジレットパターン生成処理を示す図である。図16では、ウェッジレットパターンの左上座標の画素値が回転前と回転後で反転していたが、図23では、ウェッジレットパターンの左上座標の画素値が反転することはない。図23では、式R2のように回転パターン生成のときに、条件に応じて反転させることにより、左上座標のウェッジレットパターンの値の変化をなくすことができる。左上座標のウェッジレットパターンの値を固定にする場合、ウェッジレットパターンの1と0が反転したパターンが、基本パターン生成部1461および回転パターン生成部1565´から生成されることがないため、パターン格納部1464´における一致判定処理がウェッジレットパターン生成部145T4に比べ簡略化できる。
  図25は、本実施形態の別の形態のウェッジレットパターン生成部145T4´を説明する図である。ウェッジレットパターン生成部145T4´は、領域フィル部1463、回転パターン生成部1465の代わりに、領域フィル部1463´、回転パターン生成部1465´´を備える。領域フィル部1463´は、左上座標のパターンの値が常に0となるように領域のフィルを行う。回転パターン生成部1465´´は、式R2の代わりに以下の式R2´を用いる。
    wedgePattern[ x ][ y ] = refPattern [ iOffset ][ jOffset ] == 0 ? refPattern [ i ][ j ] : 1 -refPattern [ i ][ j ]    式R2´
なお、refPattern [ iOffset ][ jOffset ] == 0は、論理否定!を用いて、!refPattern [ iOffset ][ jOffset ]でも処理ができる。
 ウェッジレットパターン生成部145T4´の備える領域フィル部1463がウェッジレットパターンの左上が常に0となる場合、上記構成の回転パターン生成部1465´´は、回転前と回転後でウェッジレットパターンの左上座標のパターンの値を変更させないという効果を奏する。
 図26は、ウェッジレットパターン生成部145T4´の備えるパターン格納部1464´の動作を示すフローチャートである。
 (S2011)パターン格納部1464´は、一致判定C1で一致すると判定された場合には、格納せずに処理を終了し、一致しないと判定された場合にはS2013に遷移する。パターン格納部1464は、インデックスk(0..NumWedgePattern[ log2BlkSize ] - 1)のウェッジパターンテーブル145T5に格納されたパターンWedgePatternTable[ log2BlkSize ][ k ][ x ][ y ]と、対象のパターンwedgePattern[ x ][ y ]を比較し1つでも等しくなければ、一致フラグを0とする(一致判定処理C1)。
  // 一致判定処理C1
  for k = 0..NumWedgePattern[ log2BlkSize ] - 1
    patIdenticalFlag = 1
    for x, y =0..( 1  <<  log2BlkSize ) - 1,
      if (wedgePattern[ x ][ y ] != WedgePatternTable[ log2BlkSize ][ k ][ x ][ y ])
        patIdenticalFlag = 0
 (S2013)パターン格納部1464´は、一致判定C1で一致しない場合、つまり、patIdenticalFlagが0の場合のみ、生成されるウェッジレットパターンをウェッジパターンテーブル145T5に格納する。格納時にウェッジパターン数NumWedgePattern[ log2BlkSize ] を1だけインクリメントする。
 ウェッジレットパターン生成部145T4´によれば、領域フィル部1463および回転パターン生成部1465´(もしくは回転パターン生成部1465´´)で、常にウェッジレットパターンの左上画素を1(もしくは0)とする規則に応じてウェッジレットパターンが生成するため、パターン格納部1464´において、反転一致判定C2を行う必要がない。そのため、ウェッジレットパターン生成部145T4´によれば、一致判定C1のみを行えば良いため、既にウェッジパターンテーブル145T5に格納したウェッジレットパターンと生成したパターンが一致しているがどうかの判定処理を低減させる効果を奏する。
 (回転パターン生成部1465´の別の構成)
 なお、ウェッジレットパターン生成部145T4´は、回転パターン生成部1465´として、以下の式R2、式R2´よりも簡単な式R3を用いても良い。
(処理ROT)
  cInc = wedgeOri == 2 ? - 1 : 0;
  sInc = (wedgeOri == 1 ? - 1 : 1) * (1 + cInc);
  iOffset = cInc + sInc < 0 ? patternSize - 1 ? 0
  jOffset = -sInc + cInc < 0 ? patternSize - 1 ? 0
  for( y = 0; y < patternSize; y++ ) {
    for( x = 0; x < patternSize; x++ )  {
      i = iOffset + cInc * x + sInc  * y
      j = jOffset - sInc * x + cInc  * y
      wedgePattern[ x ][ y ] = 1 -refPattern [ i ][ j ]    式R3
    }
  }
 式R3を用いる回転パターン生成部1465´では、回転パターンとして導出されるウェッジレットパターンの左上画素が常に1(もしくは0)となることは保障されないが、参照パターンの左上画素が1(もしくは0)となるように生成されている場合、多くの場合に、ウェッジレットパターンの左上画素を1(もしくは0)となる。これにより、パターン格納部1464´において、反転一致判定C2を行う必要がない。そのため、ウェッジレットパターン生成部145T4´によれば、一致判定C1のみを行えば良いため、既にウェッジパターンテーブル145T5に格納したウェッジレットパターンと生成したパターンが一致しているがどうかの判定処理を低減させる効果を奏する。なお、反転して一致するパターンが一部ウェッジパターンテーブル145T5に格納されても問題は生じない。
 (ウェッジレットパターン生成部145T4´´)
 回転パターン生成部1465、1465´から生成される回転パターンのウェッジパターン(ウェッジレットパターン)は、多くの場合、既に生成され、ウェッジパターンテーブル145T5に格納されたウェッジパターン(ウェッジレットパターン)と一致することがない。そのため、回転パターンでは一致判定を省略するようにパターン格納部の動作を簡略化することが適当である。以下、このような構成のパターン格納部1464´´を備えるウェッジレットパターン生成部145T4´´を説明する。
 ウェッジレットパターン生成部145T4´´は、ウェッジレットパターン生成部145T4、ウェッジレットパターン生成部145T4´と同様の構成であるが、パターン格納部1464、パターン格納部1464´の代わりに、パターン格納部1464´´を用いる。
 図27は、ウェッジレットパターン生成部145T4´´の備えるパターン格納部1464´´の動作を示すフローチャートである。
 (S2020)パターン格納部1464´´は、ウェッジ方向wedgeOriが所定の値、ここでは基本パターン(第1基本パターン、第2基本パターン)を示すwedgeOri=0、4である場合、S2021に遷移し、条件に応じてウェッジレットパターンをウェッジパターンテーブル145T5に格納する。それ以外の場合(ここでは回転パターンを示すwedgeOri=1,2,3,5の場合)、S2023に遷移し条件によらずウェッジレットパターンをウェッジパターンテーブル145T5に格納する。
 (S2021)パターン格納部1464´´は、既にウェッジパターンテーブル145T5に格納したウェッジレットパターンと一致する場合には、格納せずにS2025に遷移する。一致しない場合にはS2023に遷移する。なお、一致判定には、既に説明した一致判定C1および反転一致判定C2を用いることができる。なお、回転パターン生成部1465´で、ウェッジレットパターンの左上画素を1(もしくは0)とするような、参照時に条件に応じて反転する式R2、R2´もしくは、参照時に常に反転する式R3を利用して、ウェッジレットパターンを生成する場合には、パターン格納部1464´´は、パターン格納部1464´と同様、反転一致判定C2を行わず、一致判定C1のみを行うことが適当である。
 (S2023)パターン格納部1464´´は、生成されるウェッジレットパターンをウェッジパターンテーブル145T5に格納する。格納される場合は、基本パターンの場合、かつ、既にウェッジパターンテーブル145T5に格納したウェッジレットパターンと一致しない場合、もしくは、回転パターンの場合である。格納時にウェッジパターン数NumWedgePattern[ log2BlkSize ] を1だけインクリメントする。
 上記構成のパターン格納部1464´´を備えるウェッジレットパターン生成部145T4´´によれば、基本パターンのさらにウェッジ方向wedgeOriの一致したパターン間のパターンのみで一致判定を行うので、一致判定に用いる処理量が少ないという効果を奏する。
 (第2基本パターンを先に導出する例)
 以上説明したウェッジレットパターン生成部145T4、ウェッジレットパターン生成部145T4´、ウェッジレットパターン生成部145T4´´では、始点と終点の位置する辺が互いに直交する関係を有する始点と終点から生成される第1基本パターンの次に、始点と終点の位置する辺が互いに並行する関係を有する始点と終点から生成される第2基本パターンを生成しているが、第2基本パターンを第1基本パターンの先に生成しても良い。図28は、ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示すフローチャートの別の例であり、第2基本パターンを第1基本パターンの先に生成する。
 (S1011)第2基本パターン生成
 図16(e)、図23(e)を用いて、既に説明したS1005と同じ動作により第2基本パターンを生成する。
 (S1012)第2基本パターン生成第1回転パターン生成
 図16(f)、図23(f)を用いて、既に説明したS1006と同じ動作により第2基本パターン第1回転パターンを生成する。
 (S1013)第1基本パターン生成
 図16(a)、図23(a)を用いて、既に説明したS1001と同じ動作により第1基本パターンを生成する。
 (S1014)第2基本パターン生成第1回転パターン生成
 図16(b)、図23(b)を用いて、既に説明したS1002と同じ動作により第1基本パターン第1回転パターンを生成する。
 (S1015)第2基本パターン生成第1回転パターン生成
 図16(c)、図23(c)を用いて、既に説明したS1003と同じ動作により第1基本パターン第2回転パターンを生成する。
 (S1016)第2基本パターン生成第1回転パターン生成
 図16(d)、図23(d)を用いて、既に説明したS1004と同じ動作により第1基本パターン第3回転パターンを生成する。
 第2基本パターンを先に生成する場合も、ウェッジレットパターン生成部145T4の効果は、第1基本パターンを先に生成する場合と等しい。すなわち、本実施形態のウェッジレットパターン生成部145T4は、全てのウェッジレットパターンを線分描画部1462、領域フィル部1463を用いた線分描画処理、領域フィル処理により生成するのではなく、一部のウェッジレットパターンは回転パターン生成部1565を用いた回転処理により生成する。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。
   [ウェッジパターンテーブル145T5]
 ウェッジパターンテーブル145T5は、ウェッジレットパターン生成部145T4より供給されるブロックサイズ別のウェッジパターンテーブルWedgePatternTableを記録する。
 (作用・効果)
 以上説明した本実施形態に係る動画像復号装置1の備えるウェッジレットパターン生成部145T4は、全てのウェッジレットパターンを線分描画部1462、領域フィル部1463を用いた線分描画処理、領域フィル処理により生成するのではなく、一部のウェッジレットパターンは回転パターン生成部1565を用いた回転処理により生成する。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。
 以上説明した本実施形態に係る動画像復号装置1の備える線分描画部1462は、ウェッジレットパターンサイズpatternSizeを、refShiftだけ左シフトして得られるサイズpatternSize<< refShiftの拡大ブロック上の始点(xS、yS)と終点(xE、yE)から得られる線分座標(xPos, yPos)を、refShiftだけ右シフトして得られる座標(xPos>> refShift, yPos>>refShift)に1を設定することにより、線分描画処理に用いるメモリサイズを増大させることを防ぐ効果を奏する。
 以上説明した本実施形態に係る動画像復号装置1の備えるウェッジレットパターン生成部145T4´は、回転とともに反転を回転パターン生成部1465´を用いることにより、ウェッジレットパターンの左上が常に1(もしくは常に0)であるパターンを容易に生成することができる(式R2の場合)、という効果を奏する。もしくは、回転とともに反転を回転パターン生成部1465´を用いることにより、ウェッジレットパターンの左上が多くの場合に1(もしくは常に0)であるパターンを容易に生成することができる(式R3の場合)。
 以上説明した本実施形態に係る動画像復号装置1の備える領域フィル部1463は、パターンが1である画素を探索し、パターンが1である画素があれば継続する画素を1に設定する。これにより、導出するウェッジレットパターン毎に異なる領域フィル処理を用いることなく、一つの領域フィル処理を共通で用いることができるという効果を奏する。
 以上説明した本実施形態に係る動画像復号装置1の備えるウェッジレットパターン生成部145T4´´のパターン格納部1464´´は、基本パターンについてのみ、一致判定を行い、回転パターンについては、一致判定を行わずに格納するため処理量が少ないという効果を奏する。
 (ウェッジレットパターン生成部145T4の変形例)
 以下、ウェッジレットパターン生成部145T4の変形例のウェッジレットパターン生成部145T4Bを説明する。
 図30に示すとおり、ウェッジレットパターン生成部145T4Bは、ウェッジレットパターン生成部145T4と同様に、基本パターン生成部1461、パターン格納部1464、回転パターン生成部1565Bから構成され、基本パターン生成部1461は、線分描画部1462、領域フィル部1463から構成される。
 図31は、ウェッジレットパターン生成部145T4におけるウェッジレットパターン生成処理を示す図である。図31(a)に示すように、本実施形態のウェッジレットパターン生成部145T4Bは、基本パターン生成部1461で第1基本パターンを構成するウェッジレットパターンのセットを生成する。次に、(b)に示すように、回転パターン生成部1465Bで、直前に生成したウェッジレットパターンのセットである第1基本パターンに含まれる個々のウェッジレットパターンを回転させ、ウェッジレットパターンのセットである第1基本パターン第1回転パターン(第1回転パターン)を生成する。次に、(c)に示すように、回転パターン生成部1465Bで、直前に生成したウェッジレットパターンのセットである第1基本パターン第1回転パターンに含まれる個々のウェッジレットパターンを回転させ、ウェッジレットパターンのセットである第1基本パターン第2回転パターン(第2回転パターン)を生成する。次に、(d)に示すように、回転パターン生成部1465Bで、直前に生成したウェッジレットパターンのセットである第1基本パターン第2回転パターンに含まれる個々のウェッジレットパターンを回転させ、第1基本パターン第3回転パターン(第3回転パターン)を生成する。さらに、図31(e)に示すように、本実施形態のウェッジレットパターン生成部145T4Bは、基本パターン生成部1461で第2基本パターンを構成するウェッジレットパターンのセットを生成する。(f)に示すように、回転パターン生成部1465Bで、直前に生成したウェッジレットパターンのセットである第2基本パターンに含まれる個々のウェッジレットパターンを回転させ、ウェッジレットパターンのセットである第2基本パターン第1回転パターン(第4回転パターン)を生成する。本実施形態では、第1回転パターン、第2回転パターン、第3回転パターン、第4回転パターンを生成するために回転パターン生成部1465Bは各々時計回りに90度の例を説明するが、90度ではなく270度の回転でも良い。
 図32は、ウェッジレットパターン生成部145T4Bの動作を示すフローチャートである。
 (S0101)変数posStartに0を設定する。
 (S0102)ウェッジ方向wedgeOriに関するループの開始。ウェッジ方向wedgeOriに0,1,2,3,4,5を順に設定しS0103からS0114の処理を行う。
 (S0103)現時点でのウェッジパターン数NumWedgePatternを変数posStart (posWedgePatternとも呼ぶ)に設定する。
 (S0104)ウェッジ方向wedgeOriが基本パターンの場合には、すなわち、wedgeOri=0, 又はwedgeOri=4の場合に、S0105に遷移し、線分描画処理と領域フィル処理により、ウェッジ方向wedgeOriの各ウェッジレットパターンを生成する。ウェッジ方向wedgeOriが基本パターン以外の場合(wedgeOri=1,2,3,5の場合)には、S0109に遷移し、回転処理によりウェッジレットパターンを生成する。
 (S0105)始点位置と終点位置を制御する変数m, nに関するループの開始。ループ変数はm, n。以下、m=0.. wBlkSize - 1、n=0.. wBlkSize - 1のm, nに対して、S0106からS0108の処理を行う。これにより、ウェッジ方向wedgeOriに対して、始点、終点を変化させながらウェッジレットパターンを生成する。なおwBlkSizeはブロックサイズ(仮想ブロックサイズ)である。なお、後述するように基本パターン生成部1461の変形例で後述するように、m=0.. (wBlkSize / sizeScaleS) - 1、n=0.. (wBlkSize / sizeScaleE) - 1のm, nに対して、S0106からS0108の処理を行っても良い。
 (S0106)線分描画部1462が線分を引き、領域フィル部1463が領域をフィルすることで、ウェッジ方向wedgeOri、変数m, nで示される始点、終点の基本パターンであるウェッジレットパターンを生成する。具体的には、基本パターン生成部1461は、始点(xS, yS)、終点(xE, yE)を以下の式で導出する。
  xS = m
  yS = 0
  xE = (wedgeOri==0) ? 0 : n
  yE = (wedgeOri==0) ? n : wBlkSize - 1
 また、基本パターン生成部1461は、変形例として後述するように始点(xS, yS)、終点(xE, yE)を以下の式で導出しても良い。
  xS = m* sizeScaleS
  yS = 0
  xE = (wedgeOri==0) ? 0 : n * sizeScaleE
  yE = (wedgeOri==0) ? n * sizeScaleE : wBlkSize - 1
 なお、sizeScaleS、sizeScaleEは、始点と終点を各々sizeScaleS、sizeScaleE間隔で変化させるための変数であり、以下の式により導出される。
  sizeScaleS = ( log2BlkSize > 3 ) ? 2 : 1
  sizeScaleE = ( wedgeOri < 4 && log2BlkSize > 3 ) ? : 2 : 1
 ここで、log2BlkSizeは、ブロックサイズの2を底とする対数である。
 (S0107)生成されたウェッジレットパターンが所定条件を満たせば、該ウェッジレットパターンをウェッジパターンテーブル145T5に格納する。格納する場合、ウェッジパターン数NumWedgePatternを1だけインクリメントする。
 (S0108)始点位置と終点位置を制御する変数m, nに関するループの終了。
 (S0109)posEndに、現時点のウェッジパターン数NumWedgePattern-1を設定する。
 (S0110)参照パターンのインデックスposに関するループの開始。posの範囲はposStartからposEnd。
 (S0111)回転パターン生成部1465Bは、ウェッジパターンテーブル145T5に格納されたposで示されるウェッジレットパターンを参照ウェッジレットパターンとして、回転パターンであるウェッジレットパターンを生成する。
 (S0112)生成されたウェッジレットパターンが所定条件を満たせば、該ウェッジレットパターンをウェッジパターンテーブル145T5に格納する。格納する場合、ウェッジパターン数NumWedgePatternを1だけインクリメントする。
 (S0113)参照パターンのインデックスposに関するループの終了。
 (S0114)ウェッジ方向wedgeOriに関するループの終了。
 ここで、所定条件とは、パターン格納部164における一致判定C1やC2を行い、その結果、格納済ウェッジレットパターンと生成ウェッジレットパターンが重複しないことである。
 基本パターン生成部1461の動作は、既に説明した通り、wedgeOri=0(第1基本パターン)とwedgeOri=4(第2基本パターン)において、0からwBlkSize - 1の範囲の各値をとる変数m、0からwBlkSize - 1の範囲の各値をとる変数nについて、始点(xS, yS)と終点(xE、yE)を設定し、線分描画部1462、領域フィル部1463により、各パターンを導出する。線分描画部1462、領域フィル部1463は既に説明済みであるので説明を省略する。
 (基本パターン生成部の変形例)
 基本パターン生成部1461は既に説明した方法の他、変形例として、ウェッジレートテーブルを生成する単位を変更しても良い。具体的には0から(wBlkSize / sizeScaleS) -1の範囲の各値をとる変数m、0から(wBlkSize / sizeScaleE) - 1の範囲の各値をとる変数nに設定し、始点(xS, yS)と終点(xE、yE)を以下の式により導出しても良い。
  xS = m* sizeScaleS
  yS = 0
  xE = (wedgeOri==0) ? 0 : n * sizeScaleE
  yE = (wedgeOri==0) ? n * sizeScaleE : wBlkSize - 1
 このとき、sizeScaleS 、sizeScaleEは、生成する単位(間引き)を処理するための変数であり、sizeScaleS単位で変化する始点、sizeScaleE単位で変化する終点を用いて線分描画部1462、領域フィル部1463により、線分を描画、領域をフィルしてウェッジレットパターンを導出する。
 (回転パターン生成部1465B)
 回転パターン生成部1465Bは、図31に示すようにウェッジパターンテーブル145Tに格納されたウェッジレットパターンを1つ1つ読み出し、回転させることで、回転パターンを生成する(図32のS0110~S0113に相当)。具体的には、startPosからendPosまでのposで指定されるウェッジパターンテーブル145Tの各WedgePatternTable[ log2BlkSize ][ pos ]を参照パターンrefPattern[][]として回転後のパターンwedgePattern[][]を導出する。
 ウェッジレットパターン生成部145T4Bの備える回転パターン生成部1465Bについて説明する。既に説明した回転パターン生成部1465は90度、180度、270度の回転を備えていたが、本実施形態の回転パターン生成部1465Bは一つの回転方向(具体的には90度もしくは270度)のみを備える。
 本実施形態の回転パターン生成部1465Bは、以下の処理で示す90度回転処理を行う。これは、既に処理ROT90で説明した通り、回転パターン生成部1465で説明した処理ROTにcInc = 0、sInc = 1を設定した場合に相当する。ここでは、参照パターンから回転パターンwedgePattern[ x ][ y ]を導出する際に、反転を行わない式R1の場合を説明するが、条件に応じて参照パターンrefPattern [ i ][ j ]を反転する式R2、式R2´、や、常に参照パターンを反転する式R3を用いても良い。
(処理ROT90)
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
      i = y
      j = patternSize - 1- x
      wedgePattern[ x ][ y ] = refPattern [ i ][ j ]    式R1
    }
 なお、参照パターンrefPattern= wedgePatternTable[log2BlkSize][pos]であるから、ウェッジパターンテーブルに含まれる参照パターンrefPatternの参照処理と回転処理を同時に表現すると以下となる。ここでは、参照パターンrefPattern [ i ][ j ]から回転パターンwedgePattern[ x ][ y ]を導出する際に、常に参照パターンrefPattern [ i ][ j ](ここでi=y, j= patternSize - 1- x)を反転する式R3(式R3´)を用いる例を示す。
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ )  {
   WedgePattern [ x ][ y ] = 1 - WedgePatternTable[ log2BlkSize ][ pos ][ y][ patternSize - 1 - x ]   式R3´
}
 なお、参照するパターンを常に反転する式R3(式R3´)の代わりに反転しない式R1、条件に応じて反転する式R2、式R2´を用いても良い。式R2´を用いる場合、cInc = 0、sInc = 1において、iOffset = 0、jOffset = patternSize - 1であるから、式R2´にこのiOffset, jOffsetを代入して得られる以下の式R2B´を用いる。
    wedgePattern[ x ][ y ] = refPattern [ 0 ][ patternSize - 1 ] == 0 ? refPattern [ i ][ j ] : 1 -refPattern [ i ][ j ]    式R2B´
 なお、上記処理の代わりに回転パターン生成部1465Bは、既に処理ROT270で説明した通り、以下の処理で示す270度回転処理を行っても良い(回転パターン生成部1465C)。これは回転パターン生成部1465で説明した処理ROTにcInc = 0、sInc = -1を設定した場合に相当する。
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ ) {
      i = patternSize - 1 - y
      j = x
      wedgePattern[ x ][ y ] = -refPattern [ i ][ j ]    式R3
    }
 なお、式R3の代わりに既に説明した式R1、式R2、式R2´を用いても良い。式R2´の場合には、cInc = 0、sInc = -1では、iOffset = patternSize - 1、jOffset = 0であるから、式R2´にこのiOffset, jOffsetを代入して得られる以下のは式R2C´を用いる。
    wedgePattern[ x ][ y ] = refPattern [ patternSize - 1 ][ 0 ] == 0 ? refPattern [ i ][ j ] : 1 -refPattern [ i ][ j ]    式R2C´
なお、参照するパターンを常に反転する式R3を用いる場合の270度回転の処理は以下となる。
  for( y = 0; y < patternSize; y++ )
    for( x = 0; x < patternSize; x++ ) {
   WedgePattern [ x ][ y ] = 1 - WedgePatternTable[ log2BlkSize ][ pos ][ patternSize - 1 - y][ x ]  式R3(式R3´´)
  }
 本実施形態のウェッジレットパターン生成部145T4Bは、全てのウェッジレットパターンを線分描画部1462、領域フィル部1463を用いた線分描画処理、領域フィル処理により生成するのではなく、一部のウェッジレットパターンは回転パターン生成部1565Bを用いた回転処理により生成する。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。さらに、回転パターン生成部1565Bは単一角度の回転(ここでは90度もしくは270度)のみの処理であるため、必要となる回転処理が容易であるという効果を奏する。
 〔動画像符号化装置〕
 以下において、本実施形態に係る動画像符号化装置2について、図29を参照して説明する。
  (動画像符号化装置の概要)
 動画像符号化装置2は、概略的に言えば、入力画像#10を符号化することによって符号化データ#1を生成し、出力する装置である。ここで、入力画像#10は、1又は複数の視点画像TexturePic、及び視点画像TexturePicに対応する同時刻のデプスマップDepthPicからなるレイヤ画像である。
  (動画像符号化装置の構成)
 まず、図29を用いて、動画像符号化装置2の構成例について説明する。図29は、動画像符号化装置2の構成について示す機能ブロック図である。図29に示すように、動画像符号化装置2は、符号化設定部21、逆量子化・逆変換部22、予測画像生成部23、加算器24、フレームメモリ25、減算器26、変換・量子化部27、および符号化データ生成部29を備えている。
 符号化設定部21は、入力画像#10に基づいて、符号化に関する画像データおよび各種の設定情報を生成する。
 具体的には、符号化設定部21は、次の画像データおよび設定情報を生成する。
 まず、符号化設定部21は、入力画像#10を、スライス単位、ツリーブロック単位、CU単位に順次分割することにより、対象CUについてのCU画像#100を生成する。
 また、符号化設定部21は、分割処理の結果に基づいて、ヘッダ情報H’を生成する。ヘッダ情報H’は、(1)対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報、並びに、(2)各ツリーブロックに属するCUのサイズ、形状および対象ツリーブロック内での位置についてのCU情報CU’を含んでいる。
 さらに、符号化設定部21は、CU画像#100、および、CU情報CU’を参照して、PT設定情報PTI’を生成する。PT設定情報PTI’には、(1)対象CUの各PUへの可能な分割パターン、および、(2)各PUに割り付ける可能な予測モード、の全ての組み合わせに関する情報が含まれる。
 符号化設定部21は、CU画像#100を減算器26に供給する。また、符号化設定部21は、ヘッダ情報H’を符号化データ生成部29に供給する。また、符号化設定部21は、PT設定情報PTI’を予測画像生成部23に供給する。
 逆量子化・逆変換部22は、変換・量子化部27より供給される、ブロック毎の量子化予測残差を、逆量子化、および、逆直交変換することによって、ブロック毎の予測残差を復元する。逆直交変換については、図3に示す逆量子化・逆変換部13について、既に説明したとおりであるので、ここではその説明を省略する。
 また、逆量子化・逆変換部22は、ブロック毎の予測残差を、TT分割情報(後述)により指定される分割パターンに従って統合し、対象CUについての予測残差Dを生成する。逆量子化・逆変換部22は、生成した対象CUについての予測残差Dを、加算器24に供給する。
 予測画像生成部23は、フレームメモリ25に記録されている局所復号画像P’、および、PT設定情報PTI’を参照して、対象CUについての予測画像Predを生成する。予測画像生成部23は、予測画像生成処理により得られた予測パラメータを、PT設定情報PTI’に設定し、設定後のPT設定情報PTI’を符号化データ生成部29に転送する。なお、予測画像生成部23による予測画像生成処理は、動画像復号装置1の備える予測画像生成部14と同様であるので、ここでは説明を省略する。すなわち、予測画像生成部14は、ウェッジパターン導出部145T2、及びDC予測値導出部145T3から構成されるDMM予測部145Tを備える。DMM予測部145Tは、ウェッジレットパターン生成部145T4を備える。ウェッジレットパターン生成部145T4は、基本パターン生成部1461、パターン格納部1464、回転パターン生成部1565から構成され、基本パターン生成部1461は、線分描画部1462、領域フィル部1463から構成される。ウェッジレットパターン生成部145T4の代わりに既に説明したウェッジレットパターン生成部145T4´、ウェッジレットパターン生成部145T4´を用いても良い。また、ウェッジレットパターン生成部145T4の代わりに既に説明した回転パターン生成部1465Bを備えるウェッジレットパターン生成部145T4Bを用いても良い。
 加算器24は、予測画像生成部23より供給される予測画像Predと、逆量子化・逆変換部22より供給される予測残差Dとを加算することによって、対象CUについての復号画像Pを生成する。
 フレームメモリ25には、復号された復号画像Pが順次記録される。フレームメモリ25には、対象ツリーブロックを復号する時点において、当該対象ツリーブロックよりも先に復号された全てのツリーブロック(例えば、ラスタスキャン順で先行する全てのツリーブロック)に対応する復号画像が記録されている。
 減算器26は、CU画像#100から予測画像Predを減算することによって、対象CUについての予測残差Dを生成する。減算器26は、生成した予測残差Dを、変換・量子化部27に供給する。
 変換・量子化部27は、予測残差Dに対して、直交変換および量子化を行うことで量子化予測残差を生成する。なお、ここで直交変換とは、画素領域から周波数領域への変換のことをさす。また、逆直交変換の例としては、DCT変換(Discrete Cosine Transform)、およびDST変換(Discrete Sine Transform)等が挙げられる。
 具体的には、変換・量子化部27は、CU画像#100、および、CU情報CU’を参照し、対象CUの1または複数のブロックへの分割パターンを決定する。また、決定された分割パターンに従って、予測残差Dを、各ブロックについての予測残差に分割する。
 また、変換・量子化部27は、各ブロックについての予測残差を直交変換することによって周波数領域における予測残差を生成した後、当該周波数領域における予測残差を量子化することによってブロック毎の量子化予測残差を生成する。なお、変換部・量子化部27は、SDCフラグが1の場合、周波数変換・量子化を省略し、対象TUの画素毎の予測残差D(又はresSamples[x][y])を0とする。
 また、変換・量子化部27は、生成したブロック毎の量子化予測残差と、対象CUの分割パターンを指定するTT分割情報と、対象CUの各ブロックへの可能な全分割パターンに関する情報とを含むTT設定情報TTI’を生成する。変換・量子化部27は、生成したTT設定情報TTI’を逆量子化・逆変換部22および符号化データ生成部29に供給する。
 符号化データ生成部29は、ヘッダ情報H’、TT設定情報TTI’、およびPT設定情報PTI’を符号化し、符号化したヘッダ情報H、TT設定情報TTI、およびPT設定情報PTIを多重化して符号化データ#1を生成し、出力する。
 (作用・効果)
 以上説明した本実施形態に係る動画像符号化装置2の備えるウェッジレットパターン生成部145T4は、全てのウェッジレットパターンを線分描画部1462、領域フィル部1463を用いた線分描画処理、領域フィル処理により生成するのではなく、一部のウェッジレットパターンは回転パターン生成部1565を用いた回転処理により生成する。処理量の大きい線分描画処理、領域フィル処理を、処理量の少ない回転処理に置き替えることができるため、処理を低減する効果を奏する。
 以上説明した本実施形態に係る動画像符号化装置2の備える線分描画部1462は、ウェッジレットパターンサイズpatternSizeを、refShiftだけ左シフトして得られるサイズpatternSize<< refShiftの拡大ブロック上の始点(xS、yS)と終点(xE、yE)から得られる線分座標(xPos, yPos)を、refShiftだけ右シフトして得られる座標(xPos>> refShift, yPos>> refShift)に1を設定することにより、線分描画処理に用いるメモリサイズを増大させることを防ぐ効果を奏する。
 以上説明した本実施形態に係る動画像符号化装置2の備えるウェッジレットパターン生成部145T4´は、線分描画部1462および回転パターン生成部1465´は、さらに、回転とともに反転を用いることにより、ウェッジレットパターンの左上が常に1(もしくは常に0)であるパターンを容易に生成することができる(式R2の場合)、もしくはウェッジレットパターンの左上が多くの場合に1(もしくは常に0)であるパターンを容易に生成することができる(式R3の場合)、という効果を奏する。
 以上説明した本実施形態に係る動画像符号化装置2の備える領域フィル部1463は、パターンが1である画素を探索し、パターンが1である画素があれば継続する画素を1に設定する。これにより、導出するウェッジレットパターン毎に異なる領域フィル処理を用いることなく、一つの領域フィル処理を共通で用いることができるという効果を奏する。
 以上説明した本実施形態に係る動画像符号化装置2の備えるウェッジレットパターン生成部145T4´´のパターン格納部1464´´は、基本パターンについてのみ、一致判定を行い、回転パターンについては、一致判定を行わずに格納するため処理量が少ないという効果を奏する。
 以上説明した本実施形態に係る動画像符号化装置2の備えるウェッジレットパターン生成部145T4Bは、基本パターンについてのみ、一致判定を行い、回転パターンについては、一致判定を行わずに格納するため処理量が少ないという効果を奏する。
 なお、上述した実施形態における動画像復号装置1、動画像符号化装置2の一部をコンピュータで実現するようにしても良い。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、動画像復号装置1、動画像符号化装置2のいずれかに内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
 また、上述した実施形態における動画像復号装置1、動画像符号化装置2の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。動画像復号装置1、動画像符号化装置2の各機能ブロックは個別にプロセッサ化しても良いし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
 [付記事項]
 本発明の1つの形態は、ウェッジレットパターン生成手段によって導出されたウェッジパターンと、前記ウェッジパターンで分割される領域毎の予測値を導出するDC予測値導出手段を備えるDMM予測装置において、前記ウェッジレットパターン生成手段は、基本パターンを生成する基本パターン生成部と、回転パターンを導出する回転パターン生成部を備えることを特徴とする。
 本発明の1つの形態は、前記基本パターン生成部は、線分描画部と領域フィル部から構成されることを特徴とする。
 本発明の1つの形態は、前記回転パターン生成部は、入力された参照ウェッジレットパターンから対象ウェッジレットパターンを生成し、座標(x, y)上の対象ウェッジレットパターンの値を、(x, y)を回転行列で座標変換して得られる座標(i, j)上の参照ウェッジレットパターンの値を用いて導出することを特徴とする。
 本発明の1つの形態は、前記回転パターン生成部は、前記対象ウェッジレットパターンの値として、前記参照ウェッジレットパターンの座標(i, j)の値を反転させた値を用いることを特徴とする。
 本発明の1つの形態は、前記基本パターン生成部で生成される第1基本パターン、第2基本パターンと、前記回転パターン生成部により、第1基本パターンから生成される第1基本パターン第1回転パターン、第1基本パターン第2回転パターン、第1基本パターン第3回転パターンと、前記回転パターン生成部により、第2基本パターンから生成される第2基本パターン第1回転パターンからウェッジレットパターンを生成することを特徴とする。
 本発明の1つの形態は、前記回転パターン生成部は、基本パターン設定部で設定される開始点と終了点の間のウェッジレットパターンを入力として、回転パターンを導出することを特徴とする。
 本発明の1つの形態は、前記線分描画部は、ウェッジレットパターンサイズpatternSizeを、refShiftだけ左シフトして得られるサイズpatternSize<< refShiftの仮想ブロック上の座標(xPos, yPos)を、refShiftだけ右シフトして得られる座標(xPos>> refShift, yPos>> refShift)に1を設定することを特徴とする。
 本発明の1つの形態は、前記領域フィル部は、パターンが1である画素を探索し、パターンが1である画素があれば継続する画素を1に設定することを特徴とする。
 本発明の1つの形態は、前記基本パターンについてのみ、一致判定を行い、前記回転パターンについては、一致判定を行わずに格納するパターン格納部をさらに備えることを特徴とする。
 本発明の1つの形態は、前記基本パターン生成部により第1基本パターン、第2基本パターンを生成し、前記回転パターン生成部により、第1回転パターン、第2回転パターン、第3回転パターン、第4回転パターンの回転パターンを生成し、さらに、前記回転パターン生成部は直前に生成したパターンに基づいて、回転パターンを生成することを特徴とする。
 本発明の1つの形態は、前記DMM予測装置は、あるグループのパターンを生成する前のパターン数をスタート開始位置posStart、回転パターンを生成する前のパターン数-1を終了位置posEndとし、開始位置から終了位置にある各位置posのパターンを参照して、前記回転パターン生成部により回転させることにより回転パターンを生成することを特徴とする。
 本発明の1つの形態は、前記回転パターン生成部は、90度回転を用いることを特徴とする。
 本発明の1つの形態は、前記回転パターン生成部の90度回転は、(x, y)を座標変換した位置(x+y, wBlkSize - 1 - x + y)の参照パターンrefPatternの値refPattern[x+y][wBlkSize - 1 - x + y]を参照して、(x, y)の位置の回転パターンの値Pattern[x][y]を導出することを特徴とする。
 本発明の1つの形態は、前記回転パターン生成部は、270度回転を用いることを特徴とする。
 本発明の画像復号装置の1つの形態は、上述したDMM予測装置を備える。
 本発明の画像符号化装置の1つの形態は、上述したDMM予測装置を備える。
 以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
 本発明は、画像データが符号化された符号化データを復号する画像復号装置、および、画像データが符号化された符号化データを生成する画像符号化装置に好適に適用することができる。また、画像符号化装置によって生成され、画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
1     動画像復号装置(画像復号装置)
11    可変長復号部
111   DCオフセット情報復号部
13    逆量子化・逆変換部
14    予測画像生成部
141   予測単位設定部
142   参照画素設定部
143   スイッチ
144   参照画素フィルタ部
145   予測画像導出部
145D  DC予測部
145P  Planar予測部
145A  Angular予測部
145T  DMM予測部(DMM予測装置)
145T2 ウェッジパターン導出部
145T3 DC予測値導出部
145T4、145T4B ウェッジレットパターン生成部
145T5 ウェッジパターンテーブル(バッファ)
1461  基本パターン生成部
1462  線分描画部
1463  領域フィル部
1464、1464´、1464´´  パターン格納部
1465、1465´、1465´´、1465B  回転パターン生成部
15    加算器
16    フレームメモリ
2     動画像符号化装置(画像符号化装置)
21    符号化設定部
22    逆量子化・逆変換部
23    予測画像生成部
24    加算器
25    フレームメモリ
26    減算器
27    変換・量子化部
29    符号化データ生成部

Claims (10)

  1.  画像を復号する画像復号装置であって、
     ウェッジパターンを生成するウェッジパターン生成部と、
     前記ウェッジパターンを回転させることで回転パターンを導出する回転パターン生成部と、
     前記回転パターンをウェッジパターンテーブルへ追加するパターン格納部と、
     前記ウェッジパターンテーブルに含まれる前記ウェッジパターンで分割される領域毎の予測値を導出するDC予測値導出部と、を備えることを特徴とする画像復号装置。
  2.  前記ウェッジパターン生成部は、線分描画部と領域フィル部を含むことを特徴とする請求項1に記載の画像復号装置。
  3.  前記回転パターン生成部は、入力された参照ウェッジパターンから対象ウェッジパターンを生成し、座標(x, y)上の対象ウェッジパターンの値を、(x, y)を回転行列で座標変換して得られる座標(i, j)上の参照ウェッジパターンの値を用いて導出することを特徴とする請求項1に記載の画像復号装置。
  4.  前記回転パターン生成部は、前記対象ウェッジパターンの値として、前記参照ウェッジパターンの座標(i, j)の値を反転させた値を用いることを特徴とする請求項3に記載の画像復号装置。
  5.  前記線分描画部は、ウェッジパターンサイズがpatternSize、シフト変数がrefShiftである場合において、上記ウェッジパターンサイズpatternSizeを上記シフト変数refShiftだけ左シフトして得られるサイズpatternSize<< refShiftの拡大ブロック上に始点(xS、yS)と終点(xE、yE)を設定し、始点と終点から得られる座標(xPos, yPos)を、上記シフト変数refShiftだけ右シフトして得られる座標(xPos>> refShift, yPos>> refShift)のウェッジパターンの値に1を設定することを特徴とする請求項2に記載の画像復号装置。
  6.  前記回転パターン生成部は、直前に生成したパターンに基づいて、回転パターンを生成することを特徴とする請求項1に記載の画像復号装置。
  7.  前記回転パターン生成部は、あるグループのパターンを生成する前のパターン数をスタート開始位置posStart、回転パターンを生成する前のパターン数-1を終了位置posEndとし、開始位置から終了位置にある各位置posのパターンを参照して、回転させることにより回転パターンを生成することを特徴とする請求項6に記載の画像復号装置。
  8.  前記回転パターン生成部は、90度回転を用いることを特徴とする請求項6または7に記載の画像復号装置。
  9.  前記回転パターン生成部は、(x, y)を座標変換した位置(y, wBlkSize - 1- x)の参照パターンrefPatternの値refPattern[y][wBlkSize - 1 - x]を参照して、(x, y)の位置の回転パターンの値Pattern[x][y]を導出することを特徴とする請求項8に記載の画像復号装置。
  10.  前記回転パターン生成部は、270度回転を用いることを特徴とする請求項6または7に記載の画像復号装置。
     
PCT/JP2015/078347 2014-10-08 2015-10-06 画像復号装置 WO2016056550A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/517,429 US10244256B2 (en) 2014-10-08 2015-10-06 Image decoding device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2014-206955 2014-10-08
JP2014206955 2014-10-08
JP2015-015036 2015-01-29
JP2015015036A JP2017216487A (ja) 2014-10-08 2015-01-29 Dmm予測装置、画像復号装置、および画像符号化装置

Publications (1)

Publication Number Publication Date
WO2016056550A1 true WO2016056550A1 (ja) 2016-04-14

Family

ID=55653161

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078347 WO2016056550A1 (ja) 2014-10-08 2015-10-06 画像復号装置

Country Status (2)

Country Link
US (1) US10244256B2 (ja)
WO (1) WO2016056550A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3046321B1 (fr) * 2015-12-29 2018-01-26 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associes
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding
US10382767B2 (en) * 2017-07-21 2019-08-13 Google Llc Video coding using frame rotation
WO2020171647A1 (ko) * 2019-02-21 2020-08-27 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측을 사용하는 영상 디코딩 방법 및 그 장치
WO2020182167A1 (en) * 2019-03-12 2020-09-17 Zhejiang Dahua Technology Co., Ltd. Systems and methods for image coding
WO2020197225A1 (ko) * 2019-03-24 2020-10-01 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측을 위한 후보 리스트 구성
EP4070552A1 (en) * 2019-12-05 2022-10-12 InterDigital VC Holdings France, SAS Intra sub partitions for video encoding and decoding combined with multiple transform selection, matrix weighted intra prediction or multi-reference-line intra prediction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999055007A1 (en) * 1998-04-17 1999-10-28 Ultraclean Technology Research Institute, Co., Ltd. Method and apparatus for making code book, vector quantizing device, device and method for data compression, device and method for data decompression, system for data compression/decompression
WO2014005248A1 (en) * 2012-07-02 2014-01-09 Qualcomm Incorporated Intra-coding of depth maps for 3d video coding
WO2014114168A1 (en) * 2013-01-28 2014-07-31 Lg Electronics (China) R&D Center Co., Ltd. Depth modeling mode coding and decoding method and video codec

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4161078A1 (en) * 2011-11-11 2023-04-05 GE Video Compression, LLC Effective wedgelet partition coding using spatial prediction
US9756359B2 (en) * 2013-12-16 2017-09-05 Qualcomm Incorporated Large blocks and depth modeling modes (DMM'S) in 3D video coding
WO2015135169A1 (en) * 2014-03-13 2015-09-17 Qualcomm Incorporated Constrained depth intra mode coding for 3d video coding
WO2015194915A1 (ko) * 2014-06-20 2015-12-23 삼성전자 주식회사 인터 레이어 비디오 부복호화를 위한 깊이 영상의 예측 모드 전송 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999055007A1 (en) * 1998-04-17 1999-10-28 Ultraclean Technology Research Institute, Co., Ltd. Method and apparatus for making code book, vector quantizing device, device and method for data compression, device and method for data decompression, system for data compression/decompression
WO2014005248A1 (en) * 2012-07-02 2014-01-09 Qualcomm Incorporated Intra-coding of depth maps for 3d video coding
WO2014114168A1 (en) * 2013-01-28 2014-07-31 Lg Electronics (China) R&D Center Co., Ltd. Depth modeling mode coding and decoding method and video codec

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
GERHARD TECH ET AL.: "3D-HEVC Draft Text 5", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSIONSOF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCT3V-I1001-V3, 9TH MEETING, August 2014 (2014-08-01), Sapporo, JP, pages i - iv, 36-41 *
TAKESHI TSUKUBA ET AL.: "Lookup table size reduction in DMM1", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSIONS OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCT3V- I0110, 9TH MEETING, June 2014 (2014-06-01), Sapporo, JP, pages 1 - 9 *
TOMOHIRO IKAI ET AL.: "Combination of JCT3V- J0025 and JCT3V-J0035 for DMM", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSIONS OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCT3V-J0112, 10TH MEETING, October 2014 (2014-10-01), Strasbourg, FR, pages 1 - 11 *
TOMOHIRO IKAI ET AL.: "Simplification of DMM table derivation", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSIONS OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCT3V-J0025_R1, 10TH MEETING, October 2014 (2014-10-01), Strasbourg, FR, pages 1 - 8 *
WEIRAN LI ET AL.: "CE5.h related: Simplification on DMM1 pattern generation mechanism", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSIONS OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, JCT3V-E0225R1, 5TH MEETING, July 2013 (2013-07-01), Vienna, AT, pages 1 - 8 *

Also Published As

Publication number Publication date
US20170302961A1 (en) 2017-10-19
US10244256B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
WO2016056550A1 (ja) 画像復号装置
JP5389172B2 (ja) 深度画像を再構成する方法および深度画像を再構成する復号器
JP6225241B2 (ja) 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法
ES2736280T3 (es) Simplificaciones en la obtención de vectores de disparidad y la predicción de vectores de movimiento en codificación de vídeo 3D
CN100512431C (zh) 用于编码和解码立体视频的方法和装置
TWI583179B (zh) 用於視訊編碼之方法、編碼器及電腦可讀記憶體
KR20190053256A (ko) 영상 데이터 부호화/복호화 방법 및 장치
US20080205791A1 (en) Methods and systems for use in 3d video generation, storage and compression
JP6706357B2 (ja) 少なくとも1つの第2の画像成分の参照ブロックに対して第1の画像成分の現在ブロックを符号化するための方法、符号化装置および対応するコンピュータプログラム
JP6282646B2 (ja) 現在ブロックの分割を予測することによるビデオ符号化方法、復号化方法、対応する符号化及び復号化装置、並びにコンピュータプログラム
WO2015199040A1 (ja) Dmm予測部、画像復号装置、および画像符号化装置
JP2013229674A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム、及び画像復号プログラム
KR20190052129A (ko) 영상 데이터 부호화/복호화 방법 및 장치
EP3373584B1 (en) Content adaptive and art directable scalable video coding
US9686558B2 (en) Scalable encoding and decoding
Sanchez et al. Performance analysis of depth intra-coding in 3D-HEVC
JP6209026B2 (ja) 画像符号化装置及びその制御方法
JPWO2015083742A1 (ja) 映像符号化装置及び方法、映像復号装置及び方法、及び、それらのプログラム
KR101750421B1 (ko) 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치, 동화상 부호화 프로그램, 및 동화상 복호 프로그램
JP2017216487A (ja) Dmm予測装置、画像復号装置、および画像符号化装置
CN114787921A (zh) 用于假设参考解码器和用于输出层集的视频数据流、视频编码器、装置和方法
JPWO2015190078A1 (ja) 映像符号化装置、映像符号化方法および映像符号化プログラム
JP6184558B2 (ja) 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム
JP2022549451A (ja) 復号装置、符号化装置、および方法
BR112020011762A2 (pt) métodos e dispositivos para codificação e decodificação de uma sequência multivisualizações do vídeo representativa de um vídeo onidirecional

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: 15849509

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15517429

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15849509

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP