A non-transitory computer readable recording medium having stored thereon a program for decoding a coded picture composed of blocks, on a block-by-block basis, said program causing a computer to execute a method comprising:
- dividing a coded stream including the coded picture into a plurality of divided coded streams;
- decoding, by a plurality of decoding units in parallel, images of regions in the coded picture that are each included in a different one of the plurality of divided coded streams and associated with a different one of the plurality of decoding units, by repeating decoding of a decoding target block by referencing information on an already decoded block in a neighborhood of the decoding target block as neighborhood information;
- transferring, for each of the plurality of decoding units, neighborhood information that is to be referenced by the decoding unit and is generated by an other one of the plurality of decoding units, from the other decoding unit to the decoding unit as transfer target neighborhood information;
- and
- detecting, for each of the plurality of decoding units, whether or not the transfer target neighborhood information that is to be referenced when decoding a decoding target block positioned at an edge of a region associated with the decoding unit has been transferred to the decoding unit,
- wherein when each of the plurality of decoding units decodes an image of a region associated with the decoding unit, the decoding target block positioned at the edge of the region associated with the decoding unit is decoded when detecting that the transfer target neighborhood information has been transferred to the decoding unit,
- wherein a boundary line between the regions is orthogonal to a decoding direction corresponding to an order in which blocks adjacent to each other are sequentially decoded,
- wherein the plurality of decoding units include a first decoding unit and a second decoding unit,
- wherein said transferring includes transferring the transfer target neighborhood information generated by the first decoding unit to the second decoding unit and transferring the transfer target neighborhood information generated by the second decoding unit to the first decoding unit by (i) transferring the transfer target neighborhood information generated by the first decoding unit to a first memory bank, (ii) transferring the transfer target neighborhood information generated by the second decoding unit to a second memory bank, and (iii) performing bank switching between the first memory bank and the second memory bank to enable (a) the transfer target neighborhood information generated by the first decoding unit to be shared by the second decoding unit and (b) the transfer target neighborhood information generated by the second decoding unit to be shared by the first decoding unit, and
- wherein said detecting includes (i) detecting that the transfer target neighborhood information generated by the first decoding unit has been transferred to the second decoding unit when the transfer target neighborhood information generated by the first decoding unit is stored into the first memory bank and (ii) detecting that the transfer target neighborhood information generated by the second decoding unit has been transferred to the first decoding unit when the transfer target neighborhood information generated by the second decoding unit is stored into the second memory bank.