Method and apparatus for signaling intra prediction for large blocks for video encoders and decoders

By selecting the basic encoding unit size for the video encoding and decoder and allocating a single space intra-partition type, hierarchical intra-prediction is achieved, and the problems of over-signaling and low-prediction mode selection efficiency in large-block video encoding are solved, and encoding efficiency and accuracy are improved.

JP2025020166AActive Publication Date: 2025-02-12INTERDIGITAL VC HOLDINGS INC

Patent Information

Application Number
JP2024182357
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2009-07-01
Filing Date
2024-10-18
Publication Date
2025-02-12
Estimated Expiration
2030-06-29

AI Technical Summary

Technical Problem

When handling large block Intra32×32 or Intra64×64, existing video encoding standards have problems such as excessive signaling and inability to effectively apply existing signaling methods, especially lacking efficient methods in large block segmentation and prediction mode selection.

Method used

A method and device are adopted to realize hierarchical intra-layer prediction by selecting the basic coding unit size for the large-block video encoding and decoder and allocating a single space intra-partition type to it, allowing the large-block size to be divided into the basic coding unit and recombined, and advanced in-layer prediction is adopted.

Benefits of technology

It effectively solves the problem of oversignaling in large-block video encoding and decoding, improves encoding efficiency and prediction accuracy, and is suitable for the extended and other video encoding standards of the MPEG-4 AVC standard.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025020166000001_ABST
    Figure 2025020166000001_ABST
Patent Text Reader

Abstract

To provide a method and an apparatus for signaling intra prediction for large blocks for video encoders and decoders.SOLUTION: An apparatus includes a video encoder 400 for encoding picture data by signaling intra prediction for at least one large block in a picture. The intra prediction is signaled by selecting a base coding unit size and assigning a single spatial intra partition type for the base coding unit size. The single spatial intra partition type is selectable from a plurality of spatial intra partition types. The intra prediction is a hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the base coding unit size and combining from the base coding unit size to the large block size.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Provisional Patent Application No. 61 / 222,177 (filed July 1, 2009, Attorney Docket No. PU090082), the contents of which are incorporated herein by reference in their entirety.

[0002] FIELD OF THE PREFERRED EMBODIMENTS The present principles relate generally to video encoding and decoding, and more particularly to methods and apparatus for signaling intra prediction for large blocks for video encoders and decoders. [Background technology]

[0003] Recent video coding standards employ various coding modes to effectively reduce correlation between spatial and temporal domains. For example, in the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10, Advanced Video Coding (AVC) Standard / International Telecommunication Union Telecommunication Sector (ITU-T) H.264 Recommendation (hereafter referred to as the MPEG-4AVD Standard), video can be intraframe coded or interframe coded. In intra pictures, all macroblocks are coded in intra mode, so that spatial correlation within a picture can be exploited. The intra modes can be classified into three types: INTRA4×4, INTRA8×8, and INTRA16×16. INTRA4×4 and INTRA8×8 support nine INTRA prediction modes, while INTRA16×16 supports four intra prediction modes.

[0004] INTRA4x4 and INTRA8x8 support nine intra prediction modes: vertical, horizontal, DC, diagonal left bottom, diagonal right bottom, vertical left, horizontal bottom, vertical right, horizontal top prediction. INTRA16x16 supports four intra prediction modes: vertical, horizontal, DC, planar prediction. With reference to FIG. 1, INTRA4x4 and INTRA8x8 prediction modes are generally indicated by reference number 100. In FIG. 1, reference number 0 indicates vertical prediction mode, reference number 1 indicates horizontal prediction mode, reference number 3 indicates diagonal left bottom mode, reference number 4 indicates diagonal right bottom prediction mode, reference number 5 indicates vertical right prediction mode, reference number 6 indicates horizontal bottom prediction mode, reference number 7 indicates vertical left prediction mode, and reference number 8 indicates horizontal top prediction mode. DC mode is part of the INTRA4x4 and INTRA8x8 prediction modes and is not shown. Referring to Figure 2, the INTRA 16x16 prediction modes are generally indicated by the reference numeral 200. In Figure 2, reference numeral 0 indicates vertical prediction mode, reference numeral 1 indicates horizontal prediction mode 1 and reference numeral 3 indicates planar prediction mode. DC mode is part of the INTRA 16x16 prediction modes and is not shown.

[0005] INTRA4×4 uses a 4×4 discrete cosine transform (DCT). INTRA8×8 uses an 8×8 transform. INTRA16×16 uses a concatenated 4×4 transform. For signaling purposes, INTRA4×4 and INTRA8×8 share the same macroblock type (mb_type) 0 and are differentiated by a transform size flag (transform_8×8_size_flag). And the selection of intra prediction mode for INTRA4×4 or INTRA8×8 is signaled by the most probable mode along with possibly the remaining modes, if necessary. For INTRA16×16, all intra prediction modes are signaled in mb_type along with the coded block pattern (cbp) type, which uses mb_type values ​​1 to 24. Table 1 shows the detailed signaling for macroblock types for intra coded slices (I slices). When block sizes larger than 16×16 are used for intra prediction, several possible challenges are faced as follows:

[0006] (1) If INTRA32x32 or INTRA64x64 prediction is added by simply extending the mb_type of the MPEG-4 AVC standard, it will cause excessive overhead for these two new modes and will not allow hierarchical intra prediction. A concrete example of hierarchical intra prediction is explained as follows: If a 32x32 block is used as a large block and sub-partitions are allowed as 16x16, then for each 16x16 sub-partition, INTRA4x4, INTRA8x8, INTRA16x16 should be allowed. (2) If a larger size transform (such as a 16x16 transform) is used for INTRA16x16 instead of the cascaded transform, the current signaling is not applicable. (3) It is necessary to give different priorities to intra prediction modes within one intra partition type.

