Indication of the video slice height in video sub-pictures

By introducing new syntax elements into VVC, the problem of inability to flexibly specify the rectangular slice height in the sub-picture in the prior art is solved, and the function of indicating the slice height in CTU in the tile or sub-picture is realized, which improves the flexibility and efficiency of video encoding.

CN114902673BActive Publication Date: 2025-04-04ZTE (UK) LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080084882.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-20
Filing Date
2020-12-15
Publication Date
2025-04-04
Estimated Expiration
2040-12-15

AI Technical Summary

Technical Problem

The existing video encoding standards lack effective mechanisms when specifying the height of rectangular slices in sub-pictures, resulting in the inability to flexibly use tile structures to support the partitioning of video images in VVC.

Method used

By introducing two new syntax elements: rect_slice_height_in_subpic_only_flag and slice_height_in_ctu_in_subpic_minusl[i], it is allowed to indicate the height of the rectangular slice in CTU units within a tile or sub-picture.

Benefits of technology

The ability to flexibly specify the height of rectangular slices in the sub-picture is realized, avoiding the problem of excessively limiting the size of the tile, and effectively taking advantage of the advantages of VVC tile structure design.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114902673B_ABST
    Figure CN114902673B_ABST
Patent Text Reader

Abstract

Methods, devices, and systems for video bitstream generation and parsing are described. An example bitstream decoding method includes: parsing a portion of a video bitstream at a video unit level for a first field, the first field indicating whether a slice height is specified for sub-picture partitioning or for tile partitioning at the video unit level; parsing N second fields in that portion of the video bitstream to obtain the height of a rectangular slice in the video unit due to determining that the first field indicates that the slice height is specified for sub-picture partitioning, wherein the height is indicated as a multiple of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; and decoding the video bitstream to generate a video based on the first field and / or the N second fields.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This patent application claims the benefit of priority to U.S. Patent Application No. 16 / 723,506, filed on December 20, 2019. The entire contents of the foregoing patent application are incorporated by reference as part of the disclosure of this application. Technical Field

[0003] This patent document generally relates to video and image encoding and decoding. Background Art

[0004] Over the past three decades, many different video coding standards have been published for representing digital video in a compressed format by removing some of the visual redundancy and information in the digital video. During this period, the pixel resolution of the encoded video content has steadily increased from the source input format (SIF) resolution in the early MPEG-1 video standard to the 4K or 8K video currently being considered. Therefore, newer video coding standards have adopted more efficient and flexible coding techniques to adapt to the increase in video resolution. Summary of the invention

[0005] This patent document describes, among other things, techniques for encoding and decoding digital video using techniques that can be used to signal the heights of rectangular slices in coding tree units in sub-pictures of the video.

[0006] In one example aspect, a method for bitstream processing is disclosed. The method includes: parsing a portion of a video bitstream at a video unit level for a first field, the first field indicating whether a slice height is specified for sub-picture partitioning or tile partitioning at the video unit level; parsing N second fields in that portion of the video bitstream to obtain a height of a rectangular slice used in the video unit due to determining that the first field indicates that the slice height is specified for sub-picture partitioning, wherein the height is indicated as a multiple of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; and decoding the video bitstream based on the first field and / or the N second fields to generate a video.

[0007] In another aspect, a video decoder apparatus is disclosed, comprising a processor configured to implement the above method.

[0008] In another aspect, a method for encoding a video is disclosed. The method includes: including a first field in a video bitstream representing the video, the first field indicating whether a slice height is specified for sub-picture partitioning or tile partitioning for encoding a video picture; due to the first field indicating that the slice height is specified for sub-picture partitioning, inserting N second fields in the video bitstream, the N second fields indicating the height of a rectangular slice used in the video picture, wherein the height is indicated as a multiple of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; and encoding a video picture of the video by including it in the first field and / or the N second fields.

[0009] In yet another exemplary aspect, a video processing device including a processor is disclosed. The processor is configured to implement the encoding or decoding method described herein.

[0010] In yet another example aspect, a computer program storage medium is disclosed. The computer program storage medium includes code stored thereon. The code, when executed by a processor, causes the processor to implement the described method.

