[TECHNICAL FIELD]
[0001] The present invention relates to a picture coding and decoding technology, and more
particularly, to a technology for entropy coding and decoding of a residual signal.
[BACKGROUND ART]
[0002] In MPEG-4 AVC that is an international standard of moving picture coding, as an entropy
coding system, context switching-type arithmetic coding called CABAC is employed.
CABAC includes a plurality of variables called a context that stores the occurrence
probability of information to be coded. An optimal context is selected from among
neighboring coding information and is used for coding. In addition, since the occurrence
probability is updated according to a coding process also in each context, the occurrence
probability of coding information can be estimated with high accuracy, whereby efficient
coding can be performed.
[CITATION LIST]
[PATENT LITERATURE]
[DISCLOSURE OF THE INVENTION]
[0004] In the MPEG-4 AVC, in addition to the estimation of the occurrence probability of
information according to switching a context based on the neighboring decoded information,
the occurrence probability according to a decoding result is learned. The occurrence
probability of information to be decoded can be optimized for each context, and accordingly,
the improvement of the coding efficiency is realized. However, for all the significant
differential coefficient information within the block to be processed, it is necessary
to sequentially process the calculation of context indexes and decoding of the significant
differential coefficient information, and a calculation time is required.
[0005] In Patent Literature 1, a technique for decreasing a processing delay relating to
decoding is disclosed by arranging a context for a syntax element having a high occurrence
frequency on a memory having a small access delay time. However, the technique disclosed
in Patent Literature 1, does not resolve the dependency between the calculation of
the context index and the decoding of a syntax element, and these processes cannot
be performed in a parallel manner and is not an essential solution for a processing
delay.
[0006] The present invention is contrived in consideration of such a situation, and an object
thereof is to provide a picture coding technology, in the differential coefficient
coding/decoding, realizing a context index calculation method having a small calculation
amount by enabling a parallel process, having a simple configuration, and being appropriate
for real-time processing. In addition, another object thereof is to provide a picture
coding and decoding technology having high coding efficiency by realizing the calculation
of a context index referring to neighboring differential coefficient that are appropriate
in terms of correlation.
[0007] In order to solve the problem, a picture coding device according to one aspect of
the present invention is one that partitions differential information between a picture
that is a coding target and a picture that is a prediction target into a plurality
of sub blocks and codes the partitioned sub blocks in a predetermined sequence, and
the picture coding device includes : a significant sub block information encoder (708,
701) that codes significant sub block information that represents whether or not all
the values of differential coefficients belonging to the sub block are zero; a significant
differential coefficient information encoder (706, 701) that codes significant differential
coefficient information that represents whether or not the value of the differential
coefficient is zero; a differential coefficient value encoder (707, 701) that codes
the value of the differential coefficient; and a context deriver (703) that derives
an index based on the significant sub block information of a coded sub block that
is neighboring to the sub block that is a coding target in the horizontal direction
and the significant sub block information of a coded sub block that is neighboring
in the vertical direction and derives a context used for coding the significant differential
coefficient information of the differential coefficient that is a coding target based
on the index and the position of the differential coefficient that is the coding target
in the sub block that is the coding target.
[0008] According to another aspect of the present invention, there is provided a picture
coding method. This method is a picture coding method in which differential information
between a picture that is a coding target and a picture that is a prediction target
is partitioned into a plurality of sub blocks, and the partitioned sub blocks are
coded in a predetermined sequence, the picture coding method including: coding significant
sub block information that represents whether or not all the values of differential
coefficients belonging to the sub block are zero; coding significant differential
coefficient information that represents whether or not the value of the differential
coefficient is zero; coding the value of the differential coefficient; and deriving
an index based on the significant sub block information of a coded sub block that
is neighboring to the sub block that is a coding target in the horizontal direction
and the significant sub block information of a coded sub block that is neighboring
in the vertical direction and deriving a context used for coding the significant differential
coefficient information of the differential coefficient that is a coding target based
on the index and the position of the differential coefficient that is the coding target
in the sub block that is the coding target.
[0009] According to a further another aspect of the present invention, there is provided
a transmission device. This device is a transmission device including: a packet processing
unit configured to obtain coding data by packetizing a bitstream that is coded by
using a picture coding method in which differential information between a picture
that is a coding target and a picture that is a prediction target is partitioned into
a plurality of sub blocks, and the partitioned sub blocks are coded in a predetermined
sequence; and a transmitter configured to transmit the packetized coding data. The
picture coding method includes: coding significant sub block information that represents
whether or not all the values of differential coefficients belonging to the sub block
are zero; coding significant differential coefficient information that represents
whether or not the value of the differential coefficient is zero; coding the value
of the differential coefficient; and deriving an index based on the significant sub
block information of a coded sub block that is neighboring to the sub block that is
a coding target in the horizontal direction and the significant sub block information
of a coded sub block that is neighboring in the vertical direction and deriving a
context used for coding the significant differential coefficient information of the
differential coefficient that is a coding target based on the index and the position
of the differential coefficient that is the coding target in the sub block that is
the coding target.
[0010] According to a further another aspect of the present invention, there is provided
a transmission method. This method is a transmission method including: obtaining coding
data by packetizing a bitstream that is coded by using a picture coding method in
which differential information between a picture that is a coding target and a picture
that is a prediction target is partitioned into a plurality of sub blocks, and the
partitioned sub blocks are coded in a predetermined sequence; and transmitting the
packetized coding data. The above-described picture coding method includes: coding
significant sub block information that represents whether or not all the values of
differential coefficients belonging to the sub block are zero; coding significant
differential coefficient information that represents whether or not the value of the
differential coefficient is zero; coding the value of the differential coefficient;
and deriving an index based on the significant sub block information of a coded sub
block that is neighboring to the sub block that is a coding target in the horizontal
direction and the significant sub block information of a coded sub block that is neighboring
in the vertical direction and deriving a context used for coding the significant differential
coefficient information of the differential coefficient that is a coding target based
on the index and the position of the differential coefficient that is the coding target
in the sub block that is the coding target.
[0011] According to an aspect of the present invention, there is provided a picture decoding
device that decodes a bitstream in which differential information between a picture
that is a decoding target and a picture that is a prediction target is partitioned
into a plurality of sub blocks, and the partitioned sub blocks are coded in a predetermined
sequence. The picture decoding device includes: a significant sub block information
decoder (1008, 1001) configured to decode significant sub block information that represents
whether or not all the values of differential coefficients belonging to the sub block
are zero; a significant differential coefficient information decoder (1006, 1001)
configured to decode significant differential coefficient information that represents
whether or not the value of the differential coefficient is zero; a differential coefficient
value decoder (1007, 1001) configured to decode the value of the differential coefficient;
and a context deriver (1003) configured to derive an index based on the significant
sub block information of a decoded sub block that is neighboring to the sub block
that is a decoding target in the horizontal direction and the significant sub block
information of a decoded sub block that is neighboring in the vertical direction and
derive a context used for decoding the significant differential coefficient information
of the differential coefficient that is a decoding target based on the index and the
position of the differential coefficient that is the decoding target in the sub block
that is the decoding target.
[0012] According to another aspect of the present invention, there is provided a picture
decoding method. This method is a picture decoding method decoding a bitstream in
which differential information between a picture that is a decoding target and a picture
that is a prediction target is partitioned into a plurality of sub blocks, and the
partitioned sub blocks are coded in a predetermined sequence. The picture decoding
method includes: decoding significant sub block information that represents whether
or not all the values of differential coefficients belonging to the sub block are
zero; decoding significant differential coefficient information that represents whether
or not the value of the differential coefficient is zero; decoding the value of the
differential coefficient; and deriving an index based on the significant sub block
information of a decoded sub block that is neighboring to the sub block that is a
decoding target in the horizontal direction and the significant sub block information
of a decoded sub block that is neighboring in the vertical direction and deriving
a context used for decoding the significant differential coefficient information of
the differential coefficient that is a decoding target based on the index and the
position of the differential coefficient that is the decoding target in the sub block
that is the decoding target.
[0013] According to further another aspect of the present invention, there is provided a
reception device. This device is a reception device that receives a bitstream in which
a moving picture is coded and decodes the received bitstream. The reception device
includes: a reception unit configured to receive coding data obtained by packetizing
a bitstream in which differential information between a picture that is a decoding
target and a picture that is a prediction target is partitioned into a plurality of
sub blocks, and the partitioned sub blocks are coded in a predetermined sequence;
a restoration unit configured to restore the bitstream by performing packet processing
of the received packetized coding data; a significant sub block information decoder
(1008, 1001) configured to decode significant sub block information that represents
whether or not all the values of differential coefficients belonging to the sub block
are zero from the restored bitstream; a significant differential coefficient information
decoder (1006, 1001) configured to decode significant differential coefficient information
that represents whether or not the value of the differential coefficient is zero from
the restored bitstream; a differential coefficient value decoder (1007, 1001) configured
to decode the value of the differential coefficient from the restored bitstream; and
a context deriver (1003) configured to derive an index based on the significant sub
block information of a decoded sub block that is neighboring to the sub block that
is a decoding target in the horizontal direction and the significant sub block information
of a decoded sub block that is neighboring in the vertical direction and derive a
context used for decoding the significant differential coefficient information of
the differential coefficient that is a decoding target based on the index and the
position of the differential coefficient that is the decoding target in the sub block
that is the decoding target.
[0014] According to further another aspect of the present invention, there is provided a
reception method. This method is a reception method receiving a bitstream in which
a moving picture is coded and decoding the received bitstream. The reception method
includes: receiving coding data obtained by packetizing a bitstream in which differential
information between a picture that is a decoding target and a picture that is a prediction
target is partitioned into a plurality of sub blocks, and the partitioned sub blocks
are coded in a predetermined sequence; restoring the bitstream by performing packet
processing of the received packetized coding data; decoding significant sub block
information that represents whether or not all the values of differential coefficients
belonging to the sub block are zero from the restored bitstream; decoding significant
differential coefficient information that represents whether or not the value of the
differential coefficient is zero from the restored bitstream; decoding the value of
the differential coefficient from the restored bitstream; and deriving an index based
on the significant sub block information of a decoded sub block that is neighboring
to the sub block that is a decoding target in the horizontal direction and the significant
sub block information of a decoded sub block that is neighboring in the vertical direction
and deriving a context used for decoding the significant differential coefficient
information of the differential coefficient that is a decoding target based on the
index and the position of the differential coefficient that is the decoding target
in the sub block that is the decoding target.
[0015] Furthermore, an arbitrary combination of the constituent elements described above
or a conversion of the representation of the present invention among a method, a device,
a system, a recording medium, a computer program, and the like is also valid as an
aspect of the present invention.
[0016] According to the present invention, coding of a differential signal that is appropriate
for real-time processing using a simple circuit configuration can be realized.
[BRIEF DESCRIPTION OF THE DRAWINGS]
[0017]
FIG. 1 is a flowchart that illustrates a conventional decoding sequence of differential
coefficients;
FIG. 2 is a flowchart that illustrates a conventional decoding sequence of sub block
differential coefficients;
FIG. 3 is a flowchart that illustrates a conventional decoding sequence of significant
differential coefficients;
FIG. 4 is a flowchart that illustrates a conventional decoding sequence of differential
coefficient values;
FIG. 5 is a block diagram that illustrates the configuration of a picture coding device,
which is used for executing a method for coding differential coefficients, according
to an embodiment;
FIG. 6 is a block diagram that illustrates the configuration of a picture decoding
device, which is used for executing a method for decoding differential coefficients,
according to an embodiment;
FIG. 7 is a diagram that illustrates the scanning sequence of sub block differential
coefficients;
FIG. 8 is a block diagram that illustrates the detailed configuration of the picture
decoding device, which is illustrated in FIG. 6, according to a first example;
FIG. 9 is a diagram that illustrates the definition of a neighboring differential
coefficient in the decoding sequence of significant differential coefficients illustrated
in FIG. 3;
FIG. 10 is a diagram that illustrates the definition of a neighboring differential
coefficient in the decoding sequence of significant differential coefficients illustrated
in FIG. 4;
FIG. 11 is a diagram that illustrates the definition of a context in the decoding
sequence of significant differential coefficients illustrated in FIG. 4;
FIG. 12 is a diagram that illustrates a sub block partition of the differential coefficients;
FIG. 13 is a flowchart that illustrates the decoding sequence of differential coefficient
values according to the first example;
FIG. 14 is a diagram that illustrates the size of a coding block;
FIG. 15 is a block diagram that illustrates the detailed configuration of the picture
coding device, which is illustrated in FIG. 5, according to the first example;
FIG. 16 is a flowchart that illustrates the coding sequence of differential coefficients
according to the first example;
FIG. 17 is a flowchart that illustrates the coding sequence of sub block differential
coefficients according to the first example;
FIG. 18 is a flowchart that illustrates the coding sequence of significant differential
coefficients according to the first example;
FIG. 19 is a flowchart that illustrates the coding sequence of differential coefficient
values according to the first example;
FIG. 20 is a diagram that illustrates the configuration in which a sub block position
is included in the calculation of the context of significant differential coefficient
information;
FIG. 21 is a flowchart that illustrates the coding sequence of significant differential
coefficients according to a second example;
FIG. 22 is a flowchart that illustrates the decoding sequence of significant differential
coefficients according to the second example;
FIG. 23 is a diagram that illustrates the definition of a context in the decoding
sequence of significant differential coefficients according to the second example;
FIG. 24 is a flowchart that illustrates the coding sequence of significant differential
coefficients according to a third example; and
FIG. 25 is a flowchart that illustrates the decoding sequence of significant differential
coefficients according to the third example.
[BEST MODE FOR CARRYING OUT THE INVENTION]
[0018] First, technologies that are the premise of embodiments of the present invention
will be described.
[0019] A technique of associating a plurality of contexts with each coding syntax and selecting
a context based on the correlation among syntax elements can optimize code allocation,
and thereby enabling efficient coding.
[0020] As an example of context switching entropy coding, the decoding sequence of a quantization
orthogonal transform coefficient of a differential signal that is coded into the size
of 16 × 16 will be described with reference to a flowchart illustrated in FIG. 1.
FIG. 12 illustrates a quantization orthogonal transform coefficient to be processed.
Hereinafter, the quantization orthogonal transform coefficient will be referred to
as a differential coefficient. In this sequence, a differential coefficient of 16
× 16 to be processed is partitioned into sub blocks 401 to 416 each having the size
of 4 × 4, and scanning in units of sub blocks is performed first.
[0021] A sub block to be processed is determined in accordance with the scanning sequence
to be described later (S101) . When the scanning of all the sub blocks is completed,
the decoding process of the differential coefficient ends. The scanning sequence of
sub blocks is denoted by reference numeral 902 illustrated in FIG. 7. The scanning
sequence of sub blocks is denoted by reference numeral 902 illustrated in FIG. 7.
In this sequence, scanning is started from a sub block disposed on the lower rightmost
side of the differential coefficient region, scanning according to a rule of the lower
right side to the upper left side and the upper right side to the upper left side
is performed, and the scanning is completed at a sub block disposed on the upper leftmost
side. Reference numeral 901 illustrated in FIG. 7 illustrates the scanning sequence
of sub blocks using arrows. In a case where the scanning sequence illustrated in FIG.
7 is applied, in all the sub blocks to be processed, the scanning of sub blocks spatially
positioned respectively on the right side and the lower side is in the completed state.
[0022] Referring back to the flowchart illustrated in FIG. 1, the decoding process of all
the differential coefficient values of the sub block to be processed is performed
(S102) . After the decoding of the sub block differential coefficient values is completed,
the process proceeds to step S101.
[0023] The decoding process of the sub block differential coefficient values will be described
in detail with reference to a flowchart illustrated in FIG. 2.
[0024] Significant sub block information is decoded (S201) . The significant sub block information
is a one-bit flag used for representing the presence of a differential coefficient
having a value other than "0" in a sub block to be processed. In a case where the
significant sub block information is "1", it represents that at least one differential
coefficient having a value other than "0" is present in a sub block to be processed.
On the other hand, in a case where the significant sub block information is "0", it
represents that all the differential coefficients of a sub block to be processed are
"0"s.
[0025] Subsequently, the value of the significant sub block information is determined (S202)
. When the significant sub block information has a value of "0", all the differential
coefficient values of the sub block to be processed are set to "0" (S209), and the
sub block differential coefficient value decoding process ends.
[0026] On the other hand, when the significant sub block information is "1", the decoding
process of all the significant differential coefficient information of the sub block
to be processed is performed (S203). The significant differential coefficient information
is a one-bit flag used for representing that a differential coefficient value of a
processing target position is not "0". In a case where the significant coefficient
information is "1", it represents that the differential coefficient value of the processing
target position is not "0". On the other hand, in a case where the significant coefficient
information is "0", it represents that the differential coefficient value of the processing
target position is "0". The decoding sequence of the significant differential coefficient
information of a sub block will be described later in detail. After the decoding of
all the significant differential coefficient information of the sub block is completed,
the process proceeds to the decoding of differential coefficient values that is performed
in step S204.
[0027] Subsequently, the decoding process of differential coefficient values is performed
(S204) . The decoding process of differential coefficient values will be described
later in detail. After the completion of the decoding process of differential coefficient
values, the process proceeds to step S101, and the scanning of the next sub block
is performed.
[Sequence of Decoding Process of Significant Differential Coefficient]
[0028] The sequence of decoding of the significant differential coefficient information
of the sub block that is performed in step S203 will be described with reference to
a flowchart illustrated in FIG. 3.
[0029] A sub block to be processed is determined in accordance with a predetermined scanning
sequence (S301). The scanning sequence of differential coefficients within the sub
block, similarly to the scanning sequence of the sub block in the differential coefficient
region, is assumed to follow the rule illustrated in FIG. 7.
[0030] A neighboring significant differential coefficient sum countCoeff that is the sum
of the numbers of decoded differential coefficients, which are neighboring to the
processing target differential coefficient position, having values other than "0"
is calculated (S302). FIG. 9 illustrates an example of the differential coefficient
position used for calculating the neighboring significant differential coefficient
sum countCoeff. Reference numeral 202 denotes neighboring differential coefficients
of a case where the processing target position is as denoted by reference numeral
201, and reference numeral 204 denotes neighboring differential coefficients of a
case where the processing target position is as denoted by reference numeral 203.
As illustrated in FIG. 9, five differential coefficients that are located respectively
on the right side and the lower side of the processing target differential coefficient
position and are neighboring to the processing target differential coefficient position
are set as neighboring differential coefficients. Since the scanning sequence of differential
coefficients follows the sequence illustrated in FIG. 7, the decoding of differential
coefficients that belong to the same sub block as that of the processing target differential
coefficient and are located respectively on the right side and the lower side of the
processing target differential coefficient position is completed. Similarly, the decoding
of the significant differential coefficients belonging to sub blocks located respectively
on the right side and the lower side of the sub block to which the processing target
position belongs is completed. The neighboring differential coefficient sum countCoeff
is a variable used for estimating the occurrence probability of the significant differential
coefficient. In accordance with the characteristics of a picture and the visual characteristics,
as the significant differential coefficient, "1" may be easily concentrated in the
low region, and "0" may be easily concentrated in the high region. Since the significant
differential coefficients have a spatial correlation, differential coefficients neighboring
to the processing target position are set as targets for the calculation of the neighboring
differential coefficient sum countCoeff. The neighboring differential coefficients
representing the outside of the differential coefficient region are excluded from
the calculation of the neighboring significant coefficient sum countCoeff.
[0031] Referring back to the flowchart illustrated in FIG. 3, it is determined whether the
neighboring significant coefficient sum countCoeff is "0" (S303). In a case where
the neighboring significant coefficient sum countCoeff is "0", a context index ctxIdx
used for decoding the significant differential coefficient information is set to "0"
(S304), and the significant differential coefficient information is decoded by using
a context that corresponds to the context index ctxIdx. Then, the significant differential
coefficient information is set to the differential coefficient value (S308).
[0032] In a case where the neighboring significant coefficient sum countCoeff is not "0",
it is determined whether the neighboring significant coefficient sum countCoeff is
smaller than or equal to "2" (S305). In a case where the neighboring significant coefficient
sum countCoeff is smaller than or equal to "2", the context index ctxIdx used for
decoding the significant differential coefficient information is set to "1" (S306),
and the significant differential coefficient information is decoded by using a context
that corresponds to the context index ctxIdx. Then, the significant differential coefficient
information is set to the differential coefficient value (S308).
[0033] In a case where the neighboring significant coefficient sum countCoeff is not smaller
than or equal to "2", in other words, in a case where the neighboring significant
coefficient sum countCoeff is larger than or equal to "3", the context index ctxIdx
used for decoding the significant differential coefficient information is set to "2"
(S307), and the significant differential coefficient information is decoded by using
a context that corresponds to the context index ctxIdx. Then, the significant differential
coefficient information is set to the differential coefficient value (S308).
[0034] A context is a variable used for storing the occurrence probability of information
to be decoded, and the assignment of a code word changes based on the occurrence probability
represented by the context. In the example described above, three contexts coding
the significant differential coefficient are defined, and the context decoding the
significant differential coefficient is determined based on the magnitude of the neighboring
significant differential coefficient sum. It is set in advance such that, for a context
corresponding to the context index ctxIdx = 0 at a time when the neighboring significant
coefficient sum countCoeff is "0", the occurrence probability of the significant coefficient
information that is "0" is high, and, for a context corresponding to the context index
ctxIdx = 2 at a time when the neighboring significant coefficient sum countCoeff is
larger than or equal to "3", the occurrence probability of the significant coefficient
information that is "1" is high. For information of which the occurrence probability
is high, the coding amount can be decreased, and accordingly, by increasing the estimation
accuracy of the occurrence probability, the coding efficiency can be improved.
[0035] In MPEG-4 AVC, by performing switching between contexts based on neighboring decoded
information, in addition to the estimation of the occurrence probability of information,
the occurrence probability according to a decoding result is learned. Thus, the occurrence
probability of information to be decoded for each context can be optimized, whereby
the improvement of the coding efficiency is realized.
[0036] Generally, in orthogonally transformed components of a picture, information may be
easily concentrated in the low region. In addition, since there is a low influence
of the degradation of a high region component on visual characteristics, frequently,
the high region component is roughly quantized for a practical use. Accordingly, the
significant coefficient information tends to be concentrated in the low region component.
The significant coefficient information has a high correlation with the neighboring
significant coefficient, and it is reasonable to perform switching among contexts
based on the number of pieces of the neighboring significant coefficient information
from the viewpoint of the coding efficiency.
[Differential Coefficient Value Decoding Process]
[0037] The decoding sequence of differential coefficient values of the sub block in step
S204 of the flowchart illustrated in FIG. 2 will be described with reference to a
flowchart illustrated in FIG. 13.
[0038] A sub block to be processed is determined in accordance with a predetermined scanning
sequence (S501). The scanning sequence of differential coefficients disposed within
a sub block, similarly to the scanning sequence of the significant differential coefficient
information, is assumed to follow the rule illustrated in FIG. 7. When the scanning
of all the differential coefficients of the sub block is completed, the decoding process
of differential coefficient values is completed, and the process proceeds to the sequence
(S101) of determining the next sub block.
[0039] Subsequently, it is determined whether or not the differential coefficient value
of the processing target differential coefficient position is "0" (S502) . In a case
where the differential coefficient value of the processing target differential coefficient
position is "0", the decoding of the differential coefficient value of the processing
target differential coefficient position is completed, and the process proceeds to
step S501.
[0040] In a case where the differential coefficient value of the processing target differential
coefficient position is "1", the absolute value of the differential coefficient of
the processing target differential coefficient position is decoded (S503). In a case
where this sequence is performed, it is determined that the differential coefficient
value is not "0", and, as a bitstream, a code word corresponding to a value derived
by decreasing one from the absolute value of the differential coefficient is coded.
Accordingly, as the absolute value of the differential coefficient, a value derived
by adding "1" to a value that is derived by performing entropy decoding of a code
word is set.
[0041] Subsequently, the sign of the differential coefficient of the processing target differential
coefficient position is decoded (S504) . A differential coefficient value is determined
based on the absolute value of the differential coefficient and the sign of the differential
coefficient.
[0042] In the decoding sequence of the significant differential coefficient information
described above, a differential coefficient 201 illustrated in FIG. 9, as is represented
in the scanning sequence denoted by reference numeral 902 illustrated in FIG. 7, is
scanned last in the sub block, and the scanning sequence thereof is 16 as is denoted
by reference numeral 902 illustrated in FIG. 7. In addition, among the neighboring
differential coefficients 202 of the differential coefficient 201, the scanning sequence
of a position neighboring to the lower side of the differential coefficient 201 is
15 and is scanned immediately before the differential coefficient 201. Since the context
index ctxIdx that is necessary for decoding the significant differential coefficient
information of the differential coefficient 201 is calculated based on the significant
differential coefficient sum of the differential coefficients 202, the context index
ctxIdx of the differential coefficient 201 cannot be determined until the decoding
of the significant differential coefficient information of the differential coefficient
202 is completed. This means that it is necessary to process the calculation of the
context index ctxIdx and the decoding of the significant differential coefficient
information in order for all the significant differential coefficient information
within the sub block, and a decrease in the time or the calculation amount through
parallel processing cannot be obtained. Meanwhile, the occupancy rate of the differential
coefficient in the bitstream is high, and the context index calculating process and
the decoding process of the significant differential coefficient information have
a long time and a large calculation amount occupied in the entire decoding process.
In other words, the decoding process of the significant coefficient information is
the most significant bottleneck in the real-time decoding process.
[0043] In Patent Literature 1, a technique for decreasing a processing delay relating to
a decoding process by arranging a context for a syntax element having a high occurrence
frequency in a memory having a short access delay time has been disclosed. However,
the technique disclosed in Patent Literature 1 does not solve the dependency between
the calculation of a context index and the decoding of a syntax element and cannot
perform the processes thereof in a parallel manner, whereby it cannot be an essential
solution for the processing delay.
[0044] Thus, an embodiment of the present invention provides a picture coding technology
that, in the coding/decoding of differential coefficients, eliminates the dependency
between the calculation of context indexes and the coding/decoding of the significant
differential coefficient information, realizes a context index calculating method
that can perform processes in a parallel manner and has a small amount of calculation,
and has a simple circuit configuration so as to be appropriate for real-time processing.
In addition, by realizing the calculation of context indexes performed with reference
to neighboring differential coefficients, which is appropriate in terms of the correlation,
a picture coding technology having high coding efficiency is provided. Hereinafter,
embodiments of the present invention will be described.
[0045] In description presented below, a "block to be processed" is a coding target block
in the case of a coding process performed by a picture coding device and is a decoding
target block in the case of a decoding process performed by a picture decoding device.
In addition, a "processed block" is a decoded block of which coding has been completed
in the case of a coding process performed by the picture coding device and is a block
of which decoding has been completed in the case of a decoding process performed by
the picture decoding device. Hereinafter, such a meaning will be used unless otherwise
noted.
[Coding Device]
[0046] A preferred picture coding device according to the present invention will be described
with reference to the drawings. FIG. 5 is a block diagram that illustrates the configuration
of the picture coding device according to an embodiment. The picture coding device
according to the embodiment includes: a subtractor 501; an orthogonal transformer/quantizer
502; an inverse quantizer/inverse transformer 503; an adder 504; a decoded picture
memory 505; a predictor 506; a differential information encoder 507; a prediction
information encoder 508; and a mode determiner 509.
[0047] The mode determiner 509 tentatively codes all the prediction candidates and determines
prediction information that is optimal to each block of the picture. As the prediction
information, a partitioned block size and a prediction mode representing an inter
prediction or an intra prediction. In addition, in a case where the prediction mode
is the inter prediction, motion information such as a motion vector and a reference
picture index is included in the prediction information. On the other hand, in a case
where the prediction mode is the intra prediction, an intra prediction mode is included
in the prediction information. The mode determiner 509 gives the determined prediction
information to the predictor 506 and the prediction information encoder 508.
[0048] The prediction information encoder 508 performs variable length coding of the input
prediction information and outputs a bitstream of the prediction information.
[0049] The predictor 506 generates a predicted picture using the input prediction information
and the decoded picture stored in the decoded picture memory 505 and gives the generated
predicted picture to the subtractor 501.
[0050] The subtractor 501 generates a differential picture by subtracting the predicted
picture from the original picture that is a coding target and gives the generated
differential signal to the orthogonal transformer/quantizer 502.
[0051] The orthogonal transformer/quantizer 502 generates differential coefficients by performing
an orthogonal transform and quantization of the differential picture and gives the
generated differential coefficients to the inverse quantizer/inverse transformer 503
and the differential information encoder 507.
[0052] The differential information encoder 507 performs entropy coding of the differential
coefficients and outputs a bitstream of the differential information.
[0053] The inverse quantizer/inverse transformer 503 generates a decoded differential signal
by performing the inverse quantization and the inverse orthogonal transform of the
differential coefficients received from the orthogonal transformer/quantizer 502 and
gives the generated decoded differential signal to the adder 504.
[0054] The adder 504 generates a decoded picture by adding the predicted picture and the
decoded differential signal and stores the generated decoded picture in the decoded
picture memory 505.
[Decoding Device]
[0055] A preferred picture decoding device according to the present invention will be described
with reference to the drawings . FIG. 6 is a block diagram that illustrates the configuration
of the picture decoding device according to an embodiment. The picture decoding device
according to the embodiment includes: a differential information decoder 801; an inverse
quantizer/inverse transformer 802; a prediction information decoder 803; an adder
804; a decoded picture memory 805; and a predictor 806.
[0056] The decoding process of the picture decoding device illustrated in FIG. 6 corresponds
to the decoding process arranged inside the picture coding device illustrated in FIG.
5. Accordingly, the configurations of the inverse quantizer/inverse transformer 802,
the adder 804, the decoded picture memory 805, and the predictor 806 illustrated in
FIG. 8 have functions respectively corresponding to the configurations of the inverse
quantizer/inverse transformer 503, the adder 504, the decoded picture memory 505,
and the predictor 506 of the picture coding device illustrated in FIG. 5.
[0057] The prediction information decoder 803 generates prediction information by performing
entropy decoding of an input prediction information bitstream and gives the generated
prediction information to the predictor 806.
[0058] The predictor 806 generates a predicted picture by using the input prediction information
and the decoded picture that is stored in the decoded picture memory 805 and gives
the generated predicted picture to the adder 804.
[0059] The differential information decoder 801 generates differential information by performing
entropy decoding of the differential information. Then, the differential information
decoder 801 gives the generated differential information to the inverse quantizer/inverse
transformer 802.
[0060] The inverse quantizer/inverse transformer 802 generates a decoded differential signal
by performing the inverse quantization and the inverse orthogonal transform of the
differential information received from the differential information decoder 801 and
gives the generated decoded differential signal to the adder 804.
[0061] The adder 804 generates a decoded picture by adding the predicted picture and the
decoded differential signal together, stores the generated decoded picture in the
decoded picture memory 805, and outputs the generated decoded picture.
[0062] The coding process and the decoding process of differential coefficients according
to an embodiment of the present invention are respectively performed by the differential
information encoder 507 of the motion picture coding device illustrated in FIG. 5
and the differential information decoder 801 of the motion picture decoding device
illustrated in FIG. 8. Hereinafter, the coding process and the decoding process of
the differential information according to an embodiment will be described in detail.
[Coding Block]
[0063] According to the embodiment, as illustrated in FIG. 14, the screen is hierarchically
partitioned into rectangular blocks, and the blocks are processed in order according
to a predetermined processing sequence. Each block that is partitioned will be referred
to as a coding block. A block 1817 illustrated in FIG. 14 is a maximum unit of the
partition according to the embodiment and will be referred to as a maximum coding
block. In addition, a block 1816 illustrated in FIG. 14 is a minimum unit of the partition
according to the embodiment and will be referred to as a minimum coding block. Hereinafter,
the minimum coding block will be described as a block of 4 × 4 pixels and the maximum
coding block will be described as a block of 16 × 16 pixels.
[Prediction Block]
[0064] Among the coding blocks, a unit in which the intra prediction is performed will be
referred to as a prediction block. The prediction block has several sizes as below
that are larger than or equal to that of the minimum coding block and are smaller
than or equal to that of the maximum coding block. In FIG. 14, blocks 1802, 1803,
and 1804 are 16 × 16 blocks, blocks 1805, 1810, 1811, and 1801 are 8 × 8 blocks, and
blocks 1806, 1807, 1808, and 1809 are 4 × 4 blocks. Blocks 1812, 1813, 1814, and 1815
are blocks that have not been processed, and the coding block sizes thereof are not
determined. In the coding sequence, an optimal prediction block size is determined,
and blocks of the prediction block size are coded. In the decoding sequence, the prediction
block size is derived from the bitstream. Hereinafter, the description will be presented
with the prediction block being assumed as the processing unit.
[Processing Unit of Differential Coefficient]
[0065] While the unit in which the quantization and the orthogonal transform are performed
is the same as the unit of the prediction block, in the coding process and the decoding
process, the scanning is performed with the differential coefficient region being
partitioned into a plurality of sub blocks. The size of the sub block is a size of
4 × 4. FIG. 12 illustrates a differential coefficient region of a size of 16 × 16.
Here, reference numerals 401 to 416 represent sub blocks. However, the unit in which
the quantization and the orthogonal transform are performed may be determined independently
from the unit of the prediction block.
(First Example)
[Coding Sequence]
[0066] A first example of the method of coding the differential information according to
an embodiment of the present invention will now be described. FIG. 15 is a block diagram
that illustrates the detailed configuration of the differential information encoder
507, which is illustrated in FIG. 5, according to the first example. The differential
information encoder 507 according to the first example includes: an arithmetic encoder
701; a differential coefficient buffer 702; a coding controller 703; a context memory
704; and a scan controller 705. In addition, the coding controller 703 includes: a
significant coefficient information coding controller 706; a differential coefficient
value coding controller 707; and a significant sub block information coding controller
708.
[0067] Hereinafter, the coding sequence of differential coefficients will be described with
reference to the flowcharts illustrated in FIGS. 16, 17, 18, and 19.
[0068] The scan controller 705 determines a sub block to be processed (S601). When the scanning
of all the sub blocks is completed, the decoding process of differential coefficients
ends. Reference numeral 902 represented in FIG. 7 illustrates the scanning sequence
of sub blocks. In this sequence, scanning is started from a sub block disposed on
the lower rightmost side of the differential coefficient region, scanning according
to a rule of the lower right side to the upper left side and the upper right side
to the upper left side is performed, and the scanning is completed at a sub block
disposed on the upper leftmost side. As described above, the context is updated in
accordance with the coding process. By taking this scanning sequence, a low region
component in which a differential coefficient can easily occur is scanned after a
high region component, and accordingly, there is an advantage in the process that
the estimated accuracy of the occurrence probability of a differential coefficient
of the low region component is improved. Reference numeral 901 illustrated in FIG.
7 is a diagram that illustrates the scanning sequence of sub blocks using arrows.
In a case where the scanning sequence illustrated in FIG. 7 is applied, the scanning
of sub blocks spatially positioned respectively on the right side and the lower side
of the sub block to be processed is in the completed state. The coding process of
the sub block to be processed is performed (S602).
[Coding Sequence of Sub Block (S602)]
[0069] The significant sub block information coding controller 708 derives a sub block to
be processed from the differential coefficient buffer 702. All the differential coefficients
of the sub block are scanned, and, in a case where all the differential coefficient
values are "0", the significant sub block information is set to "0". Otherwise (in
a case where there is at least one differential coefficient value other than "0"),
the significant sub block information is set to "1" (S701).
[0070] The significant sub block information coding controller 708 refers to differential
coefficients that are neighboring to the sub block to be processed and are included
in the sub block that has been decoded from the differential coefficient buffer 702
and determines a context index ctxIdx used for coding the significant sub block information.
Then, the significant sub block information coding controller 708 reads a context
that corresponds to the context index ctxIdx from the context memory 704. Then, the
significant sub block information and the context are transmitted to the arithmetic
encoder 701. Then, arithmetic encoder 701 codes the significant sub block information
using the context (S702).
[0071] The significant sub block information coding controller 708 determines the value
of the significant sub block information (S703). When the significant sub block information
is "0", the sub block differential coefficient value coding process ends, and the
process proceeds to step S601.
[0072] When the significant sub block information is "1", the coding process of all the
significant differential coefficient information of the sub block to be processed
is performed (S704). The coding sequence of the significant differential coefficient
information will be described later in detail. After the coding of all the significant
differential coefficient information of the sub block ends, the process proceeds to
the coding of differential coefficient values of step S704.
[0073] The differential coefficient value coding controller 707 performs the coding process
of all the differential coefficient values of the sub block to be processed (S705)
. The coding sequence of differential coefficient values of the sub block will be
described later in detail. After the coding of all the differential coefficient values
of the sub block is completed, the process proceeds to step S601.
[Sequence of Coding Process of Significant Differential Coefficient Information (S704)]
[0074] The significant coefficient information coding controller 706 calculates a sum of
differential coefficients, which have values other than "0", neighboring to the sub
block to be processed, in other words, a neighboring significant coefficient sum countCoeff
(S801). In this sequence, differential coefficients that belong to sub blocks spatially
disposed respectively on the right side and the lower side of the sub block to be
processed and are neighboring to the sub block to be processed are defined as neighboring
differential coefficients.
[0075] FIG. 10 illustrates the positions of the neighboring differential coefficients. Reference
numeral 301 represents a sub block to be processed, and reference numeral 302 represents
the neighboring differential coefficients. A neighboring differential coefficient
representing the outside of the differential coefficient region is excluded from the
calculation of the neighboring significant coefficient sum countCoeff. A differential
coefficient 303 that belongs to both sub blocks disposed on the right side and the
left side of the sub block to be processed may be configured to be included in the
neighboring differential coefficients or may be configured not to be included therein.
In the configuration in which the differential coefficient 303 is included in the
neighboring differential coefficients, the number of the neighboring differential
coefficients increases, and the occurrence probability of the significant differential
coefficient information can be estimated with high accuracy. On the other hand, in
the configuration in which the differential coefficient 303 is not included in the
neighboring differential coefficients, the amount of calculation and the circuit scale
can be decreased by reducing the adding process relating to the neighboring significant
coefficient sum countCoeff and reducing the boundary determining process of the differential
coefficient region.
[0076] The significant coefficient information coding controller 706 determines differential
coefficients that are the processing targets (S802). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of sub blocks
in the differential coefficient region, follows the rule represented in FIG. 7. When
the scanning of all the significant differential coefficients of the sub block is
completed, the coding process of the significant differential coefficients is completed,
and the process proceeds to the coding sequence (S704) of differential coefficient
values.
[0077] The significant coefficient information coding controller 706 determines whether
or not the neighboring significant coefficient sum countCoeff is "0" (S803).
[0078] In a case where the neighboring significant coefficient sum countCoeff is "0", the
processing target differential coefficient position within the sub block to be processed
is determined (S804). Here, it is represented such that a horizontal differential
coefficient position is posX, a vertical differential coefficient position is posY,
and the processing target differential coefficient position is pos = posX + posY.
In a case where pos <= 2, a context index ctxIdx used for coding the significant coefficient
information is set to "1" (S805). Otherwise (pos > 2), the context index ctxIdx is
set to "0" (S806) . The definition of the context index ctxIdx of a case where countCoeff
= 0 is denoted by reference numeral 601 in FIG. 11.
[0079] When the neighboring significant coefficient sum countCoeff is not "0", it is determined
whether or not the neighboring significant coefficient sum countCoeff is smaller than
or equal to "1" (S807). In a case where the neighboring significant coefficient sum
countCoeff is smaller than or equal to "1", the processing target differential coefficient
position within the sub block to be processed is determined (S408). In a case where
the processing target differential coefficient position pos <= 3, the context index
ctxIdx used for decoding the significant coefficient information is set to "1" (S809).
Otherwise (pos > 3), the context index ctxIdx is set to "0" (S810) . The definition
of the context index ctxIdx of a case where countCoeff = 1 is denoted by reference
numeral 602 in FIG. 11.
[0080] When the neighboring significant coefficient sum countCoeff is not smaller than or
equal to "1", it is determined whether or not the neighboring significant coefficient
sum countCoeff is smaller than "2" (S811). In a case where the neighboring significant
coefficient sum countCoeff is smaller than or equal to "2", the processing target
differential coefficient position within the sub block to be processed is determined
(S812). In a case where the processing target differential coefficient position pos
<= 2, the context index ctxIdx used for decoding the significant coefficient information
is set to "2" (S813). Otherwise (pos > 2), the context index ctxIdx is set to "1"
(S814) . The definition of the context index ctxIdx of a case where the neighboring
significant coefficient sum countCoeff = 2 is denoted by reference numeral 603 in
FIG. 11.
[0081] When the neighboring significant coefficient sum countCoeff is not smaller or equal
to "2", the context index ctxIdx used for decoding the significant coefficient information
is set to "2" (S815). The definition of the context index ctxIdx of a case where the
neighboring significant coefficient sum countCoeff > 2 is denoted by reference numeral
605 in FIG. 11.
[0082] The significant coefficient information coding controller 706 derives the differential
coefficient of the processing target position from the differential coefficient buffer
702. In a case where the differential coefficient value is not "0", the significant
differential coefficient information is set to "1". Otherwise (in a case where the
differential coefficient value is "0"), the significant differential coefficient information
is set to "0" (S816).
[0083] After a context corresponding to the determined context index ctxIdx is read from
the context memory 704, the significant coefficient information coding controller
706 transmits the significant differential coefficient information and the context
to the arithmetic encoder 701. The arithmetic encoder 701 codes the significant differential
coefficient information using the context (S817).
[Differential Coefficient Value Coding Process (S705)]
[0084] The differential coefficient value coding controller 707 determines a differential
coefficient that is the processing target (S901). The scanning sequence of differential
coefficients disposed within a sub block, similarly to the scanning sequence of the
significant differential coefficients, is assumed to follow the rule illustrated in
FIG. 7. When the scanning of all the differential coefficients of the sub block is
completed, the coding process of differential coefficient values is completed, and
the process proceeds to the sequence (S601) of determining the next sub block.
[0085] The differential coefficient value coding controller 707 determines whether or not
the differential coefficient value of the processing target differential coefficient
position is "0" (S902). In a case where the differential coefficient value of the
processing target differential coefficient position is "0", the coding of the differential
coefficient value of the processing target differential coefficient position is completed,
and the process proceeds to step S901.
[0086] In a case where the differential coefficient value of the processing target differential
coefficient position is "not 0", the absolute value of the coded differential coefficient
of the processing target differential coefficient position and the sign are calculated
(S903 and S904) . When this sequence is performed, the differential coefficient value
is determined not to be "0". Accordingly, the absolute value of the coded differential
coefficient is set as a value derived by decreasing one from the absolute value of
the differential coefficient. In addition, in a case where the differential coefficient
is positive, the sign is set to "0". On the other hand, in a case where the differential
coefficient is negative, the sign is set to "1".
[0087] After the context is read from the context memory 704, the differential coefficient
value coding controller 707 transmits a coding absolute value and the context to the
arithmetic encoder 701. The arithmetic encoder 701 codes the coding absolute value
using the context (S905).
[0088] After the context is read from the context memory 704, the differential coefficient
value coding controller 707 transmits a sign and the context to the arithmetic encoder
701. The arithmetic encoder 701 codes the coding absolute value using the context
(S905).
[Decoding Sequence]
[0089] A method of decoding differential coefficients according to a first example of the
embodiment of the present invention will be described. FIG. 8 is a block diagram that
illustrates the detailed configuration of the differential information decoder 801,
which is illustrated in FIG. 6, according to the first example. The differential information
decoder 801 according to the first example includes: an arithmetic decoder 1001; a
differential coefficient buffer 1002; a decoding controller 1003; a context memory
1004; and a scan controller 1005. In addition, the decoding controller 1003 includes:
a significant coefficient information decoding controller 1006; a differential coefficient
value decoding controller 1007; and a significant sub block information decoding controller
1008.
[0090] Since the differential information decoding process performed by the differential
information decoder 801 illustrated in FIG. 8 corresponds to the differential information
coding process performed by the differential information encoder 507 illustrated in
FIG. 5, the configurations of the differential coefficient buffer 1002, the context
memory 1004, and the scan controller 1005 of the differential information encoder
illustrated in FIG. 8 respectively have functions corresponding to the configurations
of the differential coefficient buffer 702, the context memory 704, and the scan controller
705 illustrated in FIG. 15.
[0091] Hereinafter, the decoding sequence of the differential information will be described
with reference to the flowcharts illustrated in FIGS. 1, 2, 4, and 13.
[0092] The scan controller 1005 determines a sub block to be processed (S101) . When the
scanning of all the sub blocks is completed, the decoding process of differential
coefficients ends. Reference numeral 902 represented in FIG. 7 illustrates the scanning
sequence of sub blocks. In this sequence, scanning is started from a sub block disposed
on the lower rightmost side of the differential coefficient region, scanning according
to a rule of the lower right side to the upper left side and the upper right side
to the upper left side is performed, and the scanning is completed at a sub block
disposed on the upper leftmost side. Reference numeral 901 represented in FIG. 7 illustrates
the scanning sequence of sub blocks using arrows. In a case where the scanning sequence
illustrated in FIG. 7 is applied, the scanning of sub blocks spatially positioned
respectively on the right side and the lower side of the sub block to be processed
is in the completed state. The decoding process of the sub block to be processed is
performed (S102).
[Sub Block Decoding (S102)]
[0093] The significant sub block information decoding controller 1008 refers to differential
coefficients that are neighboring to the sub block to be processed and are included
in the sub block that has been decoded from the differential coefficient buffer 1002,
determines a context used for decoding the significant sub block information, and
reads the determined context from the context memory 1004. The significant sub block
information decoding controller 1008 transmits a decoding command together with the
context to the arithmetic decoder 1001. The arithmetic decoder 1001 performs the decoding
process of a bitstream by using the context, thereby decoding the significant sub
block information (S201).
[0094] The significant sub block information decoding controller 1008 determines the value
of the significant sub block information (S202). When the significant sub block information
is "0", all the differential coefficient values of the processing target sub block
stored in the differential coefficient buffer 1002 are set to "0" (S209), and the
decoding process of sub block differential coefficient values ends.
[0095] When the significant sub block information is "1", the decoding process of all the
significant differential coefficient information of the sub block to be processed
is performed (S203). The sequence of decoding of the significant differential coefficient
information of a sub block will be described later in detail. After the decoding of
all the significant differential coefficient information of the sub block is completed,
the process proceeds to the decoding of differential coefficient values of step S204.
[0096] Subsequently, the decoding process of all the differential coefficient values of
the sub block to be processed is performed (S204). The sequence of the decoding of
the differential coefficient values of the sub block will be described later in detail.
After the decoding of all the differential coefficient values of the sub block is
completed, the process proceeds to step S101.
[Sequence of Decoding Process of Significant Differential Coefficient Information
(S203)]
[0097] The significant coefficient information decoding controller 1006 calculates a sum
countCoeff of the number of the neighboring significant differential coefficients
of the processing target differential coefficient position (S401). In this sequence,
differential coefficients that belong to sub blocks spatially disposed respectively
on the right side and the lower side of the sub block to be processed and are neighboring
to the sub block to be processed are defined as neighboring differential coefficients.
[0098] FIG. 10 illustrates the positions of the neighboring differential coefficients. Reference
numeral 301 represents a sub block to be processed, and reference numeral 302 represents
the neighboring differential coefficients. A neighboring differential coefficient
representing the outside of the differential coefficient region is excluded from the
calculation of the neighboring significant coefficient sum countCoeff. A differential
coefficient 303 that belongs to both sub blocks disposed on the right side and the
lower side of the sub block to be processed may be configured to be included in the
neighboring differential coefficients or may be configured not to be included therein.
In the configuration in which the differential coefficient 303 is included in the
neighboring differential coefficients, the number of the neighboring differential
coefficients increases, and the occurrence probability of the significant differential
coefficient information can be estimated with high accuracy. On the other hand, in
the configuration in which the differential coefficient 303 is not included in the
neighboring differential coefficients, the amount of calculation and the circuit scale
can be decreased by reducing the adding process relating to the neighboring significant
coefficient sum countCoeff and reducing the boundary determining process of the differential
coefficient region.
[0099] The significant coefficient information decoding controller 1006 determines differential
coefficients that are the processing targets (S402). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of sub blocks
in the differential coefficient region, follows the rule represented in FIG. 7. When
the scanning of all the significant differential coefficients of the sub block is
completed, the decoding process of the significant differential coefficients is completed,
and the process proceeds to the decoding sequence (S204) of differential coefficient
values.
[0100] The significant coefficient information decoding controller 1006 determines whether
or not the neighboring significant coefficient sum countCoeff is "0" (S403) . In a
case where the neighboring significant coefficient sum countCoeff is "0", the processing
target differential coefficient position within the sub block to be processed is determined
(S404) . Here, it is represented such that a horizontal differential coefficient position
is posX, a vertical differential coefficient position is posY, and the processing
target differential coefficient position is pos = posX + posY. In a case where pos
<= 2, a context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S405) . Otherwise (pos > 2), the context index ctxIdx is set to "0"
(S406) . The definition of the context index ctxIdx of a case where countCoeff = 0
is denoted by reference numeral 601 in FIG. 11. After the determined context is read
from the context memory 1004, a decoding command is transmitted to the arithmetic
decoder 1001 together with the context. The arithmetic decoder 1001 performs a decoding
process of a bitstream using the context, thereby decoding the significant differential
coefficient information (S416).
[0101] When the neighboring significant coefficient sum countCoeff is not "0", it is determined
whether or not the neighboring significant coefficient sum countCoeff is smaller than
or equal to "1" (S407). In a case where the neighboring significant coefficient sum
countCoeff is smaller than or equal to "1", the processing target differential coefficient
position within the sub block to be processed is determined (S408). In a case where
the processing target differential coefficient position pos <= 3, the context index
ctxIdx used for decoding the significant coefficient information is set to "1" (S409).
Otherwise (pos > 3), the context index ctxIdx is set to "0" (S410) . The context index
ctxIdx of a case where countCoeff = 1 is denoted by reference numeral 602 in FIG.
11. After the determined context is read from the context memory 1004, a decoding
command is transmitted to the arithmetic decoder 1001 together with the context. The
arithmetic decoder 1001 performs a decoding process of a bitstream using the context,
thereby decoding the significant differential coefficient information (S416).
[0102] When the neighboring significant coefficient sum countCoeff is not smaller than or
equal to "1", it is determined whether or not the neighboring significant coefficient
sum countCoeff is smaller than or equal to "2" (S411) . In a case where the neighboring
significant coefficient sum countCoeff is smaller than or equal to "2", the processing
target differential coefficient position within the sub block to be processed is determined
(S412). In a case where the processing target differential coefficient position pos
<= 2, the context index ctxIdx used for decoding the significant coefficient information
is set to "2" (S413). Otherwise (pos > 2), the context index ctxIdx is set to "1"
(S414) . The definition of the context index ctxIdx of a case where the neighboring
significant coefficient sum countCoeff = 2 is denoted by reference numeral 603 in
FIG. 11. After the determined context is read from the context memory 1004, a decoding
command is transmitted to the arithmetic decoder 1001 together with the context. The
arithmetic decoder 1001 performs a decoding process of a bitstream using the context,
thereby decoding the significant differential coefficient information (S416).
[0103] When the neighboring significant coefficient sum countCoeff is not smaller or equal
to "2", the context index ctxIdx used for decoding the significant coefficient information
is set to "2" (S415). The definition of the context index ctxIdx of a case where the
neighboring significant coefficient sum countCoeff > 2 is denoted by reference numeral
605 in FIG. 11. After the determined context is read from the context memory 1004,
a decoding command is transmitted to the arithmetic decoder 1001 together with the
context. The arithmetic decoder 1001 performs a decoding process of a bitstream using
the context, thereby decoding the significant differential coefficient information
(S416).
[0104] When the neighboring significant coefficient sum countCoeff is large, there is a
high possibility that all the significant coefficient information within the sub block
to be processed is "1". Accordingly, in the above-described sequence, in a case where
the neighboring significant coefficient sum countCoeff is larger than or equal to
"3", the context index ctxIdx is set to "2" regardless of the value of the processing
target differential coefficient position pos. In addition, the determination criterion
for the neighboring significant coefficient sum countCoeff may be subdivided. For
example, in a case where the neighboring significant coefficient countCoeff is larger
than or equal to "3", when the neighboring significant coefficient sum countCoeff
is "3", the definition of the context index that is denoted by reference numeral 604
illustrated in FIG. 11 is configured to be taken, and, when the neighboring significant
coefficient sum countCoeff is larger than or equal to "4", the definition of the context
index that is denoted by reference numeral 605 illustrated in FIG. 11 is configured
to be taken. In a case where such a configuration is taken, the correlation use efficiency
of the neighboring information is improved, and accordingly, the coding efficiency
can be improved.
[0105] In this sequence, for the calculation of the context index ctxIdx used for the significant
differential coefficient information, a sum of the numbers of pieces of the significant
coefficient information of the decoded neighboring sub block and the position of the
processing target differential coefficient within the sub block are referred to. Hereinafter,
the reason for taking such a configuration will be described.
[0106] Generally, the orthogonal transform coefficients of a picture may be easily concentrated
in the low region component, and there is a high possibility that the significant
coefficient information is "1". In addition, since it is difficult for the high region
component of the orthogonal transform coefficient to receive a visual influence, the
high region component is quantized in a rough manner in many cases, and accordingly,
there is a high possibility that the coefficient value of the high region component
is "0", and the significant coefficient information of the high region component is
"0". Such a characteristic is not limited to the entire differential coefficient region
but is the same for each sub block, and it can be regarded that, for a component present
on the low region side of the sub block, a probability that the significant coefficient
information is "1" is higher than that for a component present on the high region
side of the same sub block. Setting the value of the context index ctxIdx of the significant
differential coefficient information presented in the low region within the sub block
to be larger than the value of the context index ctxIdx of the significant differential
coefficient information present in the high region leads to the improvement of the
estimation accuracy of the occurrence probability of the significant coefficient information.
In addition, the neighboring significant coefficient sum tends to be small in the
high region in which the probability that the significant differential coefficient
is "0" is high, and the neighboring significant coefficient sum tends to increase
in the low region in which the probability that the significant differential coefficient
is "1" is high. Thus, by using the neighboring significant coefficient sum as an index
representing the degree of inclusion of the significant differential coefficient information
in the sub block to be processed improves the estimation accuracy of the occurrence
probability of the significant coefficient information.
[0107] In this sequence, by calculating the neighboring significant differential coefficient
sum for the sub block once, the context indexes of all the coefficient positions within
the sub block can be calculated. Thus, compared to a method in which the neighboring
significant differential coefficient sum is calculated at each coefficient position,
the amount of calculation of the neighboring significant differential coefficient
sum can be reduced. In addition, in a configuration in which a decoding result of
the prior significant differential coefficient in the scanning sequence is used for
the calculation of the context index, it is necessary to sequentially process the
calculation of the context indexes within the sub block and the decoding of the significant
differential coefficient. In this example, while the neighboring significant differential
coefficient sum and the processing target coefficient position are referred to for
the calculation of context indexes, the differential coefficient belonging to the
processing target sub block is not targeted for the neighboring significant differential
coefficient sum, and accordingly, there is no dependency within the sub block for
the calculation of context indexes. Since the context indexes for all the significant
differential coefficients can be calculated from the start of the sub block, the calculation
of the context indexes can be performed in parallel with the decoding process of the
significant differential coefficient information. Thus, a processing delay relating
to the decoding of significant coefficient information having a high occurrence frequency
in the bitstream can be decreased.
[0108] The context calculation may be performed by referring to the significant sub block
information instead of the neighboring significant coefficient. In addition, compared
to a configuration in which the neighboring significant coefficient sum is obtained,
the amount of calculation and the circuit scale can be reduced. In addition, the position
of the sub block can be reflected on the context calculation. As described above,
the low region component has a characteristic having the occurrence probability of
the significant coefficient to be higher than that of the high region. By reflecting
the position of the sub block on the context calculation, context estimation having
higher accuracy can be realized. FIG. 20 illustrates an example in which the differential
coefficient region is classified into two areas including a low-region area and a
high-region area. In FIG. 20, areas denoted by reference numerals 1101, 1102, 1103,
1104, 1105, and 1109 are low region components, and areas denoted by reference numerals
1106, 1107, 1108, 1110, 1111, 1112, 1113, 1114, 1115, and 1116 are high-region areas.
After the context indexes ctxIdx are calculated in the above-described sequence for
the high-region areas, predetermined offsets corresponding to the positions of sub
blocks may be configured to be added to the context indexes ctxIdx described above
for the low-region areas, or a conditional branch according to the position of the
sub block may be configured to be added during the calculation of the context indexes
ctxIdx described above. In addition, after the context indexes ctxIdx are calculated
in the above-described sequence for the low-region areas, for the high-region area,
generally, there is a high possibility that the significant differential coefficient
is "0", and the number of the neighboring significant differential coefficients may
easily include an error in the probability estimation, and accordingly, a configuration
in which the context ctxIdx = 0 is constantly set may be employed.
[0109] In addition, the context indexes may be calculated by using the sum of the absolute
values of neighboring coefficients instead of the neighboring significant differential
coefficient sum. Generally, the absolute value of the differential coefficient of
the low-region component is large, and accordingly, by setting a context in which
the occurrence probability of the significant differential coefficient information
increases in a case where the sum of the absolute values of the neighboring differential
coefficients is large, the coding efficiency can be improved.
[0110] Furthermore, by adding the prediction mode used at the time of calculating the differential
coefficients to the condition determination performed during the sequence of calculating
the context indexes of the significant differential coefficients, the accuracy of
the context estimation can be improved. The reason for this is that, generally, compared
to an intra prediction in which only a decoded area of a decoding target picture is
set as a reference target, an inter prediction capable of referring to a plurality
of decoded pictures has characteristics that the prediction accuracy is high and a
differential cannot easily occur.
[Decoding Process of Differential Coefficient Value (S204)]
[0111] The significant coefficient information decoding controller 1006 determines differential
coefficients that are the processing targets (S501). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of the significant
differential coefficients, follows the rule represented in FIG. 7. When the scanning
of all the differential coefficients of the sub block is completed, the decoding process
of the differential coefficients is completed, and the process proceeds to the sequence
(S101) of determining the next sub block.
[0112] The significant coefficient information decoding controller 1006 determines whether
or not the differential coefficient value of the processing target differential coefficient
position is "0" (S502). In a case where the differential coefficient value of the
processing target differential coefficient position is "0", the decoding of the differential
coefficient value of the processing target differential coefficient position is completed,
and the process proceeds to step S501.
[0113] In a case where the differential coefficient value of the processing target differential
coefficient position is "1", the absolute value of the differential coefficient of
the processing target differential coefficient position is decoded (S503). In a case
where this sequence is performed, it is determined that the differential coefficient
value is not "0", and, as a bitstream, a code word corresponding to a value derived
by decreasing one from the absolute value of the differential coefficient is decoded.
Accordingly, as the absolute value of the differential coefficient, a value derived
by adding "1" to a value that is derived by performing entropy decoding of a code
word is set.
[0114] Subsequently, the sign of the differential coefficient of the processing target differential
coefficient position is decoded (S504) . A differential coefficient value is determined
based on the absolute value of the differential coefficient and the sign of the differential
coefficient.
[0115] In this example, while a context index used for decoding the significant differential
coefficient information is calculated based on the significant differential coefficient
information of the decoded sub block, a similar sequence may be applied to the calculation
of the context index of the differential coefficient value. Similarly to the significant
differential coefficient information, the differential coefficient value has correlation
with the neighboring coefficient values and has concentration in the low region component.
Thus, by setting a context index representing a high occurrence probability of a large
differential coefficient value when the neighboring significant differential coefficient
sum or the sum of the absolute values of the neighboring differential coefficients
is large and setting a context index representing a high occurrence probability of
a small differential coefficient value when the neighboring significant differential
coefficient sum or the sum of the absolute values of the neighboring differential
coefficients is small, the differential coefficient values can be efficiently coded.
[0116] According to the picture coding device and the picture decoding device of the first
example described above, the following operations and advantages are obtained.
- (1) The context index of the processing target differential coefficient can be calculated
based on differential coefficients belonging to a decoded sub block that is neighboring
to the sub block, to which the processing target differential coefficient belong.
By setting a context that estimates the occurrence probability of the significant
differential coefficient information of "1" to be high when the neighboring significant
differential coefficient sum is large and estimates the occurrence probability of
the significant differential coefficient information of "0" to be high when the neighboring
significant differential coefficient sum is small, an appropriate probability model
that is based on the neighboring correlation of the significant differential coefficient
information can be set. Accordingly, the significant differential coefficient information
can be efficiently coded.
- (2) The context index is calculated based on the position of the processing target
differential coefficient within the sub block. A context is set, which estimates the
differential coefficient disposed in the low region within the sub block to have an
occurrence probability of the significant differential coefficient of "1" to be higher
than the differential coefficient disposed in the high region within the sub block.
Thus, a probability model that is based on the characteristics of the significant
differential coefficient information on the frequency domain can be set, and the significant
differential coefficient information can be efficiently coded.
- (3) The calculation of the neighboring significant differential coefficient sum and
the position of the processing target differential coefficient within the sub block
do not depend on a decoding result of the significant differential coefficient information
within the sub block. Accordingly, a configuration can be employed in which the calculation
of the context index within the sub block and the decoding of the significant differential
coefficient information are processed in a parallel manner, and therefore, a processing
delay relating to the decoding process of the significant differential coefficient
information can be reduced. Accordingly, the differential coefficients decrease a
processing delay of the significant differential coefficient information having a
high occupancy rate in the bitstream and having a large number of processes, and therefore,
a decoding device that is appropriate for real-time processing can be realized. In
addition, also in the coding device, a processing delay of the coding of the significant
differential coefficient information can be similarly decreased.
- (4) The significant differential coefficient sum relating to the calculation of the
context index of the significant differential coefficient information does not depend
on the position of the processing target differential coefficient, and accordingly,
the significant differential coefficient sum may be calculated once for the sub block.
Accordingly, compared to a configuration in which each neighboring significant differential
coefficient sum is calculated in accordance with the position of the processing target
differential coefficient, the amount of calculation relating to the calculation of
the context indexes can be decreased.
(Second Example)
[0117] A second example of the method of coding the differential information according to
an embodiment of the present invention will now be described. A differential information
encoder 507 according to the second example, similarly to the differential information
encoder 507 according to the first example illustrated in FIG. 15, includes: an arithmetic
encoder 701; a differential coefficient buffer 702; a coding controller 703; a context
memory 704; and a scan controller 705. In addition, the coding controller 703 includes:
a significant coefficient information coding controller 706; a differential coefficient
value coding controller 707; and a significant sub block information coding controller
708.
[0118] The coding sequence of the differential information according to this example is
the same as that of the first example except for the sequence (S704 illustrated in
FIG. 17) of the coding process of the significant differential coefficient information,
and thus, hereinafter, the sequence of the coding process of the significant differential
coefficient information according to this example will be described with reference
to a flowchart illustrated in FIG. 21.
[Sequence of Coding Process of Significant Differential Coefficient Information (S704)]
[0119] The significant coefficient information coding controller 706 derives the significant
sub block information of decoded sub blocks that are respectively neighboring to the
right side and the lower side of a sub block to be processed. It is set such that
the significant sub block information of the sub block neighboring to the right side
is sigGroupRight, and the significant sub block information of the sub block neighboring
to the lower side is sigGroupBottom (S1001).
[0120] The significant coefficient information coding controller 706 determines differential
coefficients that are the processing targets (S1002). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of sub blocks
in the differential coefficient region, follows the rule represented in FIG. 7. When
the scanning of all the significant differential coefficients of the sub block is
completed, the coding process of the significant differential coefficients is completed,
and the process proceeds to the coding sequence (S704) of differential coefficient
values.
[0121] The significant coefficient information coding controller 706 evaluates the significant
sub block information sigGroupRight and the significant sub block information sigGroupBottom
(S1003).
[0122] In a case where both the significant sub block information sigGroupRight and the
significant sub block information sigGroupBottom are "0", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1004). Here, it is represented such that a horizontal differential coefficient position
is posX, a vertical differential coefficient position is posY, and the processing
target differential coefficient position is pos = posX + posY. In a case where pos
<= 2, a context index ctxIdx used for coding the significant coefficient information
is set to "1" (S1005). Otherwise (pos > 2), the context index ctxIdx is set to "0"
(S1006). The definition of the context index ctxIdx of a case where both the significant
sub block information sigGroupRight and the significant sub block information sigGroupBottom
are "0" is denoted by reference numeral 1201 in FIG. 23.
[0123] In a case where both the significant sub block information sigGroupRight and the
significant sub block information sigGroupBottom are not "0", it is determined whether
the significant sub block information sigGroupRight is "1" and the significant sub
block information sigGroupBottom is "0" (S1007). In a case where the significant sub
block information sigGroupRight is "1" and the significant sub block information sigGroupBottom
is "0", the position of the processing target differential coefficient within the
sub block to be processed is determined (S1008). In a case where the vertical differential
coefficient position posY <= 1, the context index ctxIdx used for decoding the significant
coefficient information is set to "1" (S1009). Otherwise (posY > 2), the context index
ctxIdx is set to "0" (S1010). The definition of the context index ctxIdx of a case
where the significant sub block information sigGroupRight is "1" and the significant
sub block information sigGroupBottom is "0" is denoted by reference numeral 1202 in
FIG. 23.
[0124] When the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are not respectively "1" and "0", it is determined
whether the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are respectively "0" and "1" (S1011) . In a case
where the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are respectively "0" and "1", the position of the
processing target differential coefficient within the sub block to be processed is
determined (S1012) . In a case where the horizontal differential coefficient position
posX <= 1, the context index ctxIdx used for decoding the significant coefficient
information is set to "1" (S1013) . Otherwise (posX > 2), the context index ctxIdx
is set to "0" (S1014). The definition of the context index ctxIdx of a case where
the significant sub block information sigGroupRight is "0" and the significant sub
block information sigGroupBottom is "1" is denoted by reference numeral 1203 in FIG.
23. In other words, the sequence of setting the context index ctxIdx of a case where
the significant sub block information sigGroupRight is "0" and the significant sub
block information sigGroupBottom is "1" is a process in which the X-direction process
and the Y-direction process of a case where the significant sub block information
sigGroupRight is "1" and the significant sub block information sigGroupBottom is "0"
are interchanged. For this reason, the process can be configured to be common, and
the circuit scale of the hardware or the coding amount of the software can be reduced.
[0125] When the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are not respectively "0" and "1", in other words,
when the significant sub block information sigGroupRight and the significant sub block
information sigGroupBottom are respectively "1" and "1", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1015). In a case where the processing target differential coefficient position pos
<= 4, the context index ctxIdx used for decoding the significant coefficient information
is set to "2" (S1016). Otherwise (pos > 5), the context index ctxIdx is set to "1"
(S1017) . The definition of the context index ctxIdx of a case where the significant
sub block information sigGroupRight is "0" and the significant sub block information
sigGroupBottom is "1" is denoted by reference numeral 1204 in FIG. 23.
[0126] The significant coefficient information coding controller 706 derives the differential
coefficient of the processing target position from the differential coefficient buffer
702. In a case where the differential coefficient value is not "0", the significant
differential coefficient information is set to "1". Otherwise (in a case where the
differential coefficient value is "0"), the significant differential coefficient information
is set to "0" (S1018).
[0127] After a context corresponding to the determined context index ctxIdx is read from
the context memory 704, the significant coefficient information coding controller
706 transmits the significant differential coefficient information and the context
to the arithmetic encoder 701. The arithmetic encoder 701 codes the significant differential
coefficient information using the context (S1019).
[Decoding Sequence]
[0128] A method of decoding differential coefficients according to the second example of
the embodiment of the present invention will be described. The differential information
decoder 801 according to the second example, similarly to the differential information
decoder 801 according to the first example illustrated in FIG. 8, includes: an arithmetic
decoder 1001; a differential coefficient buffer 1002; a decoding controller 1003;
a context memory 1004; and a scan controller 1005. In addition, the decoding controller
1003 includes: a significant coefficient information decoding controller 1006; a differential
coefficient value decoding controller 1007; and a significant sub block information
decoding controller 1008.
[0129] A differential information decoding process performed by the differential information
decoder 801 illustrated in FIG. 8 corresponds to the differential information coding
process performed by the differential information encoder 507 illustrated in FIG.
5. Thus, the configurations of the differential coefficient buffer 1002, the context
memory 1004, and the scan controller 1005 of the differential information encoder
illustrated in FIG. 8 respectively have functions corresponding to the configurations
of the differential coefficient buffer 702, the context memory 704, and the scan controller
705 illustrated in FIG. 15.
[0130] Since the decoding sequence of the differential information according to this example
is the same as that of the first example except for the sequence (S203 illustrated
in FIG. 2) of the coding process of the significant differential coefficient information,
hereinafter, the sequence of the decoding process of the significant differential
coefficient information according to this example will be described with reference
to a flowchart illustrated in FIG. 22.
[Sequence of Decoding Process of Significant Differential Coefficient Information
(S203)]
[0131] The significant coefficient information decoding controller 1006 derives the significant
sub block information of decoded sub blocks that are neighboring to the right side
and the lower side of the sub block to be processed. The significant sub block information
of the sub block neighboring to the right side will be denoted by sigGroupRight, and
the significant sub block information of the sub block neighboring to the lower side
will be denoted by sigGroupBottom (S1101).
[0132] The significant coefficient information decoding controller 1006 determines differential
coefficients that are the processing targets (S1102). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of sub blocks
in the differential coefficient region, follows the rule represented in FIG. 7. When
the scanning of all the significant differential coefficients of the sub block is
completed, the decoding process of the significant differential coefficients is completed,
and the process proceeds to the decoding sequence (S204) of differential coefficient
values.
[0133] The significant coefficient information decoding controller 1006 evaluates the significant
sub block information sigGroupRight and the significant sub block information sigGroupBottom
(S1103) . In a case where the significant sub block information sigGroupRight is "0"
and the significant sub block information sigGroupBottom is "0", the position of the
processing target differential coefficient within the sub block to be processed is
determined (S1104). Here, it is represented such that a horizontal differential coefficient
position is posX, a vertical differential coefficient position is posY, and the processing
target differential coefficient position is pos = posX + posY. In a case where pos
<= 2, a context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S1105). Otherwise (pos > 2), the context index ctxIdx is set to "0"
(S1106). The definition of the context index ctxIdx of a case where the significant
sub block information sigGroupRight is "0" and the significant sub block information
sigGroupBottom are "0" is denoted by reference numeral 1201 in FIG. 23. After the
determined context is read from the context memory 1004, a decoding command is transmitted
to the arithmetic decoder 1001 together with the context. The arithmetic decoder 1001
performs a decoding process of a bitstream using the context, thereby decoding the
significant differential coefficient information (S1116).
[0134] In a case where the significant sub block information sigGroupRight and the significant
sub block information sigGroupBottom are not "0", it is determined whether the significant
sub block information sigGroupRight is "1" and the significant sub block information
sigGroupBottom is "0" (S1107). In a case where the significant sub block information
sigGroupRight is "1" and the significant sub block information sigGroupBottom is "0",
the position of the processing target differential coefficient within the sub block
to be processed is determined (S1108). In a case where the vertical differential coefficient
position posY <= 1, the context index ctxIdx used for decoding the significant coefficient
information is set to "1" (S1109). Otherwise (posY > 2), the context index ctxIdx
is set to "0" (S1110). The definition of the context index ctxIdx of a case where
the significant sub block information sigGroupRight is "1" and the significant sub
block information sigGroupBottom is "0" is denoted by reference numeral 1202 in FIG.
23. After the determined context is read from the context memory 1004, a decoding
command is transmitted to the arithmetic decoder 1001 together with the context. The
arithmetic decoder 1001 performs a decoding process of a bitstream using the context,
thereby decoding the significant differential coefficient information (S1116).
[0135] When the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are not respectively "1" and "0", it is determined
whether the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are respectively "0" and "1" (S1111). In a case where
the significant sub block information sigGroupRight and the significant sub block
information sigGroupBottom are respectively "0" and "1", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1112) . In a case where the horizontal differential coefficient position posX <=
1, the context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S1113) . Otherwise (posX > 2), the context index ctxIdx is set to "0"
(S1114). The definition of the context index ctxIdx of a case where the significant
sub block information sigGroupRight is "0" and the significant sub block information
sigGroupBottom is "1" is denoted by reference numeral 1203 in FIG. 23. After the determined
context is read from the context memory 1004, a decoding command is transmitted to
the arithmetic decoder 1001 together with the context. The arithmetic decoder 1001
performs a decoding process of a bitstream using the context, thereby decoding the
significant differential coefficient information (S1116).
[0136] When the significant sub block information sigGroupRight and the significant sub
block information sigGroupBottom are not respectively "0" and "1", in other words,
when both the significant sub block information sigGroupRight and the significant
sub block information sigGroupBottom are "1", the position of the processing target
differential coefficient within the sub block to be processed is determined (S1117)
. In a case where the processing target differential coefficient position pos <= 4,
the context index ctxIdx used for decoding the significant coefficient information
is set to "2" (S1118). Otherwise (pos > 5), the context index ctxIdx is set to "1"
(S1114). The definition of the context index ctxIdx of a case where both the significant
sub block information sigGroupRight and the significant sub block information sigGroupBottom
are "1" is denoted by reference numeral 1204 in FIG. 23. After the determined context
is read from the context memory 1004, a decoding command is transmitted to the arithmetic
decoder 1001 together with the context. The arithmetic decoder 1001 performs a decoding
process of a bitstream using the context, thereby decoding the significant differential
coefficient information (S1116).
[0137] In this sequence, for the calculation of the context index ctxIdx for the significant
differential coefficient information, the significant sub block information of the
decoded neighboring sub blocks and the position of the processing target differential
coefficient within the sub block are referred to, and the significant sub block information
of the right side and the significant sub block information of the lower side are
individually determined. Hereinafter, the reason for employing such a configuration
will be described.
[0138] Generally, the orthogonal transform coefficients of a picture may be easily concentrated
in the low region component, and there is a high possibility that the significant
coefficient information is "1". In addition, since it is difficult for the high region
component of the orthogonal transform coefficient to receive a visual influence, the
high region component is quantized in a rough manner in many cases, and accordingly,
there is a high possibility that the coefficient value of the high region component
is "0", and the significant coefficient information of the high region component is
"0". Such a characteristic is not limited to the entire differential coefficient region
but is the same for each sub block, and it can be regarded that, for a component present
on the low region side of the sub block, a probability that the significant coefficient
information is "1" is higher than that for a component present on the high region
side of the same sub block. Setting the value of the context index ctxIdx of the significant
differential coefficient information present in the low region within the sub block
to be larger than the value of the context index ctxIdx of the significant differential
coefficient information present in the high region leads to the improvement of the
estimation accuracy of the occurrence probability of the significant coefficient information.
In addition, the decoded neighboring significant sub block information tends to be
small in the high region in which the probability that the significant differential
coefficient is "0" is high, and the decoded neighboring significant sub block information
tends to increase in the low region in which the probability that the significant
differential coefficient is "1" is high. Thus, using the decoded neighboring significant
sub block information as an index representing the degree of inclusion of the significant
differential coefficient information in the sub block to be processed improves the
estimation accuracy of the occurrence probability of the significant coefficient information.
[0139] In the context calculating process of this example, in a case where the right-side
significant sub block information sigGroupRight is "1" and the lower-side significant
sub block information sigGroupBottom is "0" and in a case where the right-side significant
sub block information sigGroupRight is "0" and the lower-side significant sub block
information sigGroupBottom is "1", mutually-different context indexes can be set,
which is different from the first example. In a case where the right-side significant
sub block information sigGroupRight is "1" and the lower-side significant sub block
information sigGroupBottom is "0", a significant differential coefficient is not present
on the lower side of the sub block to be processed, and accordingly, there is a high
possibility that a significant differential coefficient is not present in the high
region component of the vertical direction within the sub block to be processed. On
the other hand, in a case where the right-side significant sub block information sigGroupRight
is "0" and the lower-side significant sub block information sigGroupBottom is "1",
a significant differential coefficient is not present on the right side of the sub
block to be processed, and accordingly, there is a high possibility that a significant
differential coefficient is not present in the high region component of the horizontal
direction within the sub block to be processed. Therefore, by employing the configuration
of this example in which a context index is appropriately selected in accordance with
the occurrence probabilities of significant differential coefficients in the vertical
and horizontal directions, the estimation accuracy of the occurrence probabilities
of significant differential coefficients can be improved.
[0140] In addition, in this example, from the viewpoint of a decrease in the processing
amount, while the sub block that is neighboring to the right side of the sub block
to be decoded and the sub block that is neighboring to the lower side thereof are
referred to as the decoded neighboring sub blocks, the decoded neighboring sub blocks
according to the present invention are not limited thereto. Particularly, the sub
block that is neighboring to the lower right side of the sub block to be decoded is
close to the sub block to be decoded and has a high correlation with the sub block
to be decoded. Accordingly, by adding the significant sub block information sigGroupBottomRight
of the sub block that is neighboring to the lower right side to the determination
target for the calculation of the context index ctxIdx, the accuracy of the occurrence
probabilities of significant differential coefficients can be improved. However, compared
to the sub blocks neighboring to the right side of the sub block to be decoded and
the sub block neighboring to the lower side thereof, the sub block that is neighboring
to the lower right side of the sub block to be decoded is positioned far from the
sub block to be decoded and has a low correlation with the sub block to be decoded.
Accordingly, in the configuration in which the context index of the significant differential
coefficient is calculated based on the right-side significant sub block information
sigGroupRight, the lower-side significant sub block information sigGroupBottom, and
the significant sub block information sigGroupBottomRight, it is preferable to set
the degree of reflection of the significant differential coefficient of the significant
sub block information sigGroupBottomRight on the context index to be lower than those
of the significant sub block information sigGroupBottom and the significant sub block
information sigGroupBottomRight. As a method for setting the degree of reflection
of the significant differential coefficient of the significant sub block information
sigGroupBottomRight on the context index to be low, for example, in a case where both
the lower-side significant sub block information sigGroupBottom and the significant
sub block information sigGroupBottomRight are "0", the occurrence probability of the
significant differential coefficient is set to be low regardless of the value of the
significant sub block information sigGroupBottomRight.
[0141] In this example, while the right-side significant sub block information sigGroupRight,
the lower-side significant sub block information sigGroupBottom, and the position
of the processing target coefficient are referred to, the differential coefficient
belonging to the processing target sub block is not targeted for the right-side significant
sub block information sigGroupRight and the lower-side significant sub block information
sigGroupBottom, and accordingly, there is no dependency within the sub block for the
calculation of context indexes. Since the context indexes for all the significant
differential coefficients can be calculated from the start of the sub block, the calculation
of the context indexes can be performed in parallel with the decoding process of the
significant differential coefficient information. Thus, a processing delay relating
to the decoding of significant coefficient information having a high occurrence frequency
in the bitstream can be decreased.
[0142] In this example, while a context index used for decoding the significant differential
coefficient information is calculated based on the significant differential coefficient
information of the decoded sub block, a similar sequence may be applied to the calculation
of the context index of the differential coefficient value. Similarly to the significant
differential coefficient information, the differential coefficient value has correlation
with the neighboring coefficient values and has concentration in the low region component.
Thus, by setting a context index representing a high occurrence probability of a large
differential coefficient value when the neighboring significant differential coefficient
sum or the sum of the absolute values of the neighboring differential coefficients
is large and setting a context index representing a high occurrence probability of
a small differential coefficient value when the neighboring significant differential
coefficient sum or the sum of the absolute values of the neighboring differential
coefficients is small, the differential coefficient values can be efficiently coded.
[0143] According to the picture coding device and the picture decoding device of the second
example described above, the following operations and advantages are obtained in addition
to the operations and the advantages (1) to (4) of the first example described above.
[0144] (5) The context index is calculated based on a combination of the right-side significant
sub block information and the lower-side significant sub block information. The occurrence
probability of the significant differential coefficient of the vertical high region
component of the sub block to be processed is estimated to be low when a significant
differential coefficient is not present on the lower side of the sub block to be processed,
and the occurrence probability of the significant differential coefficient of the
horizontal high region component of the sub block to be processed is estimated to
be low when a significant differential coefficient is not present on the right side
of the sub block to be processed, whereby an appropriate probability model of the
significant differential coefficient information can be set, and the significant differential
coefficient information can be efficiently coded.
(Third Example)
[0145] A third example of the method of coding the differential information according to
an embodiment of the present invention will now be described. A differential information
encoder 507 according to the third example, similarly to the differential information
encoder 507 according to the first example illustrated in FIG. 15, includes: an arithmetic
encoder 701; a differential coefficient buffer 702; a coding controller 703; a context
memory 704; and a scan controller 705. In addition, the coding controller 703 includes:
a significant coefficient information coding controller 706; a differential coefficient
value coding controller 707; and a significant sub block information coding controller
708.
[0146] The coding sequence of the differential information according to this example is
the same as that of the first example except for the sequence (S704 illustrated in
FIG. 17) of the coding process of the significant differential coefficient information,
and thus, hereinafter, the sequence of the coding process of the significant differential
coefficient information according to this example will be described with reference
to a flowchart illustrated in FIG. 24.
[Sequence of Coding Process of Significant Differential Coefficient Information (S704)]
[0147] The significant coefficient information coding controller 706 calculates a neighboring
significant index sigCoeffIndex based on the significant sub block information of
the decoded sub blocks neighboring to the right side and the lower side of the sub
block to be processed. It is set such that the significant sub block information of
the sub block neighboring to the right side is sigGroupRight, the significant sub
block information of the sub block neighboring to the lower side is sigGroupBottom,
and the neighboring significant index sigCoeffIndex = sigGroupRight + 2 × sigGroupBottom
(S1201).
[0148] The significant coefficient information coding controller 706 determines differential
coefficients that are the processing targets (S1202). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of sub blocks
in the differential coefficient region, follows the rule represented in FIG. 7. When
the scanning of all the significant differential coefficients of the sub block is
completed, the coding process of the significant differential coefficients is completed,
and the process proceeds to the coding sequence (S704) of differential coefficient
values.
[0149] The significant coefficient information coding controller 706 evaluates the neighboring
significant index sigCoeffIndex (S1203).
[0150] In a case where the neighboring significant index sigCoeffIndex is "0", the position
of the processing target differential coefficient within the sub block to be processed
is determined (S1204). In a case where the neighboring significant index sigCoeffIndex
is "0", it represents that the significant sub block information sigGroupRight is
"0" and the significant sub block information sigGroupBottom is "0". Here, it is represented
such that a horizontal differential coefficient position is posX, a vertical differential
coefficient position is posY, and the processing target differential coefficient position
is pos = posX + posY. In a case where pos <= 2, the context index ctxIdx used for
coding the significant coefficient information is set to "1" (S1205). Otherwise (pos
> 2), the context index ctxIdx is set to "0" (S1206). The definition of the context
index ctxIdx of a case where the neighboring significant index sigCoeffIndex is "0"
is denoted by reference numeral 1201 in FIG. 23.
[0151] On the other hand, in a case where the neighboring significant index sigCoeffIndex
is not "0", it is determined whether the neighboring significant index sigCoeffIndex
is "1" (S1207). In a case where the neighboring significant index sigCoeffIndex is
"1", it represents that the significant sub block information sigGroupRight is "1"
and the significant sub block information sigGroupBottom is "0". In a case where the
neighboring significant index sigCoeffIndex is "1", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1208) . In a case where the vertical differential coefficient position posY <= 1,
the context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S1209). Otherwise (posY > 2), the context index ctxIdx is set to "0"
(S1210). The definition of the context index ctxIdx of a case where the neighboring
significant index sigCoeffIndex is "1" is denoted by reference numeral 1202 in FIG.
23.
[0152] On the other hand, in a case where the neighboring significant index sigCoeffIndex
is not "1", it is determined whether the neighboring significant index sigCoeffIndex
is "2" (S1211). In a case where the neighboring significant index sigCoeffIndex is
"2", it represents that the significant sub block information sigGroupRight is "0"
and the significant sub block information sigGroupBottom is "1". In a case where the
neighboring significant index sigCoeffIndex is "2", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1212) . In a case where the horizontal differential coefficient position posX <=
1, the context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S1213) . Otherwise (posX > 2), the context index ctxIdx is set to "0"
(S1214). The definition of the context index ctxIdx of a case where the neighboring
significant index sigCoeffIndex is "2" is denoted by reference numeral 1203 in FIG.
23. In other words, the sequence of setting the context index ctxIdx of a case where
the neighboring significant index sigCoeffIndex is "2" is a process in which the X-direction
process and the Y direction process of a case where the neighboring significant index
sigCoeffIndex is "1" are interchanged. For this reason, the process can be configured
to be common, and the circuit scale of the hardware or the coding amount of the software
can be reduced.
[0153] In addition, in a case where the neighboring significant index sigCoeffIndex is not
"2", in other words, in a case where the neighboring significant index sigCoeffIndex
is "3", the position of the processing target differential coefficient within the
sub block to be processed is determined (S1215). In a case where the neighboring significant
index sigCoeffIndex is "3", it represents that both the significant sub block information
sigGroupRight and significant sub block information sigGroupBottom are "1". In a case
where the processing target differential coefficient position pos <= 4, the context
index ctxIdx used for decoding the significant coefficient information is set to "2"
(S1216). Otherwise (pos > 5), the context index ctxIdx is set to "1" (S1217). The
definition of the context index ctxIdx of a case where neighboring significant index
sigCoeffIndex is "3" is denoted by reference numeral 1204 in FIG. 23.
[0154] The significant coefficient information coding controller 706 derives the differential
coefficient of the processing target position from the differential coefficient buffer
702. In a case where the differential coefficient value is not "0", the significant
differential coefficient information is set to "1". Otherwise (in a case where the
differential coefficient value is "0"), the significant differential coefficient information
is set to "0" (S1218).
[0155] After a context corresponding to the determined context index ctxIdx is read from
the context memory 704, the significant coefficient information coding controller
706 transmits the significant differential coefficient information and the context
to the arithmetic encoder 701. The arithmetic encoder 701 codes the significant differential
coefficient information using the context (S1219).
[Decoding Sequence]
[0156] A method of decoding differential coefficients according to the third example of
the embodiment of the present invention will be described. The differential information
decoder 801 according to the third example, similarly to the differential information
decoder 801 according to the first example illustrated in FIG. 8, includes: an arithmetic
decoder 1001; a differential coefficient buffer 1002; a decoding controller 1003;
a context memory 1004; and a scan controller 1005. In addition, the decoding controller
1003 includes: a significant coefficient information decoding controller 1006; a differential
coefficient value decoding controller 1007; and a significant sub block information
decoding controller 1008.
[0157] A differential information decoding process performed by the differential information
decoder 801 illustrated in FIG. 8 corresponds to the differential information coding
process performed by the differential information encoder 507 illustrated in FIG.
5. Thus, the configurations of the differential coefficient buffer 1002, the context
memory 1004, and the scan controller 1005 of the differential information encoder
illustrated in FIG. 8 respectively have functions corresponding to the configurations
of the differential coefficient buffer 702, the context memory 704, and the scan controller
705 illustrated in FIG. 15.
[0158] Since the decoding sequence of the differential information according to this example
is the same as that of the first example except for the sequence (S203 illustrated
in FIG. 2) of the coding process of the significant differential coefficient information,
hereinafter, the sequence of the decoding process of the significant differential
coefficient information according to this example will be described with reference
to a flowchart illustrated in FIG. 25.
[Sequence of Decoding Process of Significant Differential Coefficient Information
(S203)]
[0159] The significant coefficient information decoding controller 1006 calculates a neighboring
significant index sigCoeffIndex based on the significant sub block information of
the decoded sub blocks neighboring to the right side and the lower side of the sub
block to be processed. It is set such that the significant sub block information of
the sub block neighboring to the right side is sigGroupRight, the significant sub
block information of the sub block neighboring to the lower side is sigGroupBottom,
and the neighboring significant index sigCoeffIndex = sigGroupRight + 2 × sigGroupBottom
(S1301).
[0160] The significant coefficient information decoding controller 1006 determines differential
coefficients that are the processing targets (S1302). The scanning sequence of differential
coefficients within the sub block, similarly to the scanning sequence of sub blocks
in the differential coefficient region, follows the rule represented in FIG. 7. When
the scanning of all the significant differential coefficients of the sub block is
completed, the decoding process of the significant differential coefficients is completed,
and the process proceeds to the decoding sequence (S204) of differential coefficient
values.
[0161] The significant coefficient information decoding controller 1006 evaluates the neighboring
significant index sigCoeffIndex (S1303).
[0162] In a case where the neighboring significant index sigCoeffIndex is "0", the position
of the processing target differential coefficient within the sub block to be processed
is determined (S1304). In a case where the neighboring significant index sigCoeffIndex
is "0", it represents that both the significant sub block information sigGroupRight
and the significant sub block information sigGroupBottom are "0". Here, it is represented
such that a horizontal differential coefficient position is posX, a vertical differential
coefficient position is posY, and the processing target differential coefficient position
is pos =posX + posY. In a case where pos <= 2, the context index ctxIdx used for decoding
the significant coefficient information is set to "1" (S1305). Otherwise (pos > 2),
the context index ctxIdx is set to "0" (S1306). The definition of the context index
ctxIdx of a case where the neighboring significant index sigCoeffIndex is "0" is denoted
by reference numeral 1201 in FIG. 23. After the determined context is read from the
context memory 1004, a decoding command is transmitted to the arithmetic decoder 1001
together with the context. The arithmetic decoder 1001 performs a decoding process
of a bitstream using the context, thereby decoding the significant differential coefficient
information (S1316).
[0163] On the other hand, in a case where the neighboring significant index sigCoeffIndex
is not "0", it is determined whether the neighboring significant index sigCoeffIndex
is "1" (S1307). In a case where the neighboring significant index sigCoeffIndex is
"1", it represents that the significant sub block information sigGroupRight is "1"
and the significant sub block information sigGroupBottom is "0". In a case where the
neighboring significant index sigCoeffIndex is "1", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1308) . In a case where the vertical differential coefficient position posY <= 1,
the context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S1309). Otherwise (posY > 2), the context index ctxIdx is set to "0"
(S1310). The definition of the context of a case where the neighboring significant
index sigCoeffIndex is "1" is denoted by reference numeral 1202 in FIG. 23. After
the determined context is read from the context memory 1004, a decoding command is
transmitted to the arithmetic decoder 1001 together with the context. The arithmetic
decoder 1001 performs a decoding process of a bitstream using the context, thereby
decoding the significant differential coefficient information (S1316).
[0164] On the other hand, in a case where the neighboring significant index sigCoeffIndex
is not "1", it is determined whether the neighboring significant index sigCoeffIndex
is "2" (S1311). In a case where the neighboring significant index sigCoeffIndex is
"2", it represents that the significant sub block information sigGroupRight is "0"
and the significant sub block information sigGroupBottom is "1". In a case where the
neighboring significant index sigCoeffIndex is "2", the position of the processing
target differential coefficient within the sub block to be processed is determined
(S1312) . In a case where the horizontal differential coefficient position posX <=
1, the context index ctxIdx used for decoding the significant coefficient information
is set to "1" (S1313) . Otherwise (posX > 2), the context index ctxIdx is set to "0"
(S1314). The definition of the context index ctxIdx of a case where the neighboring
significant index sigCoeffIndex is "2" is denoted by reference numeral 1203 in FIG.
23. After the determined context is read from the context memory 1004, a decoding
command is transmitted to the arithmetic decoder 1001 together with the context. The
arithmetic decoder 1001 performs a decoding process of a bitstream using the context,
thereby decoding the significant differential coefficient information (S1316).
[0165] In addition, in a case where the neighboring significant index sigCoeffIndex is not
"2", in other words, in a case where the neighboring significant index sigCoeffIndex
is "3", the position of the processing target differential coefficient within the
sub block to be processed is determined (S1317). In a case where the neighboring significant
index sigCoeffIndex is "3", it represents that both the significant sub block information
sigGroupRight and significant sub block information sigGroupBottom are "1". In a case
where the processing target differential coefficient position pos <= 4, the context
index ctxIdx used for decoding the significant coefficient information is set to "2"
(S1318). Otherwise (pos > 5), the context index ctxIdx is set to "1" (S1314). The
definition of the context index ctxIdx of a case where neighboring significant index
sigCoeffIndex is "3" is denoted by reference numeral 1204 in FIG. 23. After the determined
context is read from the context memory 1004, a decoding command is transmitted to
the arithmetic decoder 1001 together with the context. The arithmetic decoder 1001
performs a decoding process of a bitstream using the context, thereby decoding the
significant differential coefficient information (S1316).
[0166] In this example, in the sequence for calculating the context index ctxIdx of the
significant differential coefficient information, instead of directly referring to
the significant sub block information sigGroupRight of the sub block neighboring to
the right side and the significant sub block information sigGroupBottom of the sub
block neighboring to the lower side, after the neighboring significant index sigCoeffIndex
is calculated based on the significant sub block information sigGroupRight and sigGroupBottom,
the context index ctxIdx is calculated by referring to the neighboring significant
index sigCoeffIndex, which is different from the first example. Accordingly, the number
of times of performing the determination process relating to context index based on
the neighboring significant index sigCoeffIndex can be reduced.
[0167] According to the picture coding device and the picture decoding device of the third
example described above, the following operations and advantages are obtained in addition
to the operations and the advantages (1) to (4) of the first example and the operations
and the advantages (5) of the second example described above.
[0168] (6) After the neighboring significant index sigCoeffIndex is calculated based on
the significant sub block information sigGroupRight of the sub block neighboring to
the right side and the significant sub block information sigGroupBottom of the sub
block neighboring to the lower side, the context index is calculated based on the
neighboring significant index sigCoeffIndex. Compared to a method in which the context
index is calculated based on the significant sub block information sigGroupRight of
the sub block neighboring to the right side and the significant sub block information
sigGroupBottom of the sub block neighboring to the lower side, the number of times
of performing the determination process relating to the calculation of context indexes
can be reduced.
[0169] A bitstream of a picture that is output by the picture coding device according to
the embodiment described above has a specific data format so as to be decodable in
accordance with a coding method used in the embodiment, and the picture decoding device
corresponding to the picture coding device can decode the bitstream of the specific
data format.
[0170] In a case where a wired or wireless network is used for exchanging a bitstream between
the picture coding device and the picture decoding device, the bitstream may be converted
into a data format that is appropriate for the transmission form in a communication
path and be transmitted. In such a case, a picture transmission device is disposed,
which converts a bitstream output by the picture coding device into coding data of
a data format that is appropriate to the transmission form in the communication path
and transmits the converted coding data to the network, and a picture reception device
is disposed, which receives the coding data from the network, restores the bitstream
from the coding data, and supplies the restored bitstream to the picture decoding
device.
[0171] The picture transmission device includes: a memory that buffers a bitstream output
by the picture coding device; a packet processing unit that packetizes the bitstream;
and a transmitter that transmits packetized coding data through a network. The picture
reception device includes: a reception unit that receives packetized coding data through
a network; a memory that buffers the received coding data; and a packet processing
unit that constructs a bitstream by performing a packet process of coding data and
supplies the constructed bitstream to the picture decoding device.
[0172] The processes relating to the coding and decoding described above may be realized
not only by a transmission/storage/reception device using hardware but also by firmware
stored in a read only memory (ROM), a flash memory, or the like or software of a computer
or the like. The firmware or the software program may be provided with being recorded
in a recording medium that can be read by a computer or the like, may be provided
from a server through a wired or wireless network, or may be provided by data broadcasting
of terrestrial wave or satellite digital broadcasting.
[0173] As above, the present invention has been described based on the embodiments. However,
such embodiments are merely examples, and it is understood to a person skilled in
the art that various modifications may be made in each constituent element thereof
or a combination of each process sequence, and such modified examples also belong
to the scope of the present invention.
[DESCRIPTION OF THE REFERENCE NUMERALS]
[0174] 501 subtractor, 502 orthogonal transformer/quantizer, 503 inverse quantizer/inverse
transformer, 504 adder, 505 decoded picture memory, 506 predictor, 507 differential
information encoder, 508 prediction information encoder, 509 mode determiner, 701
arithmetic encoder, 702 differential coefficient buffer, 703 coding controller, 704
context memory, 705 scan controller, 706 significant coefficient information coding
controller, 707 differential coefficient value coding controller, 708 significant
sub block information coding controller, 801 differential information decoder, 802
inverse quantizer/inverse transformer, 803 prediction information decoder, 804 adder,
805 decoded picture memory, 806 predictor, 1001 arithmetic decoder, 1002 differential
coefficient buffer, 1003 decoding controller, 1004 context memory, 1005 scan controller,
1006 significant coefficient information decoding controller, 1007 differential coefficient
value decoding controller, and 1008 significant sub block information decoding controller.
[INDUSTRIAL APPLICABILITY]
[0175] The present invention can be used for a picture coding/decoding technology.
[FURTHER SUMMARY OF THE INVENTION]
[0176]
- 1. A picture coding device that partitions differential information between a picture
that is a coding target and a picture that is a prediction target into a plurality
of sub blocks and codes the partitioned sub blocks in a predetermined sequence, the
picture coding device comprising:
a significant sub block information encoder that codes significant sub block information
that represents whether or not all the values of differential coefficients belonging
to the sub block are zero;
a significant differential coefficient information encoder that codes significant
differential coefficient information that represents whether or not the value of the
differential coefficient is zero;
a differential coefficient value encoder that codes the value of the differential
coefficient; and
a context deriver that derives an index based on the significant sub block information
of a coded sub block that is neighboring to the sub block that is a coding target
in the horizontal direction and the significant sub block information of a coded sub
block that is neighboring in the vertical direction and derives a context used for
coding the significant differential coefficient information of the differential coefficient
that is a coding target based on the index and the position of the differential coefficient
that is the coding target in the sub block that is the coding target.
- 2. The picture coding device according to 1, wherein the context deriver derives the
mutually-different indexes in a case where the significant sub block information of
the coded sub block that is neighboring in the horizontal direction is "1" and the
significant sub block information of the coded sub block that is neighboring in the
vertical direction is "0" and in a case where the significant sub block information
of the coded sub block that is neighboring in the horizontal direction is "0" and
the significant sub block information of the coded sub block that is neighboring in
the vertical direction is "1".
- 3. The picture coding device according to 1, wherein the context deriver derives the
mutually-different indexes in a case where the significant sub block information of
the coded sub block that is neighboring in the horizontal direction is "0" and the
significant sub block information of the coded sub block that is neighboring in the
vertical direction is "0" and in a case where the significant sub block information
of the coded sub block that is neighboring in the horizontal direction is "1" and
the significant sub block information of the coded sub block that is neighboring in
the vertical direction is "1".
- 4. The picture coding device according to 1, wherein the context deriver derives the
mutually-different indexes in a case where the significant sub block information of
the coded sub block that is neighboring in the horizontal direction is "0" and the
significant sub block information of the coded sub block that is neighboring in the
vertical direction is "0", in a case where the significant sub block information of
the coded sub block that is neighboring in the horizontal direction is "1" and the
significant sub block information of the coded sub block that is neighboring in the
vertical direction is "0", in a case where the significant sub block information of
the coded sub block that is neighboring in the horizontal direction is "0" and the
significant sub block information of the coded sub block that is neighboring in the
vertical direction is "1", and in a case where the significant sub block information
of the coded sub block that is neighboring in the horizontal direction is "1" and
the significant sub block information of the coded sub block that is neighboring in
the vertical direction is "1".
- 5. The picture coding device according to any one of items 1 to 4, wherein the context
deriver, in a case where the significant sub block information of the coded sub block
that is neighboring in the horizontal direction is "1" and the significant sub block
information of the coded sub block that is neighboring in the vertical direction is
"0", derives the context based on the position of the differential coefficient, which
is the coding target, in the vertical direction in the sub block that is the coding
target.
- 6. The picture coding device according to any one of items 1 to 5, wherein the context
deriver, in a case where the significant sub block information of the coded sub block
that is neighboring in the horizontal direction is "0" and the significant sub block
information of the coded sub block that is neighboring in the vertical direction is
"1", derives the context based on the position of the differential coefficient, which
is the coding target, in the horizontal direction in the sub block that is the coding
target.
- 7. The picture coding device according to any one of items 1 to 6, wherein the context
deriver, in a case where both the significant sub block information of the coded sub
block that is neighboring in the horizontal direction and the significant sub block
information of the coded sub block that is neighboring in the vertical direction are
"1", sets the context as a predetermined value regardless of the position of the differential
coefficient that is the coding target in the sub block that is the coding target.
- 8. The picture coding device according to any one of items 1 to 7, wherein the context
deriver, in a case where both the significant sub block information of the coded sub
block that is neighboring in the horizontal direction and the significant sub block
information of the coded sub block that is neighboring in the vertical direction are
"0", derives the context based on an equation adding the positions of the differential
coefficient, which is the coding target, in the horizontal and vertical directions
in the sub block that is the coding target.
- 9. The picture coding device according to any one of items 1 to 8, wherein the context
deriver derives the index based on a calculating equation adding a value of the significant
sub block information of the coded sub block that is neighboring in the horizontal
direction to a value derived by doubling the significant sub block information of
the coded sub block that is neighboring in the vertical direction.
- 10. A picture coding method in which differential information between a picture that
is a coding target and a picture that is a prediction target is partitioned into a
plurality of sub blocks, and the partitioned sub blocks are coded in a predetermined
sequence, the picture coding method comprising:
coding significant sub block information that represents whether or not all the values
of differential coefficients belonging to the sub block are zero;
coding significant differential coefficient information that represents whether or
not the value of the differential coefficient is zero;
coding the value of the differential coefficient; and
deriving an index based on the significant sub block information of a coded sub block
that is neighboring to the sub block that is a coding target in the horizontal direction
and the significant sub block information of a coded sub block that is neighboring
in the vertical direction and deriving a context used for coding the significant differential
coefficient information of the differential coefficient that is a coding target based
on the index and the position of the differential coefficient that is the coding target
in the sub block that is the coding target.
- 11. A picture coding program in which differential information between a picture that
is a coding target and a picture that is a prediction target is partitioned into a
plurality of sub blocks, and the partitioned sub blocks are coded in a predetermined
sequence, the picture coding program causing a computer to perform:
coding significant sub block information that represents whether or not all the values
of differential coefficients belonging to the sub block are zero;
coding significant differential coefficient information that represents whether or
not the value of the differential coefficient is zero;
coding the value of the differential coefficient; and deriving an index based on the
significant sub block
information of a coded sub block that is neighboring to the sub block that is a coding
target in the horizontal direction and the significant sub block information of a
coded sub block that is neighboring in the vertical direction and deriving a context
used for coding the significant differential coefficient information of the differential
coefficient that is a coding target based on the index and the position of the differential
coefficient that is the coding target in the sub block that is the coding target.
- 12. A transmission device comprising:
a packet processing unit that obtains coding data by packetizing a bitstream that
is coded by using a picture coding method in which differential information between
a picture that is a coding target and a picture that is a prediction target is partitioned
into a plurality of sub blocks, and the partitioned sub blocks are coded in a predetermined
sequence; and
a transmitter that transmits the packetized coding data,
wherein the picture coding method comprises:
coding significant sub block information that represents whether or not all the values
of differential coefficients belonging to the sub block are zero;
coding significant differential coefficient information that represents whether or
not the value of the differential coefficient is zero;
coding the value of the differential coefficient; and deriving an index based on the
significant sub block
information of a coded sub block that is neighboring to the sub block that is a coding
target in the horizontal direction and the significant sub block information of a
coded sub block that is neighboring in the vertical direction and deriving a context
used for coding the significant differential coefficient information of the differential
coefficient that is a coding target based on the index and the position of the differential
coefficient that is the coding target in the sub block that is the coding target.
- 13. A transmission method comprising:
obtaining coding data by packetizing a bitstream that is coded by using a picture
coding method in which differential information between a picture that is a coding
target and a picture that is a prediction target is partitioned into a plurality of
sub blocks, and the partitioned sub blocks are coded in a predetermined sequence;
and
transmitting the packetized coding data,
wherein the picture coding method comprises:
coding significant sub block information that represents whether or not all the values
of differential coefficients belonging to the sub block are zero;
coding significant differential coefficient information that represents whether or
not the value of the differential coefficient is zero;
coding the value of the differential coefficient; and deriving an index based on the
significant sub block
information of a coded sub block that is neighboring to the sub block that is a coding
target in the horizontal direction and the significant sub block information of a
coded sub block that is neighboring in the vertical direction and deriving a context
used for coding the significant differential coefficient information of the differential
coefficient that is a coding target based on the index and the position of the differential
coefficient that is the coding target in the sub block that is the coding target.
- 14. A transmission program that causes a computer to perform:
obtaining coding data by packetizing a bitstream that is coded by using a picture
coding method in which differential information between a picture that is a coding
target and a picture that is a prediction target is partitioned into a plurality of
sub blocks, and the partitioned sub blocks are coded in a predetermined sequence;
and
transmitting the packetized coding data,
wherein the picture coding method comprises:
coding significant sub block information that represents whether or not all the values
of differential coefficients belonging to the sub block are zero;
coding significant differential coefficient information that represents whether or
not the value of the differential coefficient is zero;
coding the value of the differential coefficient; and
deriving an index based on the significant sub block information of a coded sub block
that is neighboring to the sub block that is a coding target in the horizontal direction
and the significant sub block information of a coded sub block that is neighboring
in the vertical direction and deriving a context used for coding the significant differential
coefficient information of the differential coefficient that is a coding target based
on the index and the position of the differential coefficient that is the coding target
in the sub block that is the coding target.
- 15. A picture decoding device that decodes a bitstream in which differential information
between a picture that is a decoding target and a picture that is a prediction target
is partitioned into a plurality of sub blocks, and the partitioned sub blocks are
coded in a predetermined sequence, the picture decoding device comprising:
a significant sub block information decoder that decodes significant sub block information
that represents whether or not all the values of differential coefficients belonging
to the sub block are zero;
a significant differential coefficient information decoder that decodes significant
differential coefficient information that represents whether or not the value of the
differential coefficient is zero;
a differential coefficient value decoder that decodes the value of the differential
coefficient; and
a context deriver that derives an index based on the significant sub block information
of a decoded sub block that is neighboring to the sub block that is a decoding target
in the horizontal direction and the significant sub block information of a decoded
sub block that is neighboring in the vertical direction and derives a context used
for decoding the significant differential coefficient information of the differential
coefficient that is a decoding target based on the index and the position of the differential
coefficient that is the decoding target in the sub block that is the decoding target.
- 16. The picture decoding device according to 15, wherein the context deriver derives
the mutually-different indexes in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "1" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "0" and in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "0" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "1".
- 17. The picture decoding device according to 15, wherein the context deriver derives
the mutually-different indexes in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "0" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "0" and in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "1" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "1".
- 18. The picture decoding device according to 15, wherein the context deriver derives
the mutually-different indexes in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "0" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "0", in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "1" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "0", in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "0" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "1", and in a case where the significant sub block information
of the decoded sub block that is neighboring in the horizontal direction is "1" and
the significant sub block information of the decoded sub block that is neighboring
in the vertical direction is "1".
- 19. The picture decoding device according to any one of items 15 to 18, wherein the
context deriver, in a case where the significant sub block information of the decoded
sub block that is neighboring in the horizontal direction is "1" and the significant
sub block information of the decoded sub block that is neighboring in the vertical
direction is "0", derives the context based on the position of the differential coefficient,
which is the decoding target, in the vertical direction in the sub block that is the
decoding target.
- 20. The picture decoding device according to any one of items 15 to 19, wherein the
context deriver, in a case where the significant sub block information of the decoded
sub block that is neighboring in the horizontal direction is "0" and the significant
sub block information of the decoded sub block that is neighboring in the vertical
direction is "1", derives the context based on the position of the differential coefficient,
which is the decoding target, in the horizontal direction in the sub block that is
the decoding target.
- 21. The picture decoding device according to any one of items 15 to 20, wherein the
context deriver, in a case where both the significant sub block information of the
decoded sub block that is neighboring in the horizontal direction and the significant
sub block information of the decoded sub block that is neighboring in the vertical
direction are "1", sets the context as a predetermined value regardless of the position
of the differential coefficient that is the decoding target in the sub block that
is the decoding target.
- 22. The picture decoding device according to any one of items 15 to 21, wherein the
context deriver, in a case where both the significant sub block information of the
decoded sub block that is neighboring in the horizontal direction and the significant
sub block information of the decoded sub block that is neighboring in the vertical
direction are "0", derives the context based on an equation adding the positions of
the differential coefficient, which is the decoding target, in the horizontal and
vertical directions in the sub block that is the decoding target.
- 23. The picture decoding device according to any one of items 15 to 22, wherein the
context deriver derives the index based on a calculating equation adding a value of
the significant sub block information of the decoded sub block that is neighboring
in the horizontal direction to a value derived by doubling the significant sub block
information of the decoded sub block that is neighboring in the vertical direction.
- 24. A picture decoding method decoding a bitstream in which differential information
between a picture that is a decoding target and a picture that is a prediction target
is partitioned into a plurality of sub blocks, and the partitioned sub blocks are
coded in a predetermined sequence, the picture decoding method comprising:
decoding significant sub block information that represents whether or not all the
values of differential coefficients belonging to the sub block are zero;
decoding significant differential coefficient information that represents whether
or not the value of the differential coefficient is zero;
decoding the value of the differential coefficient; and
deriving an index based on the significant sub block information of a decoded sub
block that is neighboring to the sub block that is a decoding target in the horizontal
direction and the significant sub block information of a decoded sub block that is
neighboring in the vertical direction and deriving a context used for decoding the
significant differential coefficient information of the differential coefficient that
is a decoding target based on the index and the position of the differential coefficient
that is the decoding target in the sub block that is the decoding target.
- 25. A picture decoding program decoding a bitstream in which differential information
between a picture that is a decoding target and a picture that is a prediction target
is partitioned into a plurality of sub blocks, and the partitioned sub blocks are
coded in a predetermined sequence, the picture decoding program causing a computer
to perform:
decoding significant sub block information that represents whether or not all the
values of differential coefficients belonging to the sub block are zero;
decoding significant differential coefficient information that represents whether
or not the value of the differential coefficient is zero;
decoding the value of the differential coefficient; and
deriving an index based on the significant sub block information of a decoded sub
block that is neighboring to the sub block that is a decoding target in the horizontal
direction and the significant sub block information of a decoded sub block that is
neighboring in the vertical direction and deriving a context used for decoding the
significant differential coefficient information of the differential coefficient that
is a decoding target based on the index and the position of the differential coefficient
that is the decoding target in the sub block that is the decoding target.
- 26. A reception device that receives a bitstream in which a moving picture is coded
and decodes the received bitstream, the reception device comprising:
a reception unit that receives coding data obtained by packetizing a bitstream in
which differential information between a picture that is a decoding target and a picture
that is a prediction target is partitioned into a plurality of sub blocks, and the
partitioned sub blocks are coded in a predetermined sequence;
a restoration unit that restores the bitstream by performing packet processing of
the received packetized coding data;
a significant sub block information decoder that decodes significant sub block information
that represents whether or not all the values of differential coefficients belonging
to the sub block are zero from the restored bitstream;
a significant differential coefficient information decoder that decodes significant
differential coefficient information that represents whether or not the value of the
differential coefficient is zero from the restored bitstream;
a differential coefficient value decoder that decodes the value of the differential
coefficient from the restored bitstream; and
a context deriver that derives an index based on the significant sub block information
of a decoded sub block that is neighboring to the sub block that is a decoding target
in the horizontal direction and the significant sub block information of a decoded
sub block that is neighboring in the vertical direction and derives a context used
for decoding the significant differential coefficient information of the differential
coefficient that is a decoding target based on the index and the position of the differential
coefficient that is the decoding target in the sub block that is the decoding target.
- 27. A reception method of receiving a bitstream in which a moving picture is coded
and decoding the received bitstream, the reception method comprising:
receiving coding data obtained by packetizing a bitstream in which differential information
between a picture that is a decoding target and a picture that is a prediction target
is partitioned into a plurality of sub blocks, and the partitioned sub blocks are
coded in a predetermined sequence;
restoring the bitstream by performing packet processing of the received packetized
coding data;
decoding significant sub block information that represents whether or not all the
values of differential coefficients belonging to the sub block are zero from the restored
bitstream;
decoding significant differential coefficient information that represents whether
or not the value of the differential coefficient is zero from the restored bitstream;
decoding the value of the differential coefficient from the restored bitstream; and
deriving an index based on the significant sub block information of a decoded sub
block that is neighboring to the sub block that is a decoding target in the horizontal
direction and the significant sub block information of a decoded sub block that is
neighboring in the vertical direction and deriving a context used for decoding the
significant differential coefficient information of the differential coefficient that
is a decoding target based on the index and the position of the differential coefficient
that is the decoding target in the sub block that is the decoding target.
- 28. A reception program of receiving a bitstream in which a moving picture is coded
and decoding the received bitstream, the reception program causing a computer to perform:
receiving coding data obtained by packetizing a bitstream in which differential information
between a picture that is a decoding target and a picture that is a prediction target
is partitioned into a plurality of sub blocks, and the partitioned sub blocks are
coded in a predetermined sequence;
restoring the bitstream by performing packet processing of the received packetized
coding data;
decoding significant sub block information that represents whether or not all the
values of differential coefficients belonging to the sub block are zero from the restored
bitstream;
decoding significant differential coefficient information that represents whether
or not the value of the differential coefficient is zero from the restored bitstream;
decoding the value of the differential coefficient from the restored bitstream; and
deriving an index based on the significant sub block information of a decoded sub
block that is neighboring to the sub block that is a decoding target in the horizontal
direction and the significant sub block information of a decoded sub block that is
neighboring in the vertical direction and deriving a context used for decoding the
significant differential coefficient
information of the differential coefficient that is a decoding target based on the
index and the position of the differential coefficient that is the decoding target
in the sub block that is the decoding target.
1. Apicture decoding device that is configured to decode differential information between
a picture that is a decoding target and a picture that is a prediction target, the
picture decoding device comprising:
a partitioner that is configured to partition a differential coefficient region that
is a unit for an orthogonal transform into a plurality of sub blocks each having a
size of 4 x 4;
a scan controller that is configured to start scanning from a sub block disposed on
a lower rightmost side of the differential coefficient region and end scanning at
a sub block disposed on an upper leftmost side of the differential coefficient region;
a significant sub block information decoder that decodes significant sub block information
that represents whether or not all the values of differential coefficients belonging
to the sub block are zero, wherein the significant sub block information "1" represents
that at least one differential coefficient having a value other than "0" is present
in a sub block to be processed and the significant sub block information "0" represents
that all differential coefficients of the sub block to be processed are "0";
a significant differential coefficient information decoder that is configured to decode
significant differential coefficient information that represents whether or not the
value of the differential coefficient is zero;
a differential coefficient value decoder that is configured to decode the value of
the differential coefficient; and
a context deriver that is configured to identify a combination of significant sub
block information of a decoded sub block neighboring to a right side of the sub block
that is a decoding target and significant sub block information of a decoded sub block
neighboring to a lower side of the sub block that is the decoding target and derive
a context for decoding the significant differential coefficient information of the
differential coefficient that is the decoding target in the sub block that is the
decoding target, based on the identified combination and a position of the differential
coefficient that is the decoding target,
wherein the context deriver is configured to derive the context without referring
to the significant differential coefficient information that belongs to the sub block
that is the decoding target.
2. The picture decoding device according to claim 1, wherein the context deriver is configured
to identify the combination of the significant sub block information of the decoded
sub block neighboring to the right side of the sub block that is the decoding target
and the significant sub block information of the decoded sub block neighboring to
the lower side of the sub block that is the decoding target by determining which one
of combination applies:
the combination "00" in which the significant sub block information of the decoded
sub block neighboring to the right side is "0" and the significant sub block information
of the decoded sub block neighboring to the lower side is "0";
the combination "10" in which the significant sub block information of the decoded
sub block neighboring to the right side is "1" and the significant sub block information
of the decoded sub block neighboring to the lower side is "0";
the combination "01" in which the significant sub block information of the decoded
sub block neighboring to the right side is "0" and the significant sub block information
of the decoded sub block neighboring to the lower side is "1"; and
the combination "11" in which the significant sub block information of the decoded
sub block neighboring to the right side is "1" and the significant sub block information
of the decoded sub block neighboring to the lower side is "1".
3. The picture decoding device according to claim 2, wherein the context deriver is configured
to
determine the context based on either one of (1) a horizontal position of the differential
coefficient of the sub block that is the decoding target, (2) a vertical position
of the differential coefficient of the sub block that is the decoding target, and
(3) an additive value of the horizontal position and the vertical position and
switch, in accordance with the identified combination, determining the context based
on which one of values: (1) the horizontal position, (2) the vertical position, and
(3) the additive value of the horizontal position and the vertical position.
4. The picture decoding device according to claim 3, wherein the context deriver is configured
to determine the context based on either one of (1) the horizontal position of the
differential coefficient of the sub block that is the decoding target and (2) the
vertical position of the differential coefficient of the sub block that is the decoding
target, when the significant sub block information of the decoded sub block neighboring
to the right side and the significant sub block information of the decoded sub block
neighboring to the lower side are different.
5. The picture decoding device according to claim 4, wherein the context deriver is configured
to
determine the context based on (2) the vertical position of the differential coefficient
of the sub block that is the decoding target when the combination is "01" and
determine the context based on (1) the horizontal position of the differential coefficient
of the sub block that is the decoding target when the combination is "10".
6. The picture decoding device according to claim 1, wherein the context deriver is configured
to
calculate an index that is a sum of a value of the significant sub block information
of the decoded sub block neighboring to the right side and a value obtained by doubling
the significant sub block information of the decoded sub block neighboring to the
lower side and
identify the combination of the significant sub block information of the decoded sub
block neighboring to the right side and the significant sub block information of the
decoded sub block neighboring to the lower side by determining whether the index is
"0", '1", "2", or "3".
7. The picture decoding device according to claim 1, 2, 3, 4, 5 or 6, wherein the context
is further derived based on sub block position in the differential coefficient region.
8. A picture decoding method for decoding differential information between a picture
that is a decoding target and a picture that is a prediction target, the picture decoding
method comprising:
partitioning a differential coefficient region that is a unit for an orthogonal transform
into a plurality of sub blocks each having a size of 4 x 4;
starting scanning from a sub block disposed on a lower rightmost side of the differential
coefficient region and ending scanning at a sub block disposed on an upper leftmost
side of the differential coefficient region;
decoding significant sub block information that represents whether or not all the
values of differential coefficients belonging to the sub block are zero, wherein the
significant sub block information "1" represents that at least one differential coefficient
having a value other than "0" is present in a sub block to be processed and the significant
sub block information "0" represents that all differential coefficients of the sub
block to be processed are "0";
decoding significant differential coefficient information that represents whether
or not the value of the differential coefficient is zero;
decoding the value of the differential coefficient; and
identifying a combination of significant sub block information of a decoded sub block
neighboring to a right side of the sub block that is a decoding target and significant
sub block information of a decoded sub block neighboring to a lower side of the sub
block that is the decoding target and deriving a context for decoding the significant
differential coefficient information of the differential coefficient that is the decoding
target in the sub block that is the decoding target, based on the identified combination
and a position of the differential coefficient that is the decoding target,
wherein the deriving the context derives the context without referring to the significant
differential coefficient information that belongs to the sub block that is the decoding
target.
9. A picture coding device that is configured to code differential information between
a picture that is a coding target and a picture that is a prediction target, the picture
coding device comprising:
a partitioner that is configured to partition a differential coefficient region that
is a unit for an orthogonal transform into a plurality of sub blocks each having a
size of 4 x 4;
a scan controller that is configured to start scanning from a sub block disposed on
a lower rightmost side of the differential coefficient region and end scanning at
a sub block disposed on an upper leftmost side of the differential coefficient region;
a significant sub block information encoder that codes significant sub block information
that represents whether or not all the values of differential coefficients belonging
to the sub block are zero, wherein the significant sub block information "1" represents
that at least one differential coefficient having a value other than "0" is present
in a sub block to be processed and the significant sub block information "0" represents
that all differential coefficients of the sub block to be processed are "0";
a significant differential coefficient information encoder that is configured to code
significant differential coefficient information that represents whether or not the
value of the differential coefficient is zero;
a differential coefficient value encoder that is configured to code the value of the
differential coefficient; and
a context deriver that is configured to identify a combination of significant sub
block information of a coded sub block neighboring to a right side of the sub block
that is a coding target and significant sub block information of a coded sub block
neighboring to a lower side of the sub block that is the coding target and derive
a context for coding the significant differential coefficient information of the differential
coefficient that is the coding target in the sub block that is the coding target,
based on the identified combination and a position of the differential coefficient
that is the coding target,
wherein the context deriver is configured to derive the context without referring
to the significant differential coefficient information that belongs to the sub block
that is the coding target.
10. The picture coding device according to claim 9, wherein the context deriver is configured
to identify the combination of the significant sub block information of the coded
sub block neighboring to the right side of the sub block that is the coding target
and the significant sub block information of the coded sub block neighboring to the
lower side of the sub block that is the coding target by determining which one of
combination applies:
the combination "00" in which the significant sub block information of the coded sub
block neighboring to the right side is "0" and the significant sub block information
of the coded sub block neighboring to the lower side is "0";
the combination "10" in which the significant sub block information of the coded sub
block neighboring to the right side is "1" and the significant sub block information
of the coded sub block neighboring to the lower side is "0";
the combination "01" in which the significant sub block information of the coded sub
block neighboring to the right side is "0" and the significant sub block information
of the coded sub block neighboring to the lower side is "1"; and
the combination "11" in which the significant sub block information of the coded sub
block neighboring to the right side is "1" and the significant sub block information
of the coded sub block neighboring to the lower side is "1".
11. The picture coding device according to claim 10, wherein the context deriver is configured
to
determine the context based on either one of (1) a horizontal position of the differential
coefficient of the sub block that is the coding target, (2) a vertical position of
the differential coefficient of the sub block that is the coding target, and (3) an
additive value of the horizontal position and the vertical position and
switch, in accordance with the identified combination, determining the context based
on which one of values: (1) the horizontal position, (2) the vertical position, and
(3) the additive value of the horizontal position and the vertical position.
12. The picture coding device according to claim 11, wherein the context deriver is configured
to determine the context based on either one of (1) the horizontal position of the
differential coefficient of the sub block that is the coding target and (2) the vertical
position of the differential coefficient of the sub block that is the coding target,
when the significant sub block information of the coded sub block neighboring to the
right side and the significant sub block information of the coded sub block neighboring
to the lower side are different.
13. The picture coding device according to claim 12, wherein the context deriver is configured
to
determine the context based on (2) the vertical position of the differential coefficient
of the sub block that is the coding target when the combination is "01" and
determine the context based on (1) the horizontal position of the differential coefficient
of the sub block that is the coding target when the combination is "10".
14. The picture coding device according to claim 9, wherein the context deriver is configured
to
calculate an index that is a sum of a value of the significant sub block information
of the coded sub block neighboring to the right side and a value obtained by doubling
the significant sub block information of the coded sub block neighboring to the lower
side and
identify the combination of the significant sub block information of the coded sub
block neighboring to the right side and the significant sub block information of the
coded sub block neighboring to the lower side by determining whether the index is
"0", '1", "2", or "3".
15. The picture coding device according to claim 9, 10, 11, 12, 13 or 14, wherein the
context is further derived based on sub block position in the differential coefficient
region.
16. A picture coding method for coding differential information between a picture that
is a coding target and a picture that is a prediction target, the picture coding method
comprising:
partitioning a differential coefficient region that is a unit for an orthogonal transform
into a plurality of sub blocks each having a size of 4 x 4;
starting scanning from a sub block disposed on a lower rightmost side of the differential
coefficient region and ending scanning at a sub block disposed on an upper leftmost
side of the differential coefficient region;
coding significant sub block information that represents whether or not all the values
of differential coefficients belonging to the sub block are zero, wherein the significant
sub block information "1" represents that at least one differential coefficient having
a value other than "0" is present in a sub block to be processed and the significant
sub block information "0" represents that all differential coefficients of the sub
block to be processed are "0";
coding significant differential coefficient information that represents whether or
not the value of the differential coefficient is zero;
coding the value of the differential coefficient; and
identifying a combination of significant sub block information of a coded sub block
neighboring to a right side of the sub block that is a coding target and significant
sub block information of a coded sub block neighboring to a lower side of the sub
block that is the coding target and deriving a context for coding the significant
differential coefficient information of the differential coefficient that is the coding
target in the sub block that is the coding target, based on the identified combination
and a position of the differential coefficient that is the coding target,
wherein the deriving the context derives the context without referring to the significant
differential coefficient information that belongs to the sub block that is the coding
target.
17. A transmitting method for transmitting a bitstream formed by the picture coding method
according to claim 16.