[0007] [Table 1]

[0008] There are several prior art approaches for signaling large motion (inter) partitions in the MPEG-4 AVC standard extensions. One example of how large motion (inter) partitions are signaled in the MPEG-4 AVC standard extensions is described with respect to a first prior art approach, which describes how the signaling is done per 32x32 or 64x64 blocks using a hierarchical coding structure.

[0009] Furthermore, in addition to the existing motion partition sizes in the MPEG-4 AVC standard (16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4), inter-coding has also been proposed as an extension to the MPEG-4 AVC standard using 32x32, 32x16, and 16x32 partitions. Referring to FIG. 3, motion partitions used for 32x32 blocks are generally indicated by reference numeral 300. The partitions include 32x32, 32x16, 16x32, and 16x16. The 16x16 partitions can be further subdivided into partitions of size 16x16, 16x8, 8x16, and 8x8. The 8x8 partitions can be further subdivided into partitions of size 8x8, 8x4, 4x8, and 4x4.

[0010] For each 32x32 block, SKIP or DIRECT mode is signaled in the same manner as it is done for other modes in the MPEG-4 AVC standard using mb32_skip_flag. Furthermore, the original mb_type for MxN (M=8 or 16 and N=8 or 16) partitions in the MPEG-4 AVC standard is also used to signal 2Mx2N partitions of a 32x32 block. If the 32x32 mb32_type indicates that a 16x16 partition is used, four 16x16 blocks are signaled in raster scan order by using the same syntax elements as macroblock_layer() in the MPEG-4 AVC standard. Each 16x16 block can be further divided in a quadtree manner from size 16x16 down to size 4x4.

[0011] For a macroblock size of 64x64, in addition to the partitions used for 32x32 blocks, the following partitions are added: 64x64, 64x32, 32x64. Thus, another hierarchical layer is added to the macroblock partitions in addition to the block size 32x32. To signal the 4Mx4N macroblock partitions of a 64x64 macroblock, the original mb_type for MxN (M=8 or 16 and N=8 or 16) macroblock partitions of the MPEG-4 AVC standard is used. When a 32x32 macroblock partition is used for a 64x64 block, each 32x32 block is processed in a similar manner as described above.

[0012] However, the existing literature does not address the issue of how large intra modes are signaled if large intra modes are defined to mean intra prediction with partition blocks of size equal to or larger than 32 × 32. Summary of the Invention

[0013] SUMMARY OF THE DISCLOSURE These and other drawbacks and disadvantages of the prior art are addressed by the principles of the present invention, which are directed to methods and apparatus for signaling intra prediction for large blocks for video encoders and decoders.

[0014] According to an aspect of the present principles, there is provided an apparatus, including a video encoder for encoding picture data for at least one large block in a picture by signaling intra prediction for the at least one large block. The intra prediction is signaled by selecting a base coding unit size and assigning a single spatial intra partition type for the base coding unit size. The single spatial intra partition type is selectable from a plurality of spatial intra partition types. The at least one large block has a large block size that is larger than a block size of the base coding unit. The intra prediction is a hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the base coding unit size and combining from the base coding unit size to the large block size.

[0015] According to another aspect of the present principles, there is provided a method in a video encoder, the method including: encoding picture data for at least one large block in a picture by signaling intra prediction for the at least one large block. The intra prediction is signaled by selecting a base coding unit size and assigning a single spatial intra partition type for the base coding unit size. The single spatial intra partition type is selectable from a plurality of spatial intra partition types. The at least one large block has a large block size that is larger than a block size of the base coding unit. The intra prediction is a hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the base coding unit size and combining from the base coding unit size to the large block size.

[0016] According to yet another aspect of the present principles, there is provided an apparatus, including a video decoder for decoding picture data for at least one large block in a picture by determining that intra prediction should be performed for the at least one large block. The intra prediction is determined by determining a basic coding unit size and determining a single spatial intra partition type for the basic coding unit size. The single spatial intra partition type is determinable from a plurality of spatial intra partition types. The at least one large block has a large block size that is larger than a block size of the basic coding unit. The intra prediction is a hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the basic coding unit size and combining from the basic coding unit size to the large block size.

[0017] According to yet another aspect of the present principles, there is provided a method in a video decoder, the method including: decoding picture data for at least one large block in a picture by determining that intra prediction should be performed for the at least one large block. The intra prediction is determined by determining a base coding unit size and determining a single spatial intra partition type for the base coding unit size. The single spatial intra partition type is determinable from a plurality of spatial intra partition types. The at least one large block has a large block size that is larger than a block size of the base coding unit. The intra prediction is a hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the base coding unit size and combining from the base coding unit size to the large block size.

[0018] The above and other aspects, features and advantages of the present principles will become apparent from the following detailed description of illustrative embodiments, which are to be taken in connection with the accompanying drawings. [Brief description of the drawings]

[0019] The principles of the present invention can be better understood with reference to the following illustrative drawings. [Figure 1] FIG. 2 is a schematic diagram illustrating INTRA4×4 and INTRA8×8 prediction modes to which the present principles can be applied; [Diagram 2] FIG. 2 is a schematic diagram illustrating an INTRA 16×16 prediction mode to which the present principles can be applied; [Diagram 3] FIG. 2 is a schematic diagram showing operation partitions for a 32×32 block to which the principles of the present invention can be applied; [Figure 4] 1 is a block diagram for an exemplary video encoder to which the present principles may be applied, in accordance with an embodiment of the present principles; [Diagram 5]1 is a block diagram for an exemplary video decoder to which the present principles may be applied, in accordance with an embodiment of the present principles; [Figure 6] 1 is a block diagram of an exemplary hierarchical partition to which the present principles may be applied, in accordance with an embodiment of the present principles; [Figure 7A] FIG. 1 shows a flow diagram for an exemplary method for encoding picture data for large blocks by signaling intra prediction for the large blocks, in accordance with an embodiment of the present principles; [Figure 7B] FIG. 1 shows a flow diagram for an exemplary method for encoding picture data for large blocks by signaling intra prediction for the large blocks, in accordance with an embodiment of the present principles; [Figure 8A] FIG. 1 shows a flow diagram illustrating an exemplary method for decoding picture data for a large block by determining that intra prediction should be applied to the large block, in accordance with an embodiment of the present principles. [Figure 8B] FIG. 1 shows a flow diagram illustrating an exemplary method for decoding picture data for a large block by determining that intra prediction should be applied to the large block, in accordance with an embodiment of the present principles. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0020] The present principles are directed to methods and apparatus for signaling intra prediction for large blocks for video encoders and video decoders.