[0011] These and other aspects are described in this document. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 An example of a video picture divided into 10 sub-pictures is shown.

[0013] Figure 2A-2B An example processing order when encoding or decoding a video picture including multiple sub-pictures is shown.

[0014] Figure 3A An example of a video picture partitioned into coding tree units (CTUs), tiles, slices, and sub-pictures is shown.

[0015] Figure 3B A picture with 18x12 luma CTUs is shown, which is divided into 12 tiles and 3 raster scan slices.

[0016] Figure 4 A picture with 18x12 luma CTUs is shown, which is divided into 24 tiles and 9 rectangular slices.

[0017] Figure 5 A picture divided into 4 tiles and 4 rectangular slices is shown.

[0018] Figure 6 An example video picture is shown, where there are 18 tiles, 24 sub-pictures and 24 slices (20×12=240 CTUs).

[0019] Figure 7 An example video picture is shown, where the partitions are arranged as 5×5=25 tiles, but the tile coding order will be restricted, and the coding order through each CTU scanning order is not completely flexible in the current VVC version.

[0020] Figure 8 A block diagram of an example video encoder is shown.

[0021] Fig. 9 A block diagram of an example video decoder is shown.

[0022] Fig.10 An example of a video system is shown.

[0023] Fig.11 An example of a video processing hardware platform is shown.

[0024] Fig.12 is a flow chart of an example method of video processing.

[0025] Fig.13 is a flow chart of an example method of video processing. DETAILED DESCRIPTION

[0026] The section headings used in this document are intended only to improve readability and do not limit the scope of the embodiments and techniques disclosed in each section to only that section. Certain features are described using examples of the H.264 / AVC (Advanced Video Coding), H.265 / HEVC (High Efficiency Video Coding), and H.266 Versatile Video Coding (WC) standards. However, the applicability of the disclosed techniques is not limited to H.264 / AVC or H.265 / HEVC or H.266 / WC systems.

[0027] This patent document relates to video processing and communication, and more particularly to methods and devices for encoding digital video or pictures to generate a bitstream, methods and devices for decoding a bitstream to reconstruct a digital video or picture, and methods and devices for extracting a bitstream to form a sub-bitstream.

[0028] Brief Discussion

[0029] The technology used to compress digital video and pictures uses the correlation characteristics between pixel samples to remove redundancy in videos and pictures. The encoder can divide the picture into one or more regions containing multiple units. Such regions break the prediction dependencies within the picture, so that a region can be decoded or at least the syntax elements corresponding to the region can be correctly parsed without referring to the data of another region in the same picture. Such regions are introduced in the video coding standard to facilitate resynchronization after data loss, parallel processing, encoding and streaming of regions of interest, packetized transmission, viewport-dependent streaming, etc. For example, in the H.264 / AVC standard, examples of such regions can be slices and slice groups. In the H.265 / HEVC standard, examples of such regions can be slices and tiles.

[0030] In the development of the next generation video coding standard, MPEG (Moving Picture Experts Group) has required that the next generation video codec should achieve efficient extraction of the desired viewport from the compressed bitstream. In addition, in applications involving 4K, 8K or even higher resolution video, it is useful to allow viewers to select the viewport for rendering on the terminal device, and therefore to achieve efficient extraction of the sub-bitstream corresponding to the original resolution from the bitstream.

[0031] Introduction

[0032] In the current JVET-P2001 (VVC Draft 7) specification, video picture partitioning is based on sub-pictures, tiles, and slices. Sub-pictures and tiles are usually indicated in the bitstream, albeit by very different methods. While the sub-picture structure is given a fairly flexible partition arrangement, the tile structure is specified as a grid system.

[0033] In the current text of the standard, if the rectangular slice is contained within a tile, there is a design method to specify the height of the rectangular slice measured in the coding tree unit (CTU) size. However, the technology provided in VVC currently does not provide a solution or mechanism to specify the height of a rectangular slice that may be positioned to fall within a sub-picture partition. For example, if the entire video picture is a tile and there are multiple sub-pictures in the video picture at the same time, there is currently no way to encode the relationship between the slice height and the CTU size of the slice within the sub-picture. In addition, the decoder will not understand the relationship between the height of such a rectangular slice and the corresponding CTU size based on the syntax elements in the bitstream representing the encoded video.