[0021] The present description describes the principles of the invention, and it will be appreciated that those skilled in the art can devise various arrangements which, although not explicitly described or shown herein, employ the principles of the invention and fall within its spirit and scope.

[0022] All specific examples and conditional language recited in this specification are intended for educational purposes to aid the reader in understanding the principles and concepts of the present invention provided by the inventor(s) to advance the art, and should be construed as being without limitation to such specific examples and conditions recited.

[0023] Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof, both currently known and future developed equivalents, i.e., any elements developed that perform the same function, regardless of structure.

[0024] Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like, whether or not a computer or processor is explicitly depicted, may be sufficiently represented on a computer-readable medium to represent various processes so performed by a computer or processor.

[0025] The functions of the various elements illustrated in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by multiple individual processors, some of which may be shared. Additionally, explicit use of the terms "processor" or "controller" should not be construed as referring only to hardware capable of executing software, but implicitly includes, but is not limited to, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage.

[0026] Other hardware, conventional and / or custom, may be included. Similarly, any switches shown are conceptual only. Their functions may be performed through operation of program logic, through dedicated logic, through an interaction of program control and dedicated logic, or even manually, with the particular technique being selectable by the implementer, as more fully understood from the context.

[0027] In the claims herein, any element expressed as a means for performing a certain function is intended to include any way of performing that function, including, for example, a) a combination of circuit elements that perform that function, or b) any form of software, including firmware, microcode, etc., combined with appropriate circuitry for executing the software that performs that function. The inventive principle as defined by the claims resides in the fact that the functionality provided by the various recited means is combined and combined in the manner called for by the claims. Thus, any means that can provide those functionality are regarded as equivalent as shown herein.

[0028] References in the specification to "one embodiment" or "an embodiment" of the present principles, as well as other variations thereof, mean that a particular feature, structure, characteristic, etc. described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout the specification, as well as any other variations thereof, are not necessarily all referring to the same embodiment.

[0029] For example, the use of any of the following words " / ", "and / or", and "at least one of" in the context of "A / B", "A and / or B", and "at least one of A and B" should be understood to mean the selection of only the first listed option (A), the selection of only the second listed option (B), or the selection of both options (A and B). As another example, the phrases "A, B and / or C" and "at least one of A, B, and C" are intended to mean the selection of only the first listed option (A), the selection of only the second listed option (B), the selection of only the third listed option (C), the selection of only the first and second listed options (A and B), the selection of only the first and third listed options (A and C), the selection of only the second and third listed options (B and C), or the selection of all three options (A, B, and C). The above can be extended to many of the items listed, as will be readily apparent to those of ordinary skill in this and related arts.

[0030] Furthermore, while one or more embodiments of the present principles are described herein with respect to an extension to the MPEG-4 AVC standard, it should be understood that the present principles are not limited to only this extension and / or this standard and may be utilized with respect to other video coding standards, recommendations, and extensions thereof while maintaining the spirit and scope of the present principles.

[0031] As used herein, "high level syntax" refers to syntax present in the bitstream that resides above the macroblock layer. For example, high level syntax as used herein may refer to, but is not limited to, slice header level syntax, supplemental enhancement information (SEI) level syntax, picture parameter set (PPS) level syntax, sequence parameter set (SPS) level syntax, and network abstraction layer (NAL) unit header level syntax.

[0032] Further, as used herein, the terms "picture" and "image" are used interchangeably and refer to a still image or a picture from a video sequence. As is well known, a picture may be a frame or a field.

[0033] Further, as used herein, the term "signaling" refers to indicating something to a corresponding decoder. For example, an encoder can signal that intra prediction is specified to be used for a particular large block (defined herein) to inform the decoder which particular prediction type (e.g., intra or inter) was used at the encoder side. In this way, the same prediction type can be used at both the encoder side and the decoder side. Thus, for example, an encoder can send an indication (i.e., a signal) for a particular large block that intra prediction should be performed on the large block, simply so that the decoder knows and can select the same prediction type for the large block. It should be understood that signaling can be realized in various manners. For example, one or more syntax elements, flags, etc. may be used to signal information to a corresponding decoder.

[0034] Turning to FIG. 4, an exemplary video encoder to which the present principles may be applied, in accordance with an embodiment of the present principles, is indicated generally by the reference numeral 400 .

[0035] The video encoder 400 includes a frame reordering buffer 410 having an output in signal communication with a non-inverting input of a combiner 485. The output of the combiner 485 is connected in signal communication with a first input of a transformer and quantizer 425. The output of the transformer and quantizer 425 is connected in signal communication with a first input of an entropy coder 445 and a first input of an inverse transformer and quantizer 450. The output of the entropy coder 445 is connected in signal communication with a first non-inverting input of a combiner 490. The output of the combiner 490 is connected in signal communication with a first input of an output buffer 435.

[0036] A first output of the encoder controller 405 is connected in signal communication with a second input of the frame ordering buffer 410, a second input of the inverse transformer and inverse quantizer 450, an input of the picture type decision module 415, an input of the macroblock type (MB-type) decision module 420, a second input of the ultra intra prediction module 460, a second input of the deblocking filter 465, a first input of the motion compensation means 470, a first input of the motion prediction means 475, and a second input of the reference picture buffer 480.

[0037] A second output of the encoder controller 405 is connected in signal communication with a first input of a supplemental enhancement information (SEI) inserter 430, a second input of the transformer and quantizer 425, a second input of the entropy coder 445, a second input of the output buffer 435, and an input of a sequence parameter set (SPS) and picture parameter set (PPS) inserter 440.

[0038] A first output of the picture-type decision module 415 is connected in signal communication with a third input of the frame ordering buffer 410. A second output of the picture-type decision module 415 is connected in signal communication with a second input of a macroblock-type decision module 420.

[0039] An output of the sequence parameter set (SPS) and picture parameter set (PPS) inserter 440 is connected in signal communication with a third non-inverting input of the combiner 490 .

[0040] An output of the inverse quantizer and inverse transformer 450 is connected in signal communication with a first non-inverting input of a combiner 419. An output of the combiner 419 is connected in signal communication with a first input of an ultra intra prediction module 460 and a first input of a deblocking filter 465. An output of the deblocking filter 465 is connected in signal communication with a first input of a reference picture buffer 480. An output of the reference picture buffer 480 is connected in signal communication with a second input of a motion estimator 475. A first output of the motion estimator 475 is connected in signal communication with a second input of the motion compensation means 470. A second output of the motion estimator 475 is connected in signal communication with a third input of the entropy coder 445.

[0041] An output of the motion compensator 470 is connected in signal communication with a first input of a switch 497. An output of the ultra intra prediction module 460 is connected in signal communication with a second input of the switch 497. An output of the macroblock-type decision module 420 is connected in signal communication with a third input of the switch 497. The third input of the switch 497 determines whether the “data” input of the switch (compared to the control input, i.e., third input) should be provided by the motion compensator 470 or the ultra intra prediction module 460. An output of the switch 497 is connected in signal communication with a second non-inverting input of the combiner 419 and an inverting input of the combiner 485.

[0042] The inputs of the frame ordering buffer 410 and the encoder controller 405 are available as inputs of the encoder 400 for receiving the input pictures 401. Also, an input of the supplemental enhancement information (SEI) inserter 430 is available as an input of the encoder 400 for receiving metadata. An output of the output buffer 435 is available as an output of the encoder 400 for outputting a bitstream.

[0043] Turning to FIG. 5, an exemplary video decoder to which the present principles may be applied, in accordance with an embodiment of the present principles, is indicated generally by the reference numeral 500 .

[0044] The video decoder 500 includes an input buffer 510 having an output connected in signal communication with a first input of an entropy decoder 545. The first output of the entropy decoder 545 is connected in signal communication with a first input of an inverse transformer and inverse quantizer 550. The output of the inverse transformer and inverse quantizer 550 is connected in signal communication with a second non-inverting input of a combiner 525. The output of the combiner 525 is connected in signal communication with a second input of a deblocking filter 565 and a first input of the ultra intra prediction module 560. A second output of the deblocking filter 565 is connected in signal communication with a first input of a reference picture buffer 580. An output of the reference picture buffer 580 is connected in signal communication with a second input of a motion compensation module 570.

[0045] A second output of the entropy decoder 545 is connected in signal communication with a third input of the motion compensation means 570 and a first input of the deblocking filter 565. A third output of the entropy decoder 545 is connected in signal communication with an input of the decoder controller 505. A first output of the decoder controller 505 is connected in signal communication with a second input of the entropy decoder 545. A second output of the decoder controller 505 is connected in signal communication with a second input of the inverse transformer and inverse quantizer 550. A third output of the decoder controller 505 is connected in signal communication with a third input of the deblocking filter 565. A fourth output of the decoder controller 505 is connected in signal communication with a second input of the super intra prediction module 560, a first input of the motion compensation means 570, and a second input of the reference picture buffer 580.

[0046] An output of the motion compensation means 570 is connected in signal communication with a first input of a switch 597. An output of the ultra intra prediction module 560 is connected in signal communication with a second input of the switch 597. An output of the switch 597 is connected in signal communication with a first non-inverting input of the combiner 525.

[0047] An input of the input buffer 510 is available as an input of the decoder 500 for receiving an input bitstream. A first output of the deblocking filter 565 is available as an output of the decoder 500 for outputting an output picture.

[0048] As noted above, the present principles are directed to methods and apparatus for signaling intra prediction for large blocks for video encoders and decoders. Also, as noted above, large blocks to which the present principles can be applied are defined to mean blocks of size equal to or greater than 32×32.

[0049] In one embodiment, for ease of reference, the signaling of intra prediction is split into two parts: sip_type (spatial intra partition type, which may be INTRA4×4, INTRA8×8, INTRA16×16, etc.), and intra prediction mode (intra_pred_mode) within each sip_type (e.g., 9 intra prediction modes within INTRA4×4 and INTRA8×8). More specifically related to a specific embodiment, we propose the following three rules of the principles of the invention: (1) select a basic coding unit; (2) enable hierarchical layer intra prediction by splitting from the most intra prediction types or combining from the basic coding units; and (3) assign higher priority to the most frequently used intra prediction mode (intra_pred_mode) for each sip_type. Regarding rule (1), we allow multiple sip_types (spatial intra partition types) for a basic coding unit. EXAMPLES

[0050] In one embodiment, the basic coding unit is set to 16x16. In this coding unit, sip_type (spatial intra partition type) can be INTRA4x4, INTRA8x8, INTRA16x16. Furthermore, hierarchical layer intra prediction is enabled as shown in FIG. 6.