[0034] One possible way to indicate the height of a rectangular slice within a sub-picture (measured in CTU size) is to set the size of the tile to be the same as the CTU size, which typically results in smaller sized tiles. Then, by counting the number of such smaller sized tiles (whose height is now equal to the CTU), the JVET-P2001 VVC draft 7 compliant bitstream format can be used to represent the slice height in CTU size measurement. However, this is a sub-optimal solution because it overly restricts the tile size and fails to truly use the benefits of the VVC tile structure design.

[0035] In some embodiments according to the solution, in order to conveniently indicate the height of a rectangular slice measured in CTU size, two new syntax elements and their semantics may be used. The first syntax element is called rect_slice_height_in_subpic_only_flag and may use the format (u(1)). The second syntax structure is called slice_height_in_ctu_in_subpic_minusl[i++] and may use the format (ue(v)).

[0036] The syntax elements may be used as follows.

[0037] The first syntax element identifies the context or reference of how the slice height is specified. For example, the first synrect_slice_height_in_subpic_only_flag equal to 1 specifies that the slice height is specified using sub-picture partitions only. In addition, rect_slice_height_in_subpic_only_flag equal to 0 specifies that the slice height is specified using tile partitions.

[0038] The second syntax element may be used to indicate the slice height in CTU rows. For example, slice_height_in_ctu_in_subpic_minusl[i] plus 1 specifies the height of the i-th rectangular slice in CTU rows if the i-th slice contains a subset of CTU rows from a single sub-picture. The value of slice_height_in_ctu_minusl[i] shall be in the range of 0 to (pic_height_max_in_luma_samples / CtbSizeY)-1, inclusive.

[0039] Example Embodiments

[0040] In the current VVC draft 7 specification, picture partitioning can be done as multiple tiles, slices or sub-pictures. There is a problem with rectangular slice indication: when a complete video picture has only one tile, it cannot indicate the slice height in CTU within the sub-picture. In this contribution, a solution is proposed to allow slice height in CTU within a tile or within a sub-picture.

[0041] Handling sub-pictures in VVC draft 7

[0042] In the current VVC Draft 7 specification, the structure of a sub-picture is indicated in the sequence parameter set (SPS) as:

[0043] Table 1

[0044]

[0045] The italic underlined highlighted text in the above SPS marks how sub-pictures are defined: Generally speaking, all partitions are based on CTU (Coding Tree Unit - Basic Unit), and sub-pictures can be effectively defined by specifying the upper left corner X, Y position plus the sub-picture width and height information.

[0046] For the current sub-image design, it can support Figure 1 Partitions of sub-images in (each color block is associated with a sub-image). Figure 1 The processing order of all sub-pictures in can be arranged differently (more than one possible way). The key constraint is that when a sub-picture is encoded, the entire left and top borders of the sub-picture should be available. For example: (1) the boundary pixels for the current sub-picture belong to other sub-pictures that have been processed (decoded), or (2) the relevant boundary for the current sub-picture is a picture boundary. The two possible processing orders for these ten sub-pictures are Figure 2A-2B Given in

[0047] Handling tiles and slices in VVC draft 7:

[0048] Figure 3A An example of dividing a picture into tiles, sub-pictures, and slices is shown. Figure 3B is another example of a picture with 18×12 luma CTUs, which is partitioned into 12 tiles and 3 raster scan tiles.

[0049] Figure 4 An example of an 18×12 luma CTU being partitioned into 24 tiles and 9 rectangular slices is shown.

[0050] Figure 5 An example of a picture divided into 4 tiles and 4 rectangular slices is shown.

[0051] In all these figures, it is clear that the tile structure in VVC cannot flexibly support Figure 1 The video picture division shown in .

[0052] The tile structure is described in the PPS (Picture Parameter Set) as follows (the relevant text is highlighted in "blue" color):

[0053] Table 2

[0054]

[0055]

[0056] The text highlighted in "blue" color shows that the tile structure can be considered a specific grid type.

[0057] Figure 6 An example of a video picture with 18 tiles, 24 sub-pictures and 24 slices is shown, where 20×12=240 CTUs.

[0058] Use the tile concept in partition layout and support Figure 1 , which illustrates the sub-image structure layout. Figure 7 In , it shows one possibility: the picture will need to be divided into 5×5=25 tiles, as shown. Figure 7 In the example, each color box is still a sub-picture divided in the video picture.

[0059] Multiple rectangular slices within a sub-image are supported in JVET-P2001:

[0060] According to the current specification, the only way to support multiple slices is to use PPS sections. Figure 1 In the example above, we initially defined 10 sub-image structures (top left X and Y position, plus sub-image width and height information). Then we defined the entire image as a single tile. Let's look at a typical use case for Figure 1 For the illustrated sub-picture partitioning, we want to have two slices within each sub-picture, so we should have 20 slices in total (for 10 sub-pictures).

[0061] In the following table, new syntax elements that may be added to the current syntax structure of a picture parameter set raw byte sequence payload (RBSP) are shown in italic text.

[0062] Table 3

[0063]

[0064]

[0065] Another example variation of the JVET-P2001 specification

[0066] In the current document of the JVET specification, under 6.5.1 “CTB raster scanning, tile scanning, and subpicture scanning processes”, the existing text can be clarified as follows.

[0067] The list CtbToSubPicIdx[ctbAddrRs], for ctbAddrRs ranging from 0 to PicSizelnCtbsY-1 (inclusive), specifies the conversion from CTB addresses in the picture raster scan to sub-picture indices, which are derived as follows: (italic text will be deleted from the proposed modification):

[0068]

[0069] The lists NumSlicesInSubpic[i] and SliceSubpicToPicIdx[i][k], specifying the number of rectangular slices in the i-th sub-picture and the picture-level slice index of the k-th slice in the i-th sub-picture, are derived as follows:

[0070]

[0071]

[0072] Modified "italic" emphasized text according to "JVET VVC Trac" information #742.

[0073] Additionally, the following text may be added under 7.4.3.4, "Picture parameter set RBSP semantics":

[0074] rect_slice_height_in_subpic_only_flag equal to 1 specifies that the slice height is specified using sub-picture partitions only. rect_slice_height_in_subpic_only_flag equal to 0 specifies that the slice height is specified using tile partitions.

[0075] slice_height_in_ctu_in_subpic_minusl[i] plus 1 specifies the height of the i-th rectangular slice in units of CTU rows if the i-th slice contains a subset of CTU rows from a single sub-picture. The value of slice_height_in_ctu_minusl[i] should be in the range of 0 to (pic_height_max_in_luma_samples / CtbSizeY)-1, inclusive.

[0076] Examples of encoders, decoders, and system implementations

[0077] Figure 8 is a diagram illustrating a first example device including at least an example video encoder or a picture encoder.

[0078] The acquisition unit 1001 captures videos and pictures. The acquisition unit 1001 can be equipped with one or more cameras for taking videos or pictures of natural scenes. Optionally, the acquisition unit 1001 can be implemented with a camera to obtain a depth video or depth picture. Optionally, the acquisition unit 1001 can include components of an infrared camera. Optionally, the acquisition unit 1001 can be configured with a remote sensing camera. The acquisition unit 1001 can also be a device or equipment that generates a video or picture by scanning an object using radiation.

[0079] Optionally, the acquisition unit 1001 can pre-process the video or picture, such as automatic white balance, auto focus, automatic exposure, backlight compensation, sharpening, denoising, stitching, upsampling / downsampling, frame rate conversion, virtual view synthesis, etc.

[0080] The acquisition unit 1001 may also receive a video or picture from another device or processing unit. For example, the acquisition unit 1001 may be a component unit in a code converter. The code transcoder feeds one or more decoded (or partially decoded) pictures to the acquisition unit 1001. Another example is that the acquisition unit 1001 obtains a video or picture from another device via a data link to the other device.