[0051] 6, an exemplary hierarchical partition to which the principles of the present invention may be applied is generally indicated by reference numeral 600. In this embodiment, when the maximum block size is set to 64x64, "signaling partitioning" is utilized to enable hierarchical layer intra prediction. That is, in one embodiment, add intra64_flag. If intra64_flag is equal to 1, then INTRA64x64 is used. Alternatively, if intra64_flag is equal to 0, split the 64x64 block 611 into four 32x32 blocks 621. For each 32x32 block 621, add intra32_flag. If intra32_flag is equal to 1, then INTRA32x32 is used. Alternatively, if intra32_flag is equal to 0, then all sip_types (spatial intra partition types) allowed for 16x16 elementary coding units are allowed here as well (i.e., for 32x32 blocks 621). For the INTRA 16x16 intra prediction mode (intra_pred_mode), there are DC mode and directional mode, the latter enabling different types of directional prediction by transmitting mode information. Thus, the 32x32 intra prediction block 621 can be further divided into four 16x16 intra prediction blocks 631. One or more of the four 16x16 intra prediction blocks 631 can be further divided into DC mode (not shown), 16x16 mode 641, 8x8 mode 651, and 4x4 mode 661. In this embodiment, it is assumed that there are four 16x16 intra prediction modes: DC, horizontal (HOR), vertical (VER), and multi-directional (Multi-DIR). The intra prediction mode (intra_pred_mode) is signaled taking into account the priority of each mode. Since DC mode is used more frequently than other modes in INTRA16x16, add INTRA16x16_DC to the sip_type (spatial intra partition type) table before INTRA16x16, and remove the most probable mode indication in the intra prediction mode (intra_pred_mode) for INTRA16x16.Instead, the other three modes (16x16, 8x8, 4x4) are guaranteed to be displayed.

[0052] Syntax Tables 2 and 3 provide specific examples of syntax for this embodiment. In particular, Table 2 shows an exemplary specification of sip type (spatial intra partition type) for a 16x16 coding unit in accordance with an embodiment of the present principles, and Table 3 shows exemplary INTRA16x16 prediction modes in accordance with an embodiment of the present principles. For INTRA32x32 / INTRA64x64, the same modes as INTRA16x16 are used. For signaling, replace the most probable mode indication with intra32_DC_flag and intra64_DC flag, since DC is used most frequently. And code other intra prediction modes (intra_pred_mode) reliably.

[0053] Since the intra prediction mode (intra_pred_mode) signaling for INTRA4x4 and INTRA8x8 can be performed exactly as in the MPEG-4 AVC standard, these modes will not be listed in either table.

[0054] [Table 2]

[0055] [Table 3] Table 4 shows an exemplary macroblock layer syntax, in accordance with an embodiment of the present principles.

[0056] [Table 4]

[0057] The semantics of some syntax elements in Table 4 are as follows: Intra64_flag equal to 1 specifies that INTRA64x64 is used. Intra64_flag equal to 0 specifies that 64x64 big blocks are further divided into 32x32 partitions. Intra64_DC_flag equal to 1 specifies that intra_pred_mode for INTRA64x64 is DC mode. Intra64_DC_flag equal to 0 specifies that intra_pred_mode for INTRA64x64 is not DC mode. The intra_pred_mode_64 specifies the intra prediction mode (not including DC mode) for INTRA64×64. Intra64_multidir_index specifies the angle exponent for INTRA64x64 Multi_Dir mode. intra32_flag[i] equal to 1 specifies that INTRA32x32 is used for the i-th 32x32 big block. Intra32_flag[i] equal to 0 specifies that the i-th 32x32 big block is further divided into 16x16 partitions. intra32_DC_flag[i] equal to 1 specifies that intra_pred_mode is the DC mode for INTRA32x32 for the i-th 32x32 block. intra32_DC_flag[i] equal to 0 specifies that intra_pred_mode is not the DC mode for INTRA32x32 for the i-th 32x32 block. intra_pred_mode_32[i] specifies the intra prediction mode (not including DC mode) for INTRA32×32 for the i-th 32×32 large block. Intra32_multidir_index specifies the angle index for INTRA32x32 Multi_Dir mode. sip_type[i] specifies the spatial intra-partition type for the i-th 16x16 block basic block coding unit. Intra_pred_mode_16[i] specifies the intra prediction mode (not including DC mode) for INTRA16x16 for the i-th 16x16 block. Intra16_multidir_index specifies the angle index for the INTRA16x16 Multi_Dir mode for the i-th 16x16 block. EXAMPLES

[0058] In other embodiments, the larger block units are selected to be 32x32 or 64x64, as appropriate. The selection can be signaled using one or more high-level syntax elements. In one embodiment, if 32x32 is selected, simply remove all syntax related to 64x64.

[0059] In other embodiments, hierarchical layer intra prediction may involve combining from basic coding units. For example, if the largest block unit is 64×64 and the basic coding unit is 16×16, one flag (is_all_16×16_coding) is used to indicate "if all 16×16 blocks in one 64×64 block are 16×16 coding type". If (is_all_16×16_coding) is equal to 1, this indicates that 16×16 coding type is used, and the signaling is stopped. Otherwise, one flag (is_all_32×32_coding) is used to indicate if all 32×32 blocks in one 64×64 block are 32×32 coding type. If (is_all_32×32_coding) is equal to 1, this indicates that all 32×32 blocks in one 64×64 block are 32×32 coding type. Otherwise, if (is_all_32x32_coding) and (is_all_16x16_coding) are equal to 0, this indicates that INTRA64x64 is used.