[0081] Note that the acquisition unit 1001 can also be used to capture other media information besides videos and pictures, such as audio signals. The acquisition unit 1001 can also receive artificial information, such as characters, texts, videos or pictures generated by computers, and the like.

[0082] Encoder 1002 is an implementation of an example encoder. The input of encoder 1002 is the video or picture output by acquisition unit 1001. Encoder 1002 encodes the video or picture and outputs the generated video or picture bitstream.

[0083] The storage / transmission unit 1003 receives a video or picture bitstream from the encoder 1002 and performs system layer processing on the bitstream. For example, the storage / transmission unit 1003 encapsulates the bitstream according to the transmission standard and the media file format, such as MPEG-2TS, ISOBMFF, DASH, MMT, etc. The storage / transmission unit 1003 stores the transport stream or media file obtained after encapsulation in the memory or disk of the first example device, or transmits the transport stream or media file via a wired or wireless network.

[0084] Note that in addition to the video or picture bitstream from the encoder 1002, the input of the storage / transmission unit 1003 may also include audio, text, images, graphics, etc. The storage / transmission unit 1003 generates a transport or media file by encapsulating such different types of media bitstreams.

[0085] The first example device described in this embodiment may be a device capable of generating or processing video (or picture) bit streams in video communication applications, such as mobile phones, computers, media servers, portable mobile terminals, digital cameras, broadcasting equipment, CDN (content distribution network) equipment, surveillance cameras, video conferencing equipment, etc.

[0086] Fig. 9 is a diagram illustrating a second example device including at least an example video decoder or a picture decoder.

[0087] The receiving unit 1101 receives a video or picture bit stream by obtaining the bit stream from a wired or wireless network, by reading a memory or a disk in an electronic device, or by extracting data from other devices via a data link.

[0088] The input of the receiving unit 1101 may also include a transport stream or a media file containing a video or picture bitstream. The receiving unit 1101 extracts the video or picture bitstream from the transport stream or the media file according to the specification of the transport or media file format.

[0089] The receiving unit 1101 outputs the video or picture bitstream and passes it to the decoder 1102. Note that in addition to the video or picture bitstream, the output of the receiving unit 1101 may also include an audio bitstream, characters, text, images, graphics, etc. The receiving unit 1101 passes the output to the corresponding processing unit in the second example device. For example, the receiving unit 1101 passes the output audio bitstream to the audio decoder in the device.

[0090] The decoder 1102 is an implementation of an example decoder. The input of the encoder 1102 is the video or picture bitstream output by the receiving unit 1101. The decoder 1102 decodes the video or picture bitstream and outputs the decoded video or picture.

[0091] The rendering unit 1103 receives the decoded video or picture from the decoder 1102. The rendering unit 1103 presents the decoded video or picture to the viewer. The rendering unit 1103 may be a component of the second example device, such as a screen. The rendering unit 1103 may also be a device separated from the second example device and having a data link to the second example device, such as a projector, a monitor, a television, etc. Optionally, before presenting the decoded video or picture to the viewer, the rendering 1103 performs post-processing on the decoded video or picture, such as automatic white balance, automatic focus, automatic exposure, backlight compensation, sharpening, denoising, splicing, upsampling / downsampling, frame rate conversion, virtual view synthesis, etc.

[0092] Note that in addition to the decoded video or picture, the input of the rendering unit 1103 can be other media data from one or more units of the second example device, such as audio, characters, text, images, graphics, etc. The input of the rendering unit 1103 can also include artificial data, such as lines and marks drawn by a local teacher on a slide to attract attention in a distance education application. The rendering unit 1103 combines different types of media and then presents the combination to the viewer.

[0093] The second example device described in this embodiment can be a device that can decode or process video (or picture) bit streams in video communication applications, such as mobile phones, computers, set-top boxes, televisions, HMDs, monitors, media servers, portable mobile terminals, digital cameras, broadcasting equipment, CDN (content distribution network) equipment, monitoring, video conferencing equipment, etc.

[0094] Fig.10 It is a diagram that includes Fig. 9 The first example device and Figure 4 A diagram of an electronic system of a second example device in FIG.

[0095] Service device 1201 is Figure 8 The first example device in.

[0096] The storage medium / transmission network 1202 may include internal memory resources of a device or electronic system, external memory resources accessible via a data link, and a data transmission network composed of wired and / or wireless networks. The storage medium / transmission network 1202 provides storage resources or a data transmission network for the storage / transmission unit 1203 in the service device 1201.

[0097] The destination device 1203 is Figure 5The receiving unit 1201 in the destination device 1203 receives a video or picture bitstream, a transport stream containing the video or picture bitstream, or a media file containing the video or picture bitstream from a storage medium / transmission network 1202 .

[0098] The electronic system described in this embodiment can be a device or system that can generate, store or transmit and decode video (or picture) bit streams in video communication applications, such as mobile phones, computers, IPTV systems, OTT systems, multimedia systems on the Internet, digital television broadcasting systems, video surveillance systems, portable mobile terminals, digital cameras, video conferencing systems, etc.

[0099] Fig.11 An example device 1400 is shown that can be used to implement the encoder-side or decoder-side techniques described in this document. The device 1400 includes a processor 1402, which can be configured to perform the encoder-side or decoder-side techniques or both. The device 1400 may also include a memory (not shown) for storing processor-executable instructions and for storing video bitstreams and / or display data. The device 1400 may include video processing circuits (not shown), such as transform circuits, arithmetic encoding / decoding circuits, data encoding techniques based on lookup tables, etc. The video processing circuits may be partially included in the processor and / or partially included in other dedicated circuits, such as a graphics processor, a field programmable gate array (FPGA), etc.

[0100] The technical problems related to video coding and decoding technology described in the present invention can be solved by some embodiments preferably in combination with one or more of the following solutions.

[0101] 1. A method for processing a video bitstream, comprising: parsing a portion of a video bitstream at a video unit level for a first field, the first field indicating whether a slice height is specified for sub-picture partitioning or for tile partitioning at the video unit level; parsing N second fields in the portion of the video bitstream to obtain a height of a rectangular slice in the video unit due to determining that the first field indicates that the sub-picture partitioning is specified for the slice height, wherein the height is indicated as a multiple of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; and decoding the video bitstream based on the first field and / or the N second fields to generate a video.

[0102] 2. The method according to solution 1, wherein the video unit is a video picture.

[0103] 3. The method of solution 1, wherein the first field is a one-bit field.

[0104] 4. The method according to solution 3, wherein the N second fields are positioned immediately after the first field in the video bitstream.

[0105] 5. The method according to solution 1, wherein decoding the video bitstream comprises: decoding a plurality of sub-pictures included in a video unit.

[0106] 6. The method of solution 1, wherein the N second fields are conditionally included in the video bitstream based on a value of the first field.

[0107] 7. The method of solution 1, wherein the portion of the video bitstream is a parameter set.

[0108] 8. The method of solution 7, wherein the parameter set is a picture parameter set.

[0109] 9. A video decoder device, comprising a processor configured to perform operations, the operations comprising: parsing a portion of a video bitstream at a video unit level for a first field indicating whether a slice height is specified for sub-picture partitioning or for tile partitioning at the video unit level; parsing N second fields in the portion of the video bitstream to obtain a height of a rectangular slice in the video unit due to determining that the first field indicates that the slice height is specified for sub-picture partitioning, wherein the height is indicated as a multiple of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; and decoding the video bitstream based on the first field and / or the N second fields to generate a video.

[0110] 10. The apparatus of solution 9, wherein the video unit is a video picture.

[0111] 11. The apparatus of solution 9, wherein the first field is a one-bit field.

[0112] 12. The apparatus of solution 11, wherein the N second fields are positioned immediately after the first field in the video bitstream.

[0113] 13. The apparatus of solution 9, wherein decoding the video bitstream comprises decoding a plurality of sub-pictures included in a video unit.

[0114] 14. The apparatus of solution 9, wherein the N second fields are conditionally included in the video bitstream based on a value of the first field.

[0115] 15. The apparatus of solution 14, wherein the parameter set is a picture parameter set.