[0060] In another embodiment, a SIP type (spatial intra partition type) is introduced for block units of size 16x16 or larger (large_sip_type). The three types are: large_intra_16x16; large_intra_32x32; large_intra_64x64. large_intra_16x16 means that all 16x16 blocks in one large block are of 16x16 coding type. large_intra_32x32 means that all 32x32 blocks in one large block are of 32x32 coding type. In one embodiment, large_intra_32x32 can be combined with the above embodiment together with intra32_flag to enable hierarchical intra prediction. large_intra_64x64 means that all 64x64 blocks in one large block are coded as INTRA64x64.

[0061] In other embodiments, multiple sip / mode tables can be introduced. The tables can be pre-stored in both the encoder and the decoder, or the tables can be user-specified and transmitted using one or more high-level syntax elements. Table 5 shows an exemplary macroblock layer syntax in accordance with one embodiment of the present principles.

[0062] [Table 5]

[0063] The semantics of some syntax elements in Table 5 are as follows: A value of 1 (is_all_16x16_coding) specifies that all 16x16 blocks within one big block are coded with the 16x16 coding type. A value of 0 (is_all_16x16_coding) specifies that no big blocks are coded with the 16x16 coding type. A value of 1 (is_all_32x32_coding) specifies that all 32x32 blocks within one big block are coded with the 32x32 coding type. A value of 0 (is_all_32x32_coding) specifies that no big blocks are coded with the 32x32 coding type.

[0064] 7A and 7B, both of which depict an exemplary method for encoding picture data for a large block by signaling intra prediction for the large block, generally designated by the reference numeral 700. The method 700 includes a start block 705 that passes control to a function block 710. The function block 710 performs initialization and passes control to a loop limit block 715. The loop limit block 715 loops through 64x64 blocks (i.e., blocks having a block size of 64x64) (also referred to hereinafter as "loop 1") and passes control to a function block 785 and a loop limit block 720.

[0065] The function block 785 makes an Intra64×64 mode decision, sets the Intra64_DC flag based on the RD64 (i.e., the rate-distortion resulting from the Intra64×64 mode decision), and passes control to the decision block 770 .

[0066] The loop limit block 720 loops through four 32x32 blocks (i.e., four blocks having a block size of 32x32 resulting from processing the current 64x64 block through loop 1) (hereinafter also referred to as "loop 2") and passes control to the control block 790 and the loop limit block 725.

[0067] Function block 790 performs Intra32×32 mode determination, sets the Intra32_DC flag based on RD32 (i.e., the rate distortion resulting from Intra32×32 mode determination), and passes the control to decision block 750.

[0068] Loop end block 725 applies four 16×16 blocks (i.e., blocks having a 16×16 block size and obtained by processing the current 32×32 block by loop 2) to a loop (hereinafter also referred to as "loop 3"), and passes the control to function block 730 and function block 735.

[0069] Function block 730 determines the Intra16×16_DC mode and passes the control to function block 740. Function block 735 determines other 16×16 modes (i.e., other than Intra16×16_DC) and lower modes (e.g., 8×8, 4×4, etc.) and passes the control to function block 740.

[0070] Function block 740 performs 16×16 mode determination based on RD16 (i.e., the rate distortion resulting from intra16×16 mode determination), and then accumulates the RD16 of each 16×16 block to obtain TotRD16 (indicating the total rate distortion of the entire 32×32 block when encoded by four 16×16 blocks), and passes the control to loop end block 745. Loop end block 745 closes the loop of 16×16 blocks (i.e., "loop 3") and passes the control to decision block 750.

[0071] Decision block 750 determines whether RD32 < TotRD16 (i.e., whether the rate distortion cost for the current 32×32 block is less than the total rate distortion cost for the four 16×16 blocks obtained from the current 32×32 block). If so, the control is passed to function block 755. Otherwise, the control is passed to function block 742.

[0072] Functional block 755 sets Intra32_flag equal to 1 and passes control to functional block 760. Functional block 742 sets Intra32_flag equal to 0 and passes control to functional block 760.

[0073] Functional block 760 sets the accumulation of RD32 for each 32×32 block to TotRD32, displays the total rate distortion of the entire 64×64 block when encoded by four 32×32 blocks, and passes control to loop end block 765. Loop end block 765 closes the loop of the 32×32 block (i.e., loop 2) and passes control to decision block 770.

[0074] Decision block 770 determines whether RD64 < TotRD32 (i.e., whether the rate distortion cost for the current 64×64 block is less than the total rate distortion cost for the four 32×32 blocks obtained from the current 64×64 block). If so, control is passed to functional block 775. Otherwise, control is passed to functional block 780.

[0075] Functional block 775 sets Intra64_flag equal to 1 and passes control to loop end block 795. Functional block 780 sets Intra64_flag equal to 0 and passes control to functional block 795.

[0076] Functional block 795 closes the loop of the 64×64 block (i.e., loop 1) and passes control to functional block 797. Functional block 797 entropy encodes the flag, intra prediction mode (intra_pred_mode), and residue and passes control to end block 99.

[0077] 8A and 8B, both of which depict an exemplary method for decoding picture data for a large block by determining that intra prediction should be applied to the large block, generally designated by the reference numeral 800. The method 800 includes a start block 805 that passes control to a function block 808. The function block 808 initializes the decoder and then passes control to a function block 810. The function block 810 parses the bitstream and passes control to a loop limit block 815. The loop limit block 815 loops through the 64x64 blocks (hereinafter "loop 1") and passes control to a decision block 820. The decision block 820 determines whether Intra64_flag is set equal to 1. If so, control is passed to a function block 885. Otherwise, control is passed to a loop limit block 825.

[0078] Function block 885 is intra64_DC 8. The function block 887 determines whether the flag is set equal to 1. If so, control is passed to a function block 887. Otherwise, control is passed to a function block 888. The function block 887 performs intra64x64 DC prediction, then passes control to a function block 890. The function block 888 performs intra64x64 prediction other than the intra64x64 DC mode, then passes control to a control block 890. The function block 890 decodes the current 64x64 block and passes control to the loop limit block 880. The loop limit block 880 closes the loop of 64x64 blocks (i.e., loop 1) and passes control to an end block 899.