[0116] 16. A video encoding method, comprising: including a first field in a video bitstream representing a video, the first field indicating whether a slice height is specified for sub-picture partitioning or for tile partitioning for encoding a video picture; due to the inclusion of the first field indicating that the slice height is specified for sub-picture partitioning, N second fields are inserted into the video bitstream, the second field indicating the height of a rectangular slice used in the video picture, wherein the height is indicated as a multiple of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; and encoding a video picture of the video by including it in the first field and / or the N second fields.

[0117] 17. The method of solution 16, wherein the first field is a one-bit field.

[0118] 18. The method of solution 17, wherein N second fields are included in the video bitstream immediately following the first field.

[0119] 19. The method of solution 16, wherein the first field and the second field are included in a picture parameter set. In some embodiments, a computer program product may include a computer readable medium including processor executable code for implementing the method described herein and in the claims.

[0120] 20. A method for decoding a video, comprising: determining whether a second field indicating one or more slice heights is present in the video bitstream based on a first field in a video bitstream indicating whether the slice height is specified for sub-picture partitioning or for tile partitioning at a video unit level, and reconstructing the video from the video bitstream based on the determination, parsing the bitstream. For example, in the case of a first field in which the slice height is specified for sub-picture partitioning, then determining that the second field exists and parsing the second field to recover the slice height. In one example, the second field appears immediately after the first field, and the second field may include N fields, each field including an indication of one of the N slices.

[0121] Alternatively, if the first field value indicates that slice height is specified for tile partitioning, the video bitstream is further parsed with the understanding that the second field is not present in the video bitstream, such as by skipping any attempt to decode the second field.

[0122] 21. A method of video encoding, wherein the value of a first field in a video bitstream indicates whether a slice height is specified for sub-picture partitioning or for tile partitioning at a video unit level, the method being used to determine whether a second field indicating one or more slice heights is to be included in the video bitstream, and generating a bitstream based on the determination of encoding video from the video bitstream. For example, in the case where the slice height is a first field specified for sub-picture partitioning, then the second field is included. In one example, the second field appears immediately after the first field, and the second field may include N fields, each field including an indication of one of the N slices. Alternatively, if the first field is specified for slice partitioning, then the second field is omitted from inclusion in the video bitstream.

[0123] The above method can be Figures 8 to 11 It is implemented by the device shown in .

[0124] 6. Industrial Applicability

[0125] From the above description, it can be seen that techniques are disclosed that can signal slice height in sub-pictures. In one advantageous aspect, these techniques can be used by an encoder to separately and independently signal slice height for sub-pictures and tiles, thereby allowing flexible organization of video pictures using sub-pictures.

[0126] It should also be understood that for the current VVC draft 7, if the encoder sets each tile to be as small as each CTU; then for a sub-picture, for the coding area within the sub-picture, the slice height can be specified by the number of tile row heights (in this case: equal to the number of CTU heights). When doing this, the tile concept will no longer be used as a good partitioning tool. In WC draft 7, if the encoder does not set tiles of such a small size, then the encoder does not have the ability to specify the height of the slice within the sub-picture (using the number of CTU heights). The technology disclosed in this document will allow flexible use of tile partitioning as an encoding or decoding tool, and also allow clear indication of the slice height within each sub-picture.

[0127] The disclosed and other embodiments, modules and functional operations described in this document may be implemented in digital electronic circuits or computer software, firmware or hardware, including the structures disclosed in this document and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more computer program instruction modules, which are encoded on a computer-readable medium for execution by a data processing device or for controlling the operation of the data processing device. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a material composition that affects a machine-readable propagation signal, or a combination of one or more of them. The term "data processing device" encompasses all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may also include code that creates an execution environment for the computer program in question, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagation signal is an artificially generated signal, such as a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.

[0128] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0129] The processes and logic flows described in this document may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may be implemented as, special purpose logic circuitry (e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit)).

[0130] Processors suitable for executing computer programs include, for example, general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include or be operably coupled to receive data from or transfer data to or both of one or more mass storage devices (e.g., magnetic, magneto-optical disks, or optical disks) for storing data. However, a computer need not have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; disks, such as internal hard disks or removable disks; magneto-optical disks; and CDROM and DVD-ROM disks. The processor and memory may be supplemented by or incorporated into a dedicated logic circuit.

[0131] Although this patent document contains many details, these should not be interpreted as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be specific to a particular embodiment of a particular invention. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable sub-combination. In addition, although features may be described as functioning in certain combinations and even initially claimed as such, in some cases, one or more features from the claimed combination may be removed from the combination, and the claimed combination may be directed to a sub-combination or a variation of the sub-combination.

[0132] Similarly, although operations are depicted in a particular order in the drawings, this should not be understood as requiring that these operations be performed in the particular order shown or performed in sequence, or that all illustrated operations be performed, in order to achieve the desired results. In addition, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0133] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this patent document.

Claims

1. A method for processing a video bit stream, comprising: A parameter set for parsing a video bitstream at a picture level for a first field indicating that a slice height is specified using a sub-picture partitioning at the picture level; parsing N second fields in the parameter set of the video bitstream due to determining that the first field indicates that the slice height is specified using the sub-picture partitioning, wherein the N second fields indicate heights for rectangular slices in a picture, wherein the heights are indicated in multiples of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; wherein in a case where the first field indicates that the slice height is specified for tile partitioning, the N second fields are omitted from the video bitstream; as well as Based on the first field and the N second fields, the video bitstream is decoded to generate a video. The method of claim 1 , wherein the first field is a one-bit field. 3 . The method of claim 2 , wherein the N second fields are positioned immediately after the first field in the video bitstream.

4. The method of claim 1 , wherein decoding the video bitstream comprises: A plurality of sub-pictures included in the picture are decoded. 5 . The method of claim 1 , wherein the N second fields are conditionally included in the video bitstream based on a value of the first field. The method of claim 1 , wherein the parameter set is a picture parameter set.

7. A video decoder apparatus, comprising a processor configured to perform operations comprising: A parameter set for parsing a video bitstream at a picture level for a first field indicating that a slice height is specified using a sub-picture partitioning at the picture level; parsing N second fields in the parameter set of the video bitstream due to determining that the first field indicates that the slice height is specified using the sub-picture partitioning, wherein the N second fields indicate heights for rectangular slices in the picture, wherein the heights are indicated in multiples of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; wherein in a case where the first field indicates that the slice height is specified for tile partitioning, the N second fields are omitted from the video bitstream; as well as Based on the first field and the N second fields, the video bitstream is decoded to generate a video. The apparatus of claim 7 , wherein the first field is a one-bit field.

9. The apparatus of claim 8, wherein the N second fields are positioned immediately after the first field in the video bitstream.

10. The apparatus of claim 7, wherein decoding the video bitstream comprises: A plurality of sub-pictures included in the picture are decoded.

11. The apparatus of claim 7, wherein the N second fields are conditionally included in the video bitstream based on a value of the first field.

12. The apparatus of claim 7, wherein the parameter set is a picture parameter set.

13. A video encoding method, comprising: Including a first field in a video bitstream representing a video, the first field indicating that a slice height is specified using sub-picture partitioning for encoding a video picture, wherein the video picture includes one or more sub-pictures or one or more tiles; inserting N second fields into the video bitstream due to including the first field indicating that the slice height is specified for the sub-picture partitioning, the N second fields indicating heights for rectangular slices in the video picture, wherein the N second fields indicate the heights in multiples of a coding tree unit (CTU) height, and wherein each rectangular slice includes one or more CTU rows belonging to the same sub-picture, wherein N is a positive integer; wherein in a case where the first field indicates that the slice height is specified for tile partitioning, the N second fields are omitted from the video bitstream; as well as The video picture of the video is encoded by including on the first field and the N second fields. The method of claim 13 , wherein the first field is a one-bit field.

15. The method of claim 14, wherein the N second fields are included in the video bitstream immediately following the first field. 16 . The method according to claim 13 , wherein the first field and the second field are included in a picture parameter set.

Citation Information

Patent Citations

  • Indication of video slice height in video subpictures

    US11477450B2