[0079] The loop limit block 825 loops through four 32×32 blocks (hereinafter referred to as “loop 2”) and passes control to a decision block 830. The decision block 830 determines whether Intra32_flag is equal to 1. If so, control is passed to a function block 835. Otherwise, control is passed to a loop limit block 845.

[0080] The function block 835 determines whether Intra32_DC_flag is equal to 1. If so, control is passed to a function block 837. Otherwise, control is passed to a function block 838. The function block 837 performs intra32x32 DC prediction and passes control to a function block 840. The function block 838 performs intra prediction other than the intra32x32 DC mode and then passes control to the function block 840. The function block 840 decodes the 32x32 block and passes control to a loop limit block 875.

[0081] The loop limit block 875 closes the loop of 32×32 blocks (i.e., loop 2), and passes control to a loop limit block 880.

[0082] The loop limit block 845 loops through the four 16x16 blocks (hereinafter referred to as “loop 3”) and passes control to a decision block 850. The decision block 850 determines whether sip_type (spatial intra-partition type)=Intra16_DC. If so, control is passed to a function block 855. Otherwise, control is passed to a function block 860.

[0083] The function block 855 performs Intra16×16_DC mode prediction and passes control to a function block 865. The function block 860 performs mode prediction using other intra-prediction modes (i.e., other than Intra16×16_DC mode) and passes control to a function block 865.

[0084] The function block 865 decodes the 16×16 block and passes control to a loop limit block 870. The loop limit block 870 closes the loop of 16×16 blocks (i.e., loop 3), and passes control to a loop limit block 875.

[0085] A number of attendant advantages / features of the present invention have been described, some of which are described above. For example, one advantage / feature is an apparatus having a video encoder for encoding picture data for at least one block in a picture by signaling intra prediction for the at least one large block. The intra prediction is signaled by selecting a base coding unit size and assigning a single spatial intra prediction type for the base coding unit size. The single spatial intra partition type is selectable from a plurality of spatial intra partition types. The at least one large block has a large block size that is larger than the block size of the base coding unit. The intra prediction is a hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the base coding unit size and combining from the base coding unit size to the large block size.

[0086] Another advantage / feature is that the apparatus has the video encoder as described above, wherein, for each of a plurality of spatial intra partition types, a higher priority is assigned to a particular intra prediction mode that is used most frequently among a plurality of available intra prediction modes.

[0087] Yet another advantage / feature is that the apparatus includes a video encoder as described above, wherein a large block size is selected accordingly.

[0088] Yet another advantage / feature is wherein the apparatus comprises the video encoder as described above, and the signaling is performed using one or more high level syntax elements.

[0089] Also, another advantage / feature is the apparatus having the video encoder as described above, wherein at least one of the spatial intra partition type table and the intra prediction mode table are pre-stored and configured to be used by the video encoder to encode the at least one large block, and at least one of the spatial intra partition type table and the intra prediction mode table are pre-stored and configured to be used by a corresponding video decoder to decode the at least one large block.

[0090] Yet another advantage / feature is that the apparatus has the video encoder as described above, wherein at least one of the spatial intra partition type table and the intra prediction mode table are used by the video encoder to encode the at least one large block and are transmitted by the video encoder using one or more high level syntax elements.

[0091] These and other features and advantages of the present principles may be readily ascertained by one of ordinary skill in the relevant art based on the teachings herein. The teachings of the present principles may be implemented in various forms of hardware, software, firmware, special purpose processors, or combinations thereof.

[0092] Most preferably, the teachings of the present invention are implemented as a combination of hardware and software. Furthermore, the software may be implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to and executed by a machine having any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPUs), a random access memory (RAM), and input / output (I / O) interfaces. The computer platform may include an operating system and microinstruction code. The various processes and functions described herein may be part of the microinstruction code, part of the application program, or any combination thereof, and may be executed by the CPU. Various other peripheral devices may also be connected to the computer platform, such as an auxiliary data storage device and a printing device.

[0093] It should be understood that some of the constituent system elements and methods described in the accompanying drawings are preferably implemented by software, and therefore the actual connections between the system components or process function blocks may vary depending on the manner in which the principles of the present invention are programmed. Given the teachings provided herein, one of ordinary skill in the art will be able to contemplate these and similar implementations or configurations of the principles of the present invention.

[0094] Although exemplary embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the principles of the present invention are not limited to these exact embodiments, and various changes and modifications may be made by those skilled in the art in the embodiments without departing from the scope and spirit of the principles of the present invention. All such changes and modifications are intended to be encompassed within the scope of the principles of the present invention as set forth in the appended claims.

Claims

1. 1. A video encoder (400) for encoding picture data by signaling intra prediction for at least one large block in a picture, the intra prediction being signaled by selecting a basic coding unit size and assigning a single spatial intra partition type for the basic coding unit size, the single spatial intra partition type being selectable from a plurality of spatial intra partition types, the at least one large block having a large block size greater than a block size of the basic coding unit; The apparatus, wherein the intra prediction is hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the basic coding unit size and combining from the basic coding unit size to the large block size.

2. The apparatus of claim 1 , wherein for each of the plurality of spatial intra-partition types, a higher priority is assigned to a particular intra-prediction mode that is most frequently used among a plurality of available intra-prediction modes.

3. The apparatus of claim 1 , wherein the large block size is selected adaptively.

4. The apparatus of claim 1 , wherein the signaling is performed using one or more high-level syntax elements.

5. 2. The apparatus of claim 1, wherein at least one of a spatial intra partition type table and an intra prediction mode table are pre-stored and configured to be used by the video encoder (400) to encode the at least one large block, and at least one of the spatial intra partition type table and the intra prediction mode table are pre-stored and configured to be used by a corresponding video decoder to decode the at least one large block.

6. 2. The apparatus of claim 1, wherein at least one of a spatial intra partition type table and an intra prediction mode table are used by the video encoder (400) to encode the at least one large block and are transmitted by the video encoder (400) using one or more high level syntax elements.

7. encoding picture data by signaling (775, 780, 755, 742) intra prediction for at least one large block in a picture, the intra prediction being signaled by selecting a basic coding unit size and assigning a single spatial intra partition type for the basic coding unit size, the single spatial intra partition type being selectable from a plurality of spatial intra partition types, the at least one large block having a large block size greater than a block size of the basic coding unit; A method in a video encoder, wherein the intra prediction is hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting (720, 725) from the large block size to the basic coding unit size and combining (742, 750, 755, 770, 775, 780) from the basic coding unit size to the large block size.

8. 8. The method of claim 7, wherein for each of the plurality of spatial intra-partition types, a higher priority is assigned to a particular intra-prediction mode that is most frequently used among a plurality of available intra-prediction modes (785, 790, 730).

9. The method of claim 7, wherein the large block size is selected adaptively (750, 770).

10. 8. The method of claim 7, wherein the signaling is performed using one or more high level syntax elements (742, 755, 775, 780, 785, 790, 797).

11. 8. The method of claim 7, wherein at least one of a spatial intra partition type table and an intra prediction mode table are pre-stored and configured to be used by the video encoder to encode the at least one large block, and at least one of the spatial intra partition type table and the intra prediction mode table are pre-stored and configured to be used by a corresponding video decoder to decode the at least one large block (710).

12. 8. The method of claim 7, wherein at least one of a spatial intra partition type table and an intra prediction mode table are used by the video encoder to encode the at least one large block and are transmitted by the video encoder using one or more high level syntax elements (797).

13. 1. A video decoder (500) for decoding picture data by determining, for at least one large block in a picture, that intra prediction is to be performed, the intra prediction being determined by determining a basic coding unit size and, for the basic coding unit size, determining a single spatial intra partition type, the single spatial intra partition type being determinable from a plurality of spatial intra partition types, the at least one large block having a large block size that is greater than a block size of the basic coding unit; The apparatus, wherein the intra prediction is hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the basic coding unit size and combining from the basic coding unit size to the large block size.

14. 14. The apparatus of claim 13, wherein for each of the plurality of spatial intra-partition types, a higher priority is assigned to a particular intra-prediction mode that is most frequently used among a plurality of available intra-prediction modes.

15. The apparatus of claim 13 , wherein the large block size is determined adaptively.

16. The apparatus of claim 13 , wherein the intra prediction is determined using one or more high-level syntax elements.

17. 14. The apparatus of claim 13, wherein at least one of a spatial intra partition type table and an intra prediction mode table are pre-stored and used by the video decoder (500) to decode the at least one large block, the at least one large block having been pre-encoded by a corresponding encoder using the at least one of the spatial intra partition type table and the intra prediction mode table pre-stored in its place.

18. 14. The apparatus of claim 13, wherein at least one of a spatial intra partition type table and an intra prediction mode table is received by the video decoder (500) using one or more high level syntax elements and used by the video decoder (500) to decode the at least one large block.

19. decoding picture data by determining (820, 830) that intra prediction is performed for at least one large block in a picture, the intra prediction being determined by determining a basic coding unit size and determining a single spatial intra partition type for the basic coding unit size, the single spatial intra partition type being determinable from a plurality of spatial intra partition types, the at least one large block having a large block size greater than a block size of the basic coding unit; A method in a video decoder, wherein the intra prediction is hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting (820, 830) from the large block size to the basic coding unit size and combining (820, 830) from the basic coding unit size to the large block size.

20. 20. The method of claim 19, wherein for each of the plurality of spatial intra partition types, a higher priority is assigned to a particular intra prediction mode that is most frequently used among a plurality of available intra prediction modes (855, 835, 850).

21. 20. The method of claim 19, wherein the large block size is determined (820, 830) adaptively.

22. 20. The method of claim 19, wherein the intra prediction is determined using one or more high level syntax elements (820, 830, 835, 885, 850).

23. 20. The method of claim 19, wherein at least one of a spatial intra partition type table and an intra prediction mode table are pre-stored and used by the video decoder to decode the at least one large block, the at least one large block having been pre-encoded by a corresponding encoder using the at least one of the spatial intra partition type table and the intra prediction mode table pre-stored in place (808).

24. 20. The method of claim 19, wherein at least one of a spatial intra partition type table and an intra prediction mode table are received by the video decoder using one or more high level syntax elements and used by the video decoder to decode the at least one large block (810).

25. 1. A storage medium having encoded video signal data, comprising:

1. Picture data encoded by signaling intra prediction for at least one large block in a picture, the intra prediction being signaled by selecting a basic coding unit size and assigning a single spatial intra partition type for the basic coding unit size, the single spatial intra partition type being selectable from a plurality of spatial intra partition types, the at least one large block having a large block size greater than a block size of the basic coding unit, The storage medium, wherein the intra prediction is hierarchical layer intra prediction and is performed for the at least one large block by at least one of splitting from the large block size to the basic coding unit size and combining from the basic coding unit size to the large block size.

Citation Information

Patent Citations

  • Dynamic image encoding device and dynamic image decoding device

    WO2007034918A1

  • Methods and apparatus for reduced resolution partitioning

    WO2008027192A2

  • Image encoding method and device, and decoding method and device therefor

    WO2010002214A2

  • Video coding with large macroblocks

    WO2010039728A2

Cited By

  • Topologies to reduce force ripple for propulsion motors

    US20250070633A1