US20140241439A1 - Transmitting Apparatus and Method Thereof for Video Processing - Google Patents

Transmitting Apparatus and Method Thereof for Video Processing Download PDF

Info

Publication number
US20140241439A1
US20140241439A1 US14/348,626 US201314348626A US2014241439A1 US 20140241439 A1 US20140241439 A1 US 20140241439A1 US 201314348626 A US201314348626 A US 201314348626A US 2014241439 A1 US2014241439 A1 US 2014241439A1
Authority
US
United States
Prior art keywords
value
syntax element
restriction
transmitting apparatus
picture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/348,626
Inventor
Jonatan Samuelsson
Bo Burman
Rickard Sjöberg
Magnus Westerlund
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to US14/348,626 priority Critical patent/US20140241439A1/en
Assigned to TELEFONAKTIEBOLAGET L M ERICSSON (PUBL) reassignment TELEFONAKTIEBOLAGET L M ERICSSON (PUBL) ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SAMUELSSON, JONATAN, BURMAN, BO, Sjöberg, Rickard, WESTERLUND, MAGNUS
Publication of US20140241439A1 publication Critical patent/US20140241439A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • H04N19/00884
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • H04N19/00545
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Definitions

  • the embodiments relate to a method and a transmitting apparatus for improving coding performance when parallel encoding/decoding is possible.
  • High Efficiency Video Coding is a video coding standard being developed in Joint Collaborative Team—Video Coding (JCT-VC).
  • JCT-VC is a collaborative project between Moving Picture Experts Group (MPEG) and International Telecommunication Union—Telecommunication Standardization Sector (ITU-T).
  • MPEG Moving Picture Experts Group
  • ITU-T International Telecommunication Union—Telecommunication Standardization Sector
  • HM HEVC Model
  • AVC Advanced Video Coding
  • HEVC is a block based hybrid video coded that uses both inter prediction (prediction from previous coded pictures) and intra prediction (prediction from previous coded pixels in the same picture).
  • Each picture is divided into quadratic treeblocks (corresponding to macroblocks in H.264/AVC) that can be of size 16 ⁇ 16, 32 ⁇ 32 or 64 ⁇ 64 pixels.
  • a variable CtbSize is used to denote the size of treeblocks expressed as number of pixels of the treeblocks in one dimension i.e. 16, 32 or 64.
  • Regular slices are similar as in H.264/AVC. Each regular slice is encapsulated in its own Network Abstraction Layer (NAL) unit, and in-picture prediction (intra sample prediction, motion information prediction, coding mode prediction) and entropy coding dependency across slice boundaries are disabled. Thus a regular slice can be reconstructed independently from other regular slices within the same picture. Since the treeblock, which is a basic unit in HEVC, can be of a relatively big size e.g., 64 ⁇ 64, a concept of “fine granularity slices” is included in HEVC to allow for Maximum Transmission Unit MTU size matching through slice boundaries within a treeblock, as a special form of regular slices. The slice granularity is signaled in a picture parameter set, whereas the address of a fine granularity slice is still signaled in a slice header.
  • NAL Network Abstraction Layer
  • the regular slice is the only tool that can be used for parallelization in H.264/AVC.
  • Parallelization implies that parts of a single picture can be encoded and decoded in parallel as illustrated in FIG. 1 where threaded decoding can be used using slices.
  • Regular slices based parallelization does not require much inter-processor or inter-core communication. However, for the same reason, regular slices can require some coding overhead due to the bit cost of the slice header and due to the lack of prediction across the slice border. Further, regular slices (in contrast to some of the other tools mentioned below) also serve as the key mechanism for bitstream partitioning to match MTU size requirements, due to the in-picture independence of regular slices and that each regular slice is encapsulated in its own NAL unit. In many cases, the goal of parallelization and the goal of MTU size matching place contradicting demands to the slice layout in a picture. The realization of this situation led to the development of the parallelization tools mentioned below.
  • WPP wavefront parallel processing
  • the picture is partitioned into single rows of treeblocks. Entropy decoding and prediction are allowed to use data from treeblocks in other partitions.
  • Parallel processing is possible through parallel decoding of rows of treeblocks, where the start of the decoding of a row is delayed by two treeblocks, so to ensure that data related to a treeblock above and to the right of the subject treeblock is available before the subject treeblock is being decoded.
  • staggered start which appears like a wavefront when represented graphically as illustrated in FIG. 2
  • parallelization is possible with up to as many processors/cores as the picture contains treeblock rows.
  • a wavefront segment contains exactly one line of treeblocks.
  • Tiles define horizontal and vertical boundaries that partition a picture into tile columns and rows. That implies that the tiles in HEVC divide a picture into areas with a defined width and height as illustrated in FIG. 3 .
  • Each area of the tiles consists of an integer number of treeblocks that are processed in raster scan order.
  • the tiles themselves are processed in raster scan order throughout the picture.
  • the exact tile configuration or tile information (number of tiles, width and height of each tile etc) can be signaled in a sequence parameter set (SPS) and in a picture parameter set (PPS).
  • SPS sequence parameter set
  • PPS picture parameter set
  • the tile information contains the width, height and position of each tile in a picture. This means that if the coordinates of a block is known, it is also known what tile the block belongs to.
  • Tiles and WPP may not be applied at the same time.
  • either or both of the following conditions must be fulfilled: 1) all coded treeblocks in a slice belong to the same tile; 2) all coded treeblocks in a tile belong to the same slice.
  • the Sequence Parameter Set holds information that is valid for an entire coded video sequence. Specifically it holds the syntax elements profile_idc and level_idc that are used to indicate which profile and level a bitstream conforms to. Profiles and levels specify restrictions on bitstreams and hence limits on the capabilities needed to decode the bitstreams. Profiles and levels may also be used to indicate interoperability points between individual decoder implementations.
  • the level enforces restrictions on the bitstream for example on the Picture size (denoted MaxLumaFS expressed in luma samples) and sample rate (denoted MaxLumaPR expressed in luma samples per second) as well as max bit rate (denoted MaxBR expressed in bits per second) and max coded picture buffer size (denoted Max CPB size expressed in bits).
  • the Picture Parameter Set holds information that is valid for some (or all) pictures in a coded video sequence.
  • the PPS comprises syntax elements that control the usage of wavefronts and tiles and it is required to have same value in all PPSs that are active in the same coded video sequence.
  • both HEVC and H.264 define a video usability information (VUI) syntax structure, that can be present in a sequence parameter set and contains parameters that do not affect the decoding process, i.e. do not affect the pixel values.
  • VUI video usability information
  • SEI Supplemental Enhancement Information
  • SEI is another structure that can be present in any access unit and that contains information that does not affect the decoding process.
  • HEVC Compared to H.264/AVC, HEVC provides better possibilities for parallelization.
  • Parallelization implies that parts of a single picture can be encoded and decoded in parallel.
  • tiles and WPP are tools developed for parallelization purposes. Both were originally designed for encoder parallelization but they may also be used for decoder parallelization.
  • the encoder When tiles are being used for encoder parallelism, the encoder first chooses a tile partitioning. Since tile boundaries break all predictions between the tiles, the encoder can assign the encoding of multiple tiles to multiple threads. As soon as there are at least two tiles, multiple thread encoding can be done.
  • the fact that a number of threads can be used implies that the actual workload of the encoding/decoding process can be divided into separate “processes” that are performed independently of each other, i.e. they can be performed in parallel in separate threads.
  • HEVC defines two types of entry points for parallel decoding. Entry points can be used by a decoder to find the position in the bitstream where the bits for a tile or substream starts.
  • the first type is entry points offsets. Those are listed in the slice header and indicates starting points of one or more tiles that are contained in the slice.
  • the second type is entry point markers which separates tiles in the bitstream.
  • An entry point marker is a specific codeword (start code) which cannot occur anywhere else in the bitstream.
  • the object of the embodiments of the present invention is to improve the performance when parallel encoding/decoding is available. That is achieved by sending a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • a decoder receiving an encoded bitstream that is encoded according to the indication from the syntax element, can use this indication when deciding how it could decode the encoded bitstream and if the bistream can be encoded.
  • a method for encoding a bitstream representing a sequence of pictures of a video stream is provided.
  • a syntax element is sent, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • a transmitting apparatus for encoding a bitstream representing a sequence of pictures of a video stream.
  • the transmitting apparatus comprises a processor and memory.
  • Said memory contains instructions executable by said processor whereby said transmitting apparatus is operative to send a syntax element wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • An advantage with at least some embodiments is that they provide means of indicating that a bitstream can be decoded in parallel. This enables a decoder, that is capable of decoding in parallel, to find out before starting decoding whether it will be possible for the decoder to decode the stream or not. There may for example be a decoder that can decode 720p on a single thread but decode 1080p given that each picture is split into at least 4 independently decodeable regions (i.e. it can be decided in 4 parallel threads). By using the embodiments, the decoder will know whether each picture is split or not, i.e. whether it can be decoded in parallel or not.
  • FIG. 1 illustrates an example of threaded decoding using slices according to prior art.
  • FIG. 2 illustrates an example of threaded decoding using wavefronts according to prior art.
  • FIG. 3 illustrates an example of threaded decoding using tiles according to prior art.
  • FIG. 4 illustrates schematically a transmitting apparatus configured to transmit the syntax element to a receiving apparatus according to an embodiment of the present invention.
  • FIG. 5 exemplifies parallelism levels according to prior art.
  • FIG. 5 illustrates flowcharts of the method according to the present invention.
  • FIG. 6 illustrates schematically a transmitting apparatus according to embodiments of the present invention.
  • FIG. 7 illustrates schematically an implementation of the transmitting apparatus according to embodiments of the present invention.
  • processing unit is used to refer to the unit that encodes or decodes a coded video sequence.
  • processing unit In practice that might for example correspond to a CPU, a GPU, a DSP, an FPGA, or any type of specialized chip. It might also correspond to a unit that contains multiple CPUs, CPUs etc or combinations of those.
  • core is used to refer to one part of the processing unit that is capable of performing (parts of) the encoding/decoding process in parallel with other cores of the same processor. In practice that might for example correspond to a logical core in a CPU, a physical core in a multi-core CPU, one CPU in a multi-CPU architecture or a single chip in a processing board with multiple chips.
  • thread is used to denote some processing steps that can be performed in parallel with some other processing steps. Multiple threads can thus be executed in parallel. When the number of cores in a processor is greater than or equal to the number of threads that are possible to execute, all those threads can be executed in parallel. Otherwise, some threads will start after others have finished or alternatively time-division multiplexing can be applied. One particular thread cannot be executed on multiple cores at the same time. When the decoding process at any point is divided into different parts (steps or actions) that are independent of each other and therefore can be performed in parallel we say that each such part constitutes a thread.
  • bitstream supports a certain level of parallelism if it is created in such a way that it is possible to decode certain parts of it in parallel.
  • the focus is on parallelism within pictures but the embodiments are not limit to that. It could be applied to any type of parallelism within video sequences.
  • a decoding process for a picture that consists of three slices A, B and C, defines how to decode the picture in sequential order:
  • each core in processor P in the example above is capable of processing a certain number of luma samples.
  • the decoder that uses P for decoding reports its capabilities e.g. in the form of a level, it would be forced to report the capabilities on the single core decoding performance as it would have to be prepared for bitstream that are not constructed for parallel decoding e.g. only contains a single slice.
  • a decoder running that could decode a higher level given that the bitstream supports parallel decoding can be forced to restrict it's conformance claims to a lower level. That can be avoided by conveying a parallel decoding property of the stream by using a syntax element according to embodiments of the present invention.
  • a method for encoding a bitstream representing a sequence of pictures of a video stream is provided.
  • a syntax element is sent, e.g. in the SPS, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream. That implies that the value of the syntax element can be used for determining the level of parallelism that the bitstream is encoded with.
  • the syntax element 440 is sent in a SPS 430 from a transmitting apparatus 400 to a receiving apparatus 450 via respective in/out-put units 405 , 455 .
  • the transmitting apparatus 400 comprises an encoder 410 for encoding the bitstream with a level of parallelism indicated by the syntax element 440 .
  • a syntax element managing unit 420 determines the level of parallelism that should be used. The level of parallelism can be determined based on information 470 of the receiving apparatus' 450 decoder 460 capabilities relating to parallel decoding.
  • the syntax element is also referred to as parallelism_idc which also could be denoted minSpatialSegmentation_idc.
  • the syntax element is valid for a sequence of pictures of a video stream which can be a set of pictures or an entire video sequence.
  • the value of the syntax element is set equal to the level of parallelism, wherein the level of parallelism indicates the number of threads that can be used. Referring to FIG. 5 , where one picture is divided into four independent parts of equally spatial size that can be decoded in parallel, the level of parallelism is four and the other picture is divided into two equally sized independent parts that can be decoded in parallel, the level of parallelism is two.
  • the value of the syntax element is determined as illustrated in the flowchart of FIG. 6 , according to this embodiment.
  • One way of determining the value of the syntax element is to use information from the decoder about the decoder capabilities relating to parallel decoding.
  • encoder chooses the level of parallelism purely for encoder purposes and provides the parallel information to decoders since that may be useful for some decoders.
  • one restriction referred to as e.g. a, b, and c is imposed 603 by performing the steps as specified below to fulfill 602 the requirements of one of the restrictions as specified below. Then the syntax element is sent 604 to the decoder of the receiver and the picture is encoded according to the value of the syntax element.
  • the value of the syntax element is used to impose one restriction of at least a and b on the bitstream:
  • the value of the syntax element is used to impose one restriction of a, b and c on the bitstream:
  • the requirements of restrictions a,b or a,b,c are fulfilled 602 by the following steps as illustrated in FIG. 7 a.
  • an encoder may be configured to perform the following steps in order to fulfill requirement a.
  • the treeblocks of the pictures are divided 602 a into slices (such that each division consist of consecutive treeblocks in raster scan order) such that each division does not contain more luma samples than what is allowed by restriction a.
  • the treeblocks are encoded in their respective slices (in which the encoding of the different slices are performed sequentially or in parallel).
  • An encoder may be configured to perform the following steps in order to fulfill restriction b.
  • the pictures are divided 602 b into tiles (with horizontal and vertical lines at sample positions that are integer multiples of CtbSize (CtbSize is equal to treeblock size)) such that each tile does not contain more luma samples than what is allowed by restriction b.
  • the treeblocks are encoded in their respective tiles (in which the encoding of the different tiles are performed sequentially or in parallel).
  • An encoder may be configured to perform the following steps in order to fulfill restriction c.
  • Multiple pictures constituting a video sequence are encoded 602 c with wavefronts (setting tiles_or_entropy_coding_sync_idc to 2 in each PPS) and once for the entire sequence the following is performed:
  • the CtbSize is selected such that restriction c is fulfilled.
  • the value of the syntax element is also referred to as value X.
  • One such reason could be that the encoder is encoding a video sequence for a decoder that has indicated that it needs a specific value X or for a decoder that needs the value X to be in a specific set of values (such as higher than or equal to a certain value).
  • an encoder might want to set the value X to as high number as possible in order to aid decoders and in order to produce a bitstream that as many decoders as possible will be able to decode.
  • An encoder may be configured to perform the following steps in order to indicate the value X according to restriction a.
  • Multiple pictures constituting a video sequence are encoded using one or more slice per picture.
  • the value X is signaled as the highest possible value for which every slice in the sequence fulfills restriction a.
  • An encoder may be configured to perform the following steps in order to indicate the value X according to restriction b.
  • Multiple pictures constituting a video sequence are encoded using a tile configuration that is suitable for the encoder.
  • the value X is signaled as the highest possible value for which every tile in the sequence fulfills restriction b.
  • An encoder may be configured to perform the following steps in order to indicate the value of X according to restriction c.
  • the syntax element denoted parallelism_idc indicates the restriction that are enforced on the bitstream by that the value X also referred to as parallelism is equal to (parallelism_idc/4)+1.
  • the level of parallelism indicates the number of threads that can be used. Referring to FIG. 5 , where this is exemplified by a picture which is divided into four independent parts that can be decoded in parallel, wherein the level of parallelism is four and by a picture which is divided into two independent parts that can be decoded in parallel, wherein the level of parallelism is two.
  • value X i.e. the value of the syntax element
  • This embodiment presents a more specific version of the previous embodiment and all different aspects from the previous embodiments are not repeated in this embodiment, however, they can be combined and/or restricted in any suitable fashion.
  • the level of parallelism is calculated as:
  • tiles_or_entropy_coding_sync_idc is equal to 0 in each picture parameter set activated within the coded video sequence and the maximum number of luma samples in a slice is less than or equal to
  • tiles_or_entropy_coding_sync_idc is equal to 1 in each picture parameter set activated within the coded video sequence and the maximum number of luma samples in a tile is less than or equal to
  • tiles_or_entropy_coding_sync_idc is equal to 2 in each picture parameter set activated within the coded video sequence and the syntax elements pic_width_in_luma_samples, pic_height_in_luma_samples and the variable CtbSize are restricted such that:
  • floor (x) implies the largest integer less than or equal to x.
  • pic_width_in_luma_samples is a picture width and pic_height_in_luma_samples is a picture height.
  • the value X denoted parallelism
  • X can be used by a decoder to calculate the maximum number of luma samples to be processed by one thread, making the assumption that the decoder maximally utilizes the parallel decoding information. It should be noted that there might be inter-dependencies between the different threads e.g. deblocking across tile and slice boundaries or entropy synchronization.
  • parallelism_idc floor(4*MaxLumaFS/(2*((pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize)) ⁇ 4
  • condition A in this embodiment is a special case of restriction a and the encoder steps that are presented for restriction a applies for condition A.
  • condition B in this embodiment is a special case of restriction b and the encoder steps that are presented for restriction b applies for condition B.
  • condition C in this embodiment is a special case of restriction c and the encoder steps that are presented for restriction c applies for condition C.
  • an encoder may be configured to perform the following steps in order to indicate the value of X according to condition C.
  • the value X is signaled, by means of the syntax element, as the highest possible value for which restriction c is fullfilled, i. e.
  • the value of the syntax element is used to impose a restriction of the number of bytes per slice, tile or wavefront.
  • MaxBR is the maximum bitrate for a level and CPB size is a Coded Picture Buffer size.
  • the restriction could be combined with one or more of the restrictions above.
  • an encoder may be configured to perform the following steps in order to fulfill restriction a and a requirement on the maximum number of bytes in a slice.
  • the treeblocks of a slice are encoded right up until before the start of the first treeblock T that fulfills one or more of the following conditions:
  • the encoder completes the slice before T and begins a new slice with T as the first treeblock. The process continues from step two until the entire picture has been encoded.
  • a transmitting apparatus comprises an encoder for encoding the bitstream.
  • the encoder comprises a processor and in/out-put section configured to perform the method steps as described above.
  • the encoder is configured to encode the bitstream e.g. with a level of parallelism according to the syntax element, i.e. to use the value of the syntax element to impose a restriction according to the embodiments.
  • the in/out-put section is configured to send the syntax element.
  • the encoder can be implemented by a computer wherein the processor of the encoder is configured to execute software code portions stored in a memory, wherein the software code portions when executed by the processor generates the respective encoder methods above.
  • a transmitting apparatus 400 for encoding a bitstream representing a sequence of pictures of a video stream is provided as illustrated in FIG. 8 .
  • the transmitting apparatus 400 comprises as described above an encoder 410 and a syntax element managing unit 440 .
  • the encoder and the syntax element managing unit is implemented by a computer 800 comprising a processor 810 , also referred to as a processing unit and a memory 820 .
  • the transmitting apparatus 400 according to this aspect comprises a processor 810 and memory 820 .
  • Said memory 820 contains instructions executable by said processor 810 whereby said transmitting apparatus 400 is operative to send a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • the transmitting apparatus 400 is operative to set the value of the syntax element equal to the level of parallelism. That may be achieved by a syntax element managing unit 440 e.g. implemented by the processor.
  • the transmitting apparatus 400 may be operative to use the value of the syntax element to impose one restriction of a, b and c on the bitstream by e.g. using the syntax managing unit:
  • a maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element.
  • a maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element.
  • Wavefronts are used and treeblock size and picture height and picture width are restricted jointly as a function of the value of the syntax element and as a function of the picture size.
  • the transmitting apparatus 400 is operative to: perform different actions relating to the division into treeblock sizes or selection of treeblock size in order to fulfill requirement of the restrictions referred to as a,b and c as explained previously.
  • the transmitting apparatus by using the in/out-put unit, is operative to signal the value of the syntax element as a highest possible value for which every slice in the sequence fulfills requirement of the restriction a.
  • the transmitting apparatus by using the in/out-put unit, is operative to signal the value of the syntax element as a highest possible value for which every tile in the sequence fulfills requirement of the restriction b.
  • the transmitting apparatus by using the in/out-put unit, is operative to signal the value of the value of the syntax element as the highest possible value for which requirement of the restriction c is fulfilled.
  • the transmitting apparatus e.g. by using the syntax element managing unit, is operative to determine the level of the parallelism as a function of the value of the syntax element, which could be exemplified by
  • the transmitting apparatus may be configured to: when the value of the syntax element indicates restrictions that are enforced on the bitstream such that at least two parallel processes can be used for decoding, i.e. parallelism>1, ensure that one of the following conditions must be fullfilled:
  • Condition b If tiles but not wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a tile should be less than or equal to floor (picture width*picture height/Parallelism)
  • Condition c If wavefronts but not tiles are used within the sequence to be encoded, the syntax elements indicating picture width, picture height the variable indicating treeblock size are restricted such that:
  • the in/out-put unit of the transmitting apparatus may be configured to send the syntax element in a sequence parameter set.
  • the transmitting apparatus is operative to use the value of the syntax element to impose a restriction of the number of bytes or bits per slice, tile or wavefront, e.g. by using the syntax element managing unit.
  • the encoder of the transmitting apparatus and the decoder of the receiving apparatus can be implemented in devices such as video cameras, displays, tablets, digital TV receivers, network nodes etc. Accordingly, the embodiments apply to a transmitting apparatus and any element that operates on a bitstream (such as a network-node or a Media Aware Network Element).
  • the transmitting apparatus may for example be located in a user device e.g. a video camera in e.g. a mobile device.
  • the embodiments are not limited to HEVC but may be applied to any extension of HEVC such as a scalable extension or multiview extension or to a different video codec.

Landscapes

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

Abstract

The present invention relates to a method and a transmitting apparatus for encoding a bitstream representing a sequence of pictures of a video stream comprising a processor and memory, said memory containing instructions executable by said processor whereby said transmitting apparatus is operative to:
    • send a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.

Description

    TECHNICAL FIELD
  • The embodiments relate to a method and a transmitting apparatus for improving coding performance when parallel encoding/decoding is possible.
  • BACKGROUND
  • High Efficiency Video Coding (HEVC) is a video coding standard being developed in Joint Collaborative Team—Video Coding (JCT-VC). JCT-VC is a collaborative project between Moving Picture Experts Group (MPEG) and International Telecommunication Union—Telecommunication Standardization Sector (ITU-T). Currently, an HEVC Model (HM) is defined that includes a number of tools and is considerably more efficient than H.264/Advanced Video Coding (AVC).
  • HEVC is a block based hybrid video coded that uses both inter prediction (prediction from previous coded pictures) and intra prediction (prediction from previous coded pixels in the same picture). Each picture is divided into quadratic treeblocks (corresponding to macroblocks in H.264/AVC) that can be of size 16×16, 32×32 or 64×64 pixels. A variable CtbSize is used to denote the size of treeblocks expressed as number of pixels of the treeblocks in one dimension i.e. 16, 32 or 64.
  • Regular slices are similar as in H.264/AVC. Each regular slice is encapsulated in its own Network Abstraction Layer (NAL) unit, and in-picture prediction (intra sample prediction, motion information prediction, coding mode prediction) and entropy coding dependency across slice boundaries are disabled. Thus a regular slice can be reconstructed independently from other regular slices within the same picture. Since the treeblock, which is a basic unit in HEVC, can be of a relatively big size e.g., 64×64, a concept of “fine granularity slices” is included in HEVC to allow for Maximum Transmission Unit MTU size matching through slice boundaries within a treeblock, as a special form of regular slices. The slice granularity is signaled in a picture parameter set, whereas the address of a fine granularity slice is still signaled in a slice header.
  • The regular slice is the only tool that can be used for parallelization in H.264/AVC. Parallelization implies that parts of a single picture can be encoded and decoded in parallel as illustrated in FIG. 1 where threaded decoding can be used using slices. Regular slices based parallelization does not require much inter-processor or inter-core communication. However, for the same reason, regular slices can require some coding overhead due to the bit cost of the slice header and due to the lack of prediction across the slice border. Further, regular slices (in contrast to some of the other tools mentioned below) also serve as the key mechanism for bitstream partitioning to match MTU size requirements, due to the in-picture independence of regular slices and that each regular slice is encapsulated in its own NAL unit. In many cases, the goal of parallelization and the goal of MTU size matching place contradicting demands to the slice layout in a picture. The realization of this situation led to the development of the parallelization tools mentioned below.
  • In wavefront parallel processing (WPP), the picture is partitioned into single rows of treeblocks. Entropy decoding and prediction are allowed to use data from treeblocks in other partitions. Parallel processing is possible through parallel decoding of rows of treeblocks, where the start of the decoding of a row is delayed by two treeblocks, so to ensure that data related to a treeblock above and to the right of the subject treeblock is available before the subject treeblock is being decoded. Using this staggered start (which appears like a wavefront when represented graphically as illustrated in FIG. 2), parallelization is possible with up to as many processors/cores as the picture contains treeblock rows. Due to the permissiveness of in-picture prediction between neighboring treeblock rows within a picture, the required inter-processor/inter-core communication to enable in-picture prediction can be substantial. The WPP partitioning does not result in the production of additional NAL units compared to when it is not applied, thus WPP cannot be used for MTU size matching. A wavefront segment contains exactly one line of treeblocks.
  • Tiles define horizontal and vertical boundaries that partition a picture into tile columns and rows. That implies that the tiles in HEVC divide a picture into areas with a defined width and height as illustrated in FIG. 3. Each area of the tiles consists of an integer number of treeblocks that are processed in raster scan order. The tiles themselves are processed in raster scan order throughout the picture. The exact tile configuration or tile information (number of tiles, width and height of each tile etc) can be signaled in a sequence parameter set (SPS) and in a picture parameter set (PPS). The tile information contains the width, height and position of each tile in a picture. This means that if the coordinates of a block is known, it is also known what tile the block belongs to.
  • For simplicity, restrictions on the application of the different picture partitioning schemes are specified in HEVC. Tiles and WPP may not be applied at the same time. Furthermore, for each slice and tile, either or both of the following conditions must be fulfilled: 1) all coded treeblocks in a slice belong to the same tile; 2) all coded treeblocks in a tile belong to the same slice.
  • The Sequence Parameter Set (SPS) holds information that is valid for an entire coded video sequence. Specifically it holds the syntax elements profile_idc and level_idc that are used to indicate which profile and level a bitstream conforms to. Profiles and levels specify restrictions on bitstreams and hence limits on the capabilities needed to decode the bitstreams. Profiles and levels may also be used to indicate interoperability points between individual decoder implementations. The level enforces restrictions on the bitstream for example on the Picture size (denoted MaxLumaFS expressed in luma samples) and sample rate (denoted MaxLumaPR expressed in luma samples per second) as well as max bit rate (denoted MaxBR expressed in bits per second) and max coded picture buffer size (denoted Max CPB size expressed in bits).
  • The Picture Parameter Set (PPS) holds information that is valid for some (or all) pictures in a coded video sequence. The PPS comprises syntax elements that control the usage of wavefronts and tiles and it is required to have same value in all PPSs that are active in the same coded video sequence.
  • Moreover, both HEVC and H.264 define a video usability information (VUI) syntax structure, that can be present in a sequence parameter set and contains parameters that do not affect the decoding process, i.e. do not affect the pixel values. Supplemental Enhancement Information (SEI) is another structure that can be present in any access unit and that contains information that does not affect the decoding process.
  • Hence, as mentioned above, compared to H.264/AVC, HEVC provides better possibilities for parallelization. Parallelization implies that parts of a single picture can be encoded and decoded in parallel. Specifically tiles and WPP are tools developed for parallelization purposes. Both were originally designed for encoder parallelization but they may also be used for decoder parallelization.
  • When tiles are being used for encoder parallelism, the encoder first chooses a tile partitioning. Since tile boundaries break all predictions between the tiles, the encoder can assign the encoding of multiple tiles to multiple threads. As soon as there are at least two tiles, multiple thread encoding can be done.
  • Accordingly, in this context, the fact that a number of threads can be used, implies that the actual workload of the encoding/decoding process can be divided into separate “processes” that are performed independently of each other, i.e. they can be performed in parallel in separate threads.
  • HEVC defines two types of entry points for parallel decoding. Entry points can be used by a decoder to find the position in the bitstream where the bits for a tile or substream starts. The first type is entry points offsets. Those are listed in the slice header and indicates starting points of one or more tiles that are contained in the slice. The second type is entry point markers which separates tiles in the bitstream. An entry point marker is a specific codeword (start code) which cannot occur anywhere else in the bitstream.
  • Thus for decoder parallelism to work, there needs to be entry points in the bitstream. For parallel encoding, there does not need to be entry points, the encoder can just stitch the bitstream together after the encoding of the tiles/substreams are complete. However, the decoder needs to know where each tile starts in the bitstream in order to decode in parallel. If an encoder only wants to encode in parallel but does not want to enable parallel decoding, it could omit the entry points, but if it also wants to enable decoding in parallel it must insert entry points.
  • SUMMARY
  • The object of the embodiments of the present invention is to improve the performance when parallel encoding/decoding is available. That is achieved by sending a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream. A decoder, receiving an encoded bitstream that is encoded according to the indication from the syntax element, can use this indication when deciding how it could decode the encoded bitstream and if the bistream can be encoded.
  • According to a first aspect of the embodiments a method for encoding a bitstream representing a sequence of pictures of a video stream is provided. In the method, a syntax element is sent, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • According to a second aspect a transmitting apparatus for encoding a bitstream representing a sequence of pictures of a video stream is provided. The transmitting apparatus comprises a processor and memory. Said memory contains instructions executable by said processor whereby said transmitting apparatus is operative to send a syntax element wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • An advantage with at least some embodiments, is that they provide means of indicating that a bitstream can be decoded in parallel. This enables a decoder, that is capable of decoding in parallel, to find out before starting decoding whether it will be possible for the decoder to decode the stream or not. There may for example be a decoder that can decode 720p on a single thread but decode 1080p given that each picture is split into at least 4 independently decodeable regions (i.e. it can be decided in 4 parallel threads). By using the embodiments, the decoder will know whether each picture is split or not, i.e. whether it can be decoded in parallel or not.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an example of threaded decoding using slices according to prior art.
  • FIG. 2 illustrates an example of threaded decoding using wavefronts according to prior art.
  • FIG. 3 illustrates an example of threaded decoding using tiles according to prior art.
  • FIG. 4 illustrates schematically a transmitting apparatus configured to transmit the syntax element to a receiving apparatus according to an embodiment of the present invention.
  • FIG. 5 exemplifies parallelism levels according to prior art.
  • FIG. 5 illustrates flowcharts of the method according to the present invention.
  • FIG. 6 illustrates schematically a transmitting apparatus according to embodiments of the present invention.
  • FIG. 7 illustrates schematically an implementation of the transmitting apparatus according to embodiments of the present invention.
  • DETAILED DESCRIPTION
  • In this specification, the term processing unit is used to refer to the unit that encodes or decodes a coded video sequence. In practice that might for example correspond to a CPU, a GPU, a DSP, an FPGA, or any type of specialized chip. It might also correspond to a unit that contains multiple CPUs, CPUs etc or combinations of those. The term core is used to refer to one part of the processing unit that is capable of performing (parts of) the encoding/decoding process in parallel with other cores of the same processor. In practice that might for example correspond to a logical core in a CPU, a physical core in a multi-core CPU, one CPU in a multi-CPU architecture or a single chip in a processing board with multiple chips.
  • The term thread is used to denote some processing steps that can be performed in parallel with some other processing steps. Multiple threads can thus be executed in parallel. When the number of cores in a processor is greater than or equal to the number of threads that are possible to execute, all those threads can be executed in parallel. Otherwise, some threads will start after others have finished or alternatively time-division multiplexing can be applied. One particular thread cannot be executed on multiple cores at the same time. When the decoding process at any point is divided into different parts (steps or actions) that are independent of each other and therefore can be performed in parallel we say that each such part constitutes a thread.
  • It is said that a bitstream supports a certain level of parallelism if it is created in such a way that it is possible to decode certain parts of it in parallel. In this text the focus is on parallelism within pictures but the embodiments are not limit to that. It could be applied to any type of parallelism within video sequences.
  • A decoding process, for a picture that consists of three slices A, B and C, defines how to decode the picture in sequential order:
      • 1. Decode A.
      • 2. Decode B.
      • 3. Decode C.
      • 4. Perform deblocking inside and between treeblocks.
  • However, if a processor P has 4 cores (called i, ii, iii and iv) the decoding can be performed as follows
      • 1. Core i decodes slice A, core ii decodes slice B, core iii decodes slice C in parallel.
      • 2. When all slices are decoded, deblocking inside and between treeblocks is performed by any core (since all four cores will be free).
  • This is possible due to that the slices are independently decodable.
  • It might be the case that each core in processor P in the example above is capable of processing a certain number of luma samples. When the decoder that uses P for decoding reports its capabilities e.g. in the form of a level, it would be forced to report the capabilities on the single core decoding performance as it would have to be prepared for bitstream that are not constructed for parallel decoding e.g. only contains a single slice.
  • A decoder running that could decode a higher level given that the bitstream supports parallel decoding can be forced to restrict it's conformance claims to a lower level. That can be avoided by conveying a parallel decoding property of the stream by using a syntax element according to embodiments of the present invention.
  • Therefore, a method for encoding a bitstream representing a sequence of pictures of a video stream is provided. In the method, a syntax element is sent, e.g. in the SPS, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream. That implies that the value of the syntax element can be used for determining the level of parallelism that the bitstream is encoded with. As illustrated in FIG. 4, the syntax element 440 is sent in a SPS 430 from a transmitting apparatus 400 to a receiving apparatus 450 via respective in/out-put units 405,455. The transmitting apparatus 400 comprises an encoder 410 for encoding the bitstream with a level of parallelism indicated by the syntax element 440. A syntax element managing unit 420 determines the level of parallelism that should be used. The level of parallelism can be determined based on information 470 of the receiving apparatus' 450 decoder 460 capabilities relating to parallel decoding.
  • The syntax element is also referred to as parallelism_idc which also could be denoted minSpatialSegmentation_idc. The syntax element is valid for a sequence of pictures of a video stream which can be a set of pictures or an entire video sequence.
  • According to one embodiment, the value of the syntax element is set equal to the level of parallelism, wherein the level of parallelism indicates the number of threads that can be used. Referring to FIG. 5, where one picture is divided into four independent parts of equally spatial size that can be decoded in parallel, the level of parallelism is four and the other picture is divided into two equally sized independent parts that can be decoded in parallel, the level of parallelism is two.
  • The value of the syntax element is determined as illustrated in the flowchart of FIG. 6, according to this embodiment. One way of determining the value of the syntax element is to use information from the decoder about the decoder capabilities relating to parallel decoding.
  • Another way is that the encoder chooses the level of parallelism purely for encoder purposes and provides the parallel information to decoders since that may be useful for some decoders.
  • Another way is to assume a certain decoder design for the decoders that may decode the stream. If you know that 80% of all smartphones have 4 cores, the encoder can always use 4 independent parts.
  • When the value of the syntax element is determined 601, one restriction referred to as e.g. a, b, and c is imposed 603 by performing the steps as specified below to fulfill 602 the requirements of one of the restrictions as specified below. Then the syntax element is sent 604 to the decoder of the receiver and the picture is encoded according to the value of the syntax element.
  • According to one embodiment, the value of the syntax element is used to impose one restriction of at least a and b on the bitstream:
      • a: A maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element.
      • b: A maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element.
  • According to a further embodiment, the value of the syntax element is used to impose one restriction of a, b and c on the bitstream:
      • a: A maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element.
      • b: A maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element.
      • c: Wavefronts are used and treeblock size, picture height and picture width are restricted jointly as a function of the value of the syntax element and as a function of the picture size.
  • According of an embodiment, the requirements of restrictions a,b or a,b,c are fulfilled 602 by the following steps as illustrated in FIG. 7 a.
  • Hence, an encoder may be configured to perform the following steps in order to fulfill requirement a.
  • Multiple pictures constituting a video sequence are encoded and the following is performed:
  • The treeblocks of the pictures are divided 602 a into slices (such that each division consist of consecutive treeblocks in raster scan order) such that each division does not contain more luma samples than what is allowed by restriction a.
  • The treeblocks are encoded in their respective slices (in which the encoding of the different slices are performed sequentially or in parallel).
  • An encoder may be configured to perform the following steps in order to fulfill restriction b.
  • Multiple pictures constituting a video sequence are encoded and the following is performed:
  • The pictures are divided 602 b into tiles (with horizontal and vertical lines at sample positions that are integer multiples of CtbSize (CtbSize is equal to treeblock size)) such that each tile does not contain more luma samples than what is allowed by restriction b.
  • The treeblocks are encoded in their respective tiles (in which the encoding of the different tiles are performed sequentially or in parallel).
  • An encoder may be configured to perform the following steps in order to fulfill restriction c.
  • Multiple pictures constituting a video sequence are encoded 602 c with wavefronts (setting tiles_or_entropy_coding_sync_idc to 2 in each PPS) and once for the entire sequence the following is performed:
  • Given the resolution (the height and the width in luma samples) of the (pictures in the) video sequence, the CtbSize is selected such that restriction c is fulfilled.
  • There are several different reasons why an encoder needs to fulfill one (or more) of the requirements for a certain value of the syntax element. The value of the syntax element is also referred to as value X. One such reason could be that the encoder is encoding a video sequence for a decoder that has indicated that it needs a specific value X or for a decoder that needs the value X to be in a specific set of values (such as higher than or equal to a certain value).
  • If there are no specific requirement for the value X, an encoder might want to set the value X to as high number as possible in order to aid decoders and in order to produce a bitstream that as many decoders as possible will be able to decode. As an example, consider the case where an encoder splits each picture into 4 equal parts which means that X=4.0. It is ok for the encoder to send X=2.0 and to indicate that the pictures are split into at least 2 parts, but it could be advantageous for the decoder to send a value X with the highest possible value, i.e. 4.0 in this example.
  • An encoder may be configured to perform the following steps in order to indicate the value X according to restriction a.
  • 1. Multiple pictures constituting a video sequence are encoded using one or more slice per picture.
  • 2. The value X is signaled as the highest possible value for which every slice in the sequence fulfills restriction a.
  • An encoder may be configured to perform the following steps in order to indicate the value X according to restriction b.
  • 1. Multiple pictures constituting a video sequence are encoded using a tile configuration that is suitable for the encoder.
  • 2. The value X is signaled as the highest possible value for which every tile in the sequence fulfills restriction b.
  • An encoder may be configured to perform the following steps in order to indicate the value of X according to restriction c.
  • 1. Multiple pictures constituting a video sequence with height equal to pic_height_in_luma_samples and width equal to pic_width_in_luma_samples and treeblock size equal to CtbSize are encoded using WPP.
  • 2. The value X is signaled as the highest possible value for which restriction c is fulfilled.
  • According to a further embodiment, the syntax element denoted parallelism_idc indicates the restriction that are enforced on the bitstream by that the value X also referred to as parallelism is equal to (parallelism_idc/4)+1. Similar to the embodiments described above, the level of parallelism indicates the number of threads that can be used. Referring to FIG. 5, where this is exemplified by a picture which is divided into four independent parts that can be decoded in parallel, wherein the level of parallelism is four and by a picture which is divided into two independent parts that can be decoded in parallel, wherein the level of parallelism is two.
  • Thus the value X (i.e. the value of the syntax element) can be used for determining the level of parallelism that the bitstream is encoded with by calculating value
  • X=parallelism=(parallelism_idc/4)+1=(syntax element/4)+1.
  • This embodiment presents a more specific version of the previous embodiment and all different aspects from the previous embodiments are not repeated in this embodiment, however, they can be combined and/or restricted in any suitable fashion.
  • According to this embodiment, the level of parallelism is calculated as:
  • Parallelism=(parallelism_idc/m)+1
  • When Parallelism is greater than 1 the constraints specified below applies. The preferred value of m is 4 but other values can alternatively be used.
  • When Parallelism is greater than 1 701, one of the following conditions must be fulfilled 702 as illustrated in the flowchart of FIG. 7 b:
  • A. tiles_or_entropy_coding_sync_idc is equal to 0 in each picture parameter set activated within the coded video sequence and the maximum number of luma samples in a slice is less than or equal to
  • floor(pic_width_in_luma_samples*pic_height_in_luma_samples/parallelism).
  • B. tiles_or_entropy_coding_sync_idc is equal to 1 in each picture parameter set activated within the coded video sequence and the maximum number of luma samples in a tile is less than or equal to
  • floor(pic_width_in_luma_samples*pic_height_in_luma_samples/parallelism).
  • C. tiles_or_entropy_coding_sync_idc is equal to 2 in each picture parameter set activated within the coded video sequence and the syntax elements pic_width_in_luma_samples, pic_height_in_luma_samples and the variable CtbSize are restricted such that:
  • (2*(pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize≦floor(MaxLumaFS/parallelism)
  • It should be noted that floor (x) implies the largest integer less than or equal to x.
  • pic_width_in_luma_samples is a picture width and pic_height_in_luma_samples is a picture height.
  • The value X, denoted parallelism, can be used by a decoder to calculate the maximum number of luma samples to be processed by one thread, making the assumption that the decoder maximally utilizes the parallel decoding information. It should be noted that there might be inter-dependencies between the different threads e.g. deblocking across tile and slice boundaries or entropy synchronization. To aid decoders in planning the decoding workload distribution it is recommended that encoders set the value of parallelism_idc to the highest possible value for which one of the three conditions above is fulfilled. For the case when tiles_or_entropy_coding_sync_idc=2 that means setting
  • parallelism_idc=floor(4*MaxLumaFS/(2*((pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize))−4
  • The condition A in this embodiment is a special case of restriction a and the encoder steps that are presented for restriction a applies for condition A.
  • The condition B in this embodiment is a special case of restriction b and the encoder steps that are presented for restriction b applies for condition B.
  • The condition C in this embodiment is a special case of restriction c and the encoder steps that are presented for restriction c applies for condition C.
  • Specifically, an encoder may be configured to perform the following steps in order to indicate the value of X according to condition C.
  • 1. Multiple pictures constituting a video sequence with height equal to pic_height_in_luma_samples and width equal to pic_width_in_luma_samples and treeblock size equal to CtbSize are encoded using WPP.
  • 2. The value X is signaled, by means of the syntax element, as the highest possible value for which restriction c is fullfilled, i. e.
  • value X=floor(MaxLumaFS/(2*((pic_height_in_luma_samples/CtbSize)+(pic_width_in_luma_samples/CtbSize))*CtbSize*CtbSize))
  • According to a further embodiment, the value of the syntax element is used to impose a restriction of the number of bytes per slice, tile or wavefront.
  • Accordingly, there may be a restriction on the maximum number of bytes (or bits) in one slice, tile and/or wavefront-substream as a function of the value X and optionally as a function of MaxBR and/or Max CPB size. MaxBR is the maximum bitrate for a level and CPB size is a Coded Picture Buffer size.
  • The restriction could be combined with one or more of the restrictions above.
  • Specifically, an encoder may be configured to perform the following steps in order to fulfill restriction a and a requirement on the maximum number of bytes in a slice.
  • 1. Multiple pictures constituting a video sequence are encoded and the following is performed:
  • 2. The treeblocks of a slice are encoded right up until before the start of the first treeblock T that fulfills one or more of the following conditions:
  • i. if it would have been encoded in the same slice it would have resulted in that the slice would have contained more luma samples than allowed by restriction a.
  • ii. if it would have been encoded in the same slice it would have resulted in that the number of bytes in the slice would be more than what is allowed by the requirement on the maximum number of bytes in a slice.
  • 3. Instead of including that specific treeblock T in the slice that is currently coded the encoder completes the slice before T and begins a new slice with T as the first treeblock. The process continues from step two until the entire picture has been encoded.
  • According to further aspects, a transmitting apparatus is provided. The transmitting apparatus comprises an encoder for encoding the bitstream. The encoder comprises a processor and in/out-put section configured to perform the method steps as described above. Thus the encoder is configured to encode the bitstream e.g. with a level of parallelism according to the syntax element, i.e. to use the value of the syntax element to impose a restriction according to the embodiments. The in/out-put section is configured to send the syntax element. Moreover, the encoder can be implemented by a computer wherein the processor of the encoder is configured to execute software code portions stored in a memory, wherein the software code portions when executed by the processor generates the respective encoder methods above.
  • Accordingly, a transmitting apparatus 400 for encoding a bitstream representing a sequence of pictures of a video stream is provided as illustrated in FIG. 8. The transmitting apparatus 400 comprises as described above an encoder 410 and a syntax element managing unit 440. According to one implementation the encoder and the syntax element managing unit is implemented by a computer 800 comprising a processor 810, also referred to as a processing unit and a memory 820. Thus, the transmitting apparatus 400 according to this aspect comprises a processor 810 and memory 820. Said memory 820 contains instructions executable by said processor 810 whereby said transmitting apparatus 400 is operative to send a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
  • The transmitting apparatus 400 is operative to set the value of the syntax element equal to the level of parallelism. That may be achieved by a syntax element managing unit 440 e.g. implemented by the processor.
  • Further, the transmitting apparatus 400 may be operative to use the value of the syntax element to impose one restriction of a, b and c on the bitstream by e.g. using the syntax managing unit:
  • a: A maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element.
  • b: A maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element.
  • c: Wavefronts are used and treeblock size and picture height and picture width are restricted jointly as a function of the value of the syntax element and as a function of the picture size.
  • In addition, according to different embodiments, the transmitting apparatus 400 is operative to: perform different actions relating to the division into treeblock sizes or selection of treeblock size in order to fulfill requirement of the restrictions referred to as a,b and c as explained previously.
  • According to a further embodiment, the transmitting apparatus, by using the in/out-put unit, is operative to signal the value of the syntax element as a highest possible value for which every slice in the sequence fulfills requirement of the restriction a.
  • According to a further embodiment, the transmitting apparatus, by using the in/out-put unit, is operative to signal the value of the syntax element as a highest possible value for which every tile in the sequence fulfills requirement of the restriction b.
  • According to a further embodiment, the transmitting apparatus, by using the in/out-put unit, is operative to signal the value of the value of the syntax element as the highest possible value for which requirement of the restriction c is fulfilled.
  • According to a further embodiment, the transmitting apparatus, e.g. by using the syntax element managing unit, is operative to determine the level of the parallelism as a function of the value of the syntax element, which could be exemplified by
  • Parallelism=((value of syntax element)/4)+1.
  • Hence the transmitting apparatus may be configured to: when the value of the syntax element indicates restrictions that are enforced on the bitstream such that at least two parallel processes can be used for decoding, i.e. parallelism>1, ensure that one of the following conditions must be fullfilled:
  • Condition a: If neither tiles nor wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a slice should be less than or equal to floor (picture width*picture height/Parallelism)
  • Condition b: If tiles but not wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a tile should be less than or equal to floor (picture width*picture height/Parallelism)
  • Condition c: If wavefronts but not tiles are used within the sequence to be encoded, the syntax elements indicating picture width, picture height the variable indicating treeblock size are restricted such that:
  • (2*(picture height/treeblock size)+(picture width/treeblock size))*treeblock size*treeblock size≦floor(maximum frame size/Parallelism), wherein floor (x) implies the largest integer less than or equal to x.
  • The in/out-put unit of the transmitting apparatus may be configured to send the syntax element in a sequence parameter set.
  • As a yet further alternative, the transmitting apparatus is operative to use the value of the syntax element to impose a restriction of the number of bytes or bits per slice, tile or wavefront, e.g. by using the syntax element managing unit.
  • The encoder of the transmitting apparatus and the decoder of the receiving apparatus, respectively, can be implemented in devices such as video cameras, displays, tablets, digital TV receivers, network nodes etc. Accordingly, the embodiments apply to a transmitting apparatus and any element that operates on a bitstream (such as a network-node or a Media Aware Network Element). The transmitting apparatus may for example be located in a user device e.g. a video camera in e.g. a mobile device.
  • The embodiments are not limited to HEVC but may be applied to any extension of HEVC such as a scalable extension or multiview extension or to a different video codec.

Claims (34)

1-33. (canceled)
34. A method for encoding a bitstream representing a sequence of pictures of a video stream comprising sending a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
35. The method according to claim 34, wherein the value of the syntax element is equal to the level of parallelism.
36. The method according to claims 35, wherein the value of the syntax element is used to impose a restriction of the number of bytes or bits per slice, tile or wavefront.
37. The method according to claim 34, wherein the value of the syntax element is used to impose one restriction of at least (a) and (b) on the bitstream, and wherein the restriction (a) is that a maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element, and the restriction (b) is that a maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element.
38. The method according to claim 37, wherein the following is performed in order to fulfill the restriction (a): dividing treeblocks of the pictures into slices such that each division consist of consecutive treeblocks in raster scan order and such that each division does not contain more luma samples than what is allowed by the restriction (a).
39. The method according to claim 37, wherein the following is performed in order to fulfill the restriction (b): dividing the pictures into tiles with horizontal and vertical lines at sample positions that are integer multiples of treeblock size such that each tile does not contain more luma samples than what is allowed by the restriction (b).
40. The method according to claim 37, wherein the value of the syntax element is signaled as a highest possible value for which every slice in the sequence fulfills the restriction (a).
41. The method according to claim 37, wherein the value of the syntax element is signaled as a highest possible value for which every tile in the sequence fulfills the restriction (b).
42. The method according to claim 34, wherein the value of the syntax element is used to impose one restriction of (a), (b) and (c) on the bitstream, and wherein the restriction (a) is that a maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element, the restriction (b) is that a maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element, and the restriction (c) is that wavefronts are used and treeblock size and picture height and picture width are restricted jointly as a function of the value of the syntax element and as a function of the picture size.
43. The method according to claim 42, wherein for pictures to be encoded with wavefronts, and for the entire sequence, the following is performed in order to fulfill the restriction (c): encoding the sequence of pictures of the video stream with wavefronts and once for the entire sequence, given the resolution of the pictures in the video stream, selecting treeblock size to fulfill requirement of the restriction (c).
44. The method according to claim 42, wherein the value of the value of the syntax element is signaled as the highest possible value for which the restriction (c) is fulfilled.
45. The method according to claim 34, wherein the level of the parallelism, referred to as parallelism, is determined as a function of the value of the syntax element.
46. The method according to claim 45, wherein the level of the parallelism, referred to as parallelism, is equal to ((value of syntax element)/4)+1.
47. The method according to claim 45, wherein when the value of the syntax element indicates restrictions that are enforced on the bitstream such that at least two parallel processes can be used for decoding, one of the following conditions must be fulfilled:
condition (a): if neither tiles nor wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a slice should be less than or equal to floor(picture width*picture height/parallelism);
condition (b): if tiles but not wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a tile should be less than or equal to floor(picture width*picture height/parallelism); and
condition (c): if wavefronts but not tiles are used within the sequence to be encoded, the syntax elements indicating picture width, picture height the variable indicating treeblock size are restricted such that:
(2*(picture height/treeblock size)+(picture width/treeblock size))* treeblock size*treeblock size≦floor(maximum frame size/parallelism, wherein floor (x) implies the largest integer less than or equal to x.
48. The method according to claim 34, wherein the syntax element is sent in a sequence parameter set.
49. A transmitting apparatus for encoding a bitstream representing a sequence of pictures of a video stream comprising a processor and memory, said memory containing instructions executable by said processor, whereby said transmitting apparatus is operative to send a syntax element, wherein a value of the syntax element is indicative of restrictions that are enforced on the bitstream in a way that guarantees a certain level of parallelism for decoding the bitstream.
50. The transmitting apparatus according to claim 49, wherein the transmitting apparatus is operative to set the value of the syntax element equal to the level of parallelism.
51. The transmitting apparatus according to claim 50, wherein the transmitting apparatus is operative to use the value of the syntax element to impose a restriction of the number of bytes or bits per slice, tile or wavefront.
52. The transmitting apparatus according to any of claim 49, wherein the transmitting apparatus is operative to use the value of the syntax element to impose one restriction of at least (a) and (b) on the bitstream, wherein the restriction (a) is that a maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element, and the restriction (b) is that a maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element.
53. The transmitting apparatus according to claim 52, wherein the transmitting apparatus is operative to perform the following in order to fulfill the restriction (a): divide treeblocks of the pictures into slices such that each division consist of consecutive treeblocks in raster scan order and such that each division does not contain more luma samples than what is allowed by the restriction (a).
54. The transmitting apparatus according to claim 52, wherein the transmitting apparatus is operative to perform the following in order to fulfill the restriction (b): divide the pictures into tiles with horizontal and vertical lines at sample positions that are integer multiples of treeblock size such that each tile does not contain more luma samples than what is allowed by the restriction (b).
55. The transmitting apparatus according to claim 52, wherein the transmitting apparatus is operative to signal the value of the syntax element as a highest possible value for which every slice in the sequence fulfills the restriction (a).
56. The transmitting apparatus according to claim 52, wherein the transmitting apparatus is operative to signal the value of the syntax element as a highest possible value for which every tile in the sequence fulfills the restriction (b).
57. The transmitting apparatus according to claim 49, wherein the transmitting apparatus is operative to use the value of the syntax element to impose one restriction of (a), (b) and (c) on the bitstream, and wherein the restriction (a) is that a maximum number of luma samples per slice is restricted as a function of the picture size and as a function of the value of the syntax element, the restriction (b) is that a maximum number of luma samples per tile is restricted as a function of the picture size and as a function of the value of the syntax element, and the restriction (c) is that wavefronts are used and treeblock size and picture height and picture width are restricted jointly as a function of the value of the syntax element and as a function of the picture size.
58. The transmitting apparatus according to claim 57, wherein the transmitting apparatus is operative to, for pictures to be encoded with wavefronts, and for the entire sequence, perform the following in order to fulfill the restriction (c): encode the sequence of pictures of the video stream with wavefronts and once for the entire sequence, given the resolution of the pictures in the video stream, select treeblock size to fulfill the restriction (c).
59. The transmitting apparatus according to claim 57, wherein the transmitting apparatus is operative to signal the value of the value of the syntax element as the highest possible value for which the restriction (c) is fulfilled.
60. The transmitting apparatus according to claim 57, wherein the transmitting apparatus is operative to encode the sequence of the pictures of the video stream using a tile configuration that is suitable for the encoder, and to signal the value of the syntax element as a highest possible value for which every tile in the sequence fulfills the restriction (b).
61. The transmitting apparatus according to claim 57, wherein the transmitting apparatus is operative to indicate the value of the syntax element according to the restriction (c), to encode the pictures of the video stream having a picture height equal to
pic_height_in_luma_samples and a picture width equal to pic_width_in_luma_samples and a treeblock size equal to CtbSize using wavefront parallel processing, WPP, and to signal the value of the syntax element as a highest possible value for which the restriction (c) is fulfilled.
62. The transmitting apparatus according to claim 49, wherein the transmitting apparatus is operative to determine the level of the parallelism, referred to as parallelism, as a function of the value of the syntax element.
63. The transmitting apparatus according to claim 62, wherein the level of the parallelism, referred to as parallelism, is equal to ((value of syntax element)/4)+1.
64. The transmitting apparatus according to claim 62, wherein the transmitting apparatus is configured to, when the value of the syntax element indicates restrictions that are enforced on the bitstream such that at least two parallel processes can be used for decoding, ensure that one of the following conditions must be fulfilled:
condition (a): if neither tiles nor wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a slice should be less than or equal to floor(picture width*picture height/parallelism);
condition (b): if tiles but not wavefronts are used within the sequence to be encoded, the maximum number of luma samples in a tile should be less than or equal to floor( picture width*picture height/parallelism); and
condition (c): if wavefronts but not tiles are used within the sequence to be encoded, the syntax elements indicating picture width, picture height the variable indicating treeblock size are restricted such that:
(2*(picture height/treeblock size)+(picture width/treeblock size))* treeblock size*treeblock size≦floor(maximum frame size/parallelism, wherein floor (x) implies the largest integer less than or equal to x.
65. The transmitting apparatus according to claim 49, wherein the transmitting apparatus is configured to send the syntax element in a sequence parameter set.
66. The transmitting apparatus according to claim 49, wherein the transmitting apparatus is a user device.
US14/348,626 2012-06-29 2013-06-27 Transmitting Apparatus and Method Thereof for Video Processing Abandoned US20140241439A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/348,626 US20140241439A1 (en) 2012-06-29 2013-06-27 Transmitting Apparatus and Method Thereof for Video Processing

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261666056P 2012-06-29 2012-06-29
PCT/SE2013/050803 WO2014003675A1 (en) 2012-06-29 2013-06-27 Transmitting apparatus and method thereof for video processing
US14/348,626 US20140241439A1 (en) 2012-06-29 2013-06-27 Transmitting Apparatus and Method Thereof for Video Processing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2013/050803 A-371-Of-International WO2014003675A1 (en) 2012-06-29 2013-06-27 Transmitting apparatus and method thereof for video processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/880,832 Continuation US20180152716A1 (en) 2012-06-29 2018-01-26 Transmitting Apparatus and Method Thereof for Video Processing

Publications (1)

Publication Number Publication Date
US20140241439A1 true US20140241439A1 (en) 2014-08-28

Family

ID=48793513

Family Applications (5)

Application Number Title Priority Date Filing Date
US14/348,626 Abandoned US20140241439A1 (en) 2012-06-29 2013-06-27 Transmitting Apparatus and Method Thereof for Video Processing
US14/410,968 Active 2034-06-27 US10142622B2 (en) 2012-06-29 2013-06-27 Apparatus and methods thereof for video processing
US15/880,832 Abandoned US20180152716A1 (en) 2012-06-29 2018-01-26 Transmitting Apparatus and Method Thereof for Video Processing
US16/193,488 Active US10819998B2 (en) 2012-06-29 2018-11-16 Apparatus and methods thereof for video processing
US17/025,086 Active 2033-09-20 US11570456B2 (en) 2012-06-29 2020-09-18 Apparatus and methods thereof for video processing

Family Applications After (4)

Application Number Title Priority Date Filing Date
US14/410,968 Active 2034-06-27 US10142622B2 (en) 2012-06-29 2013-06-27 Apparatus and methods thereof for video processing
US15/880,832 Abandoned US20180152716A1 (en) 2012-06-29 2018-01-26 Transmitting Apparatus and Method Thereof for Video Processing
US16/193,488 Active US10819998B2 (en) 2012-06-29 2018-11-16 Apparatus and methods thereof for video processing
US17/025,086 Active 2033-09-20 US11570456B2 (en) 2012-06-29 2020-09-18 Apparatus and methods thereof for video processing

Country Status (5)

Country Link
US (5) US20140241439A1 (en)
EP (1) EP2868094A1 (en)
KR (1) KR102144881B1 (en)
CN (2) CN104685886B (en)
WO (2) WO2014003676A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172713A1 (en) * 2012-07-09 2015-06-18 Panasonic Intellectual Property Corporation Of America Image encoding method, image decoding method, image encoding device, and image decoding device
US9596470B1 (en) * 2013-09-27 2017-03-14 Ambarella, Inc. Tree-coded video compression with coupled pipelines
US10257529B2 (en) 2014-06-30 2019-04-09 Intel Corporation Techniques for generating wave front groups for parallel processing a video frame by a video encoder
US11381621B2 (en) * 2018-04-11 2022-07-05 Samsung Electronics Co., Ltd. Device and method for processing data in multimedia system

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102470694B1 (en) * 2012-02-04 2022-11-25 엘지전자 주식회사 Video encoding method, video decoding method, and device using same
US9432427B2 (en) * 2013-07-25 2016-08-30 Futurewei Technologies, Inc. System and method for effectively controlling client behavior in adaptive streaming
GB2523993A (en) * 2014-03-06 2015-09-16 Sony Corp Data encoding and decoding
CN109076216B (en) * 2016-03-30 2023-03-31 韩国电子通信研究院 Method and apparatus for encoding and decoding video using picture division information
WO2017171438A1 (en) * 2016-03-30 2017-10-05 한국전자통신연구원 Method and apparatus for encoding and decoding video using picture division information
BR112021004636A2 (en) * 2018-09-13 2021-05-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. video encoder and decoder, video merger, and methods for providing a representation of encoded and merged video
JP7285857B2 (en) * 2019-01-16 2023-06-02 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Video coding with uniform tile splits with reminders
CN110062278A (en) * 2019-04-12 2019-07-26 北京字节跳动网络技术有限公司 Video data issues method, apparatus, electronic equipment and storage medium
WO2020242229A1 (en) * 2019-05-28 2020-12-03 삼성전자주식회사 Video encoding method and apparatus, and video decoding method and apparatus for preventing small-sized intra block
CN110248192B (en) * 2019-06-12 2021-10-15 腾讯科技(深圳)有限公司 Encoder switching method, decoder switching method, screen sharing method and screen sharing system
CN114930856A (en) * 2019-11-28 2022-08-19 Lg 电子株式会社 Image/video coding method and device
US11445176B2 (en) * 2020-01-14 2022-09-13 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
CN114979772B (en) * 2021-02-24 2023-05-12 腾讯科技(深圳)有限公司 Decoder configuration method, decoder configuration device, medium and electronic equipment
CN112995237B (en) * 2021-05-21 2021-10-08 杭州博雅鸿图视频技术有限公司 Method, device and equipment for processing video data stream and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100027680A1 (en) * 2008-03-28 2010-02-04 Segall Christopher A Methods and Systems for Parallel Video Encoding and Decoding
US20100098154A1 (en) * 2007-04-12 2010-04-22 Thomson Licensing Methods and apparatus for video usability information (vui) for scalable video coding (svc)
US20130003830A1 (en) * 2011-06-30 2013-01-03 Kiran Misra Context initialization based on decoder picture buffer
US20130003827A1 (en) * 2011-06-30 2013-01-03 Kiran Misra Context initialization based on decoder picture buffer
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20130208792A1 (en) * 2012-01-31 2013-08-15 Vid Scale, Inc. Reference picture set (rps) signaling for scalable high efficiency video coding (hevc)
US20140003531A1 (en) * 2012-06-29 2014-01-02 Qualcomm Incorporated Tiles and wavefront parallel processing
US20150304667A1 (en) * 2013-01-04 2015-10-22 GE Video Compression, LLC. Efficient scalable coding concept

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149928A1 (en) * 2002-02-07 2003-08-07 Yeun-Renn Ting Turbo-code decoder
GB0428160D0 (en) * 2004-12-22 2005-01-26 British Telecomm Variable bit rate processing
US9445113B2 (en) * 2006-01-10 2016-09-13 Thomson Licensing Methods and apparatus for parallel implementations of 4:4:4 coding
US7983343B2 (en) * 2006-01-12 2011-07-19 Lsi Corporation Context adaptive binary arithmetic decoding for high definition video
EP2395757A1 (en) * 2006-05-24 2011-12-14 Panasonic Corporation Image decoding device
EP2119187B1 (en) * 2007-02-23 2017-07-19 Nokia Technologies Oy Backward-compatible characterization of aggregated media data units
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
CN101137062A (en) * 2007-09-20 2008-03-05 四川长虹电器股份有限公司 Video coding system dual-core cooperation encoding method with dual-core processor
CN101516030B (en) * 2009-04-10 2013-05-01 华硕电脑股份有限公司 Data processing circuit and processing method with multi-format image coding and decoding functions
KR101504887B1 (en) * 2009-10-23 2015-03-24 삼성전자 주식회사 Method and apparatus for video decoding by individual parsing or decoding in data unit level, and method and apparatus for video encoding for individual parsing or decoding in data unit level
CN101908035B (en) * 2010-07-30 2012-09-05 北京华傲精创科技开发有限公司 Video coding and decoding method, GPU (Graphics Processing Unit) and its interacting method with CPU (Central Processing Unit), and system
US20130177070A1 (en) * 2012-01-11 2013-07-11 Qualcomm Incorporated Significance map support for parallel transform coefficient processing in video coding
US20130188698A1 (en) * 2012-01-19 2013-07-25 Qualcomm Incorporated Coefficient level coding

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100098154A1 (en) * 2007-04-12 2010-04-22 Thomson Licensing Methods and apparatus for video usability information (vui) for scalable video coding (svc)
US20100027680A1 (en) * 2008-03-28 2010-02-04 Segall Christopher A Methods and Systems for Parallel Video Encoding and Decoding
US20130003830A1 (en) * 2011-06-30 2013-01-03 Kiran Misra Context initialization based on decoder picture buffer
US20130003827A1 (en) * 2011-06-30 2013-01-03 Kiran Misra Context initialization based on decoder picture buffer
US20130107973A1 (en) * 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20130208792A1 (en) * 2012-01-31 2013-08-15 Vid Scale, Inc. Reference picture set (rps) signaling for scalable high efficiency video coding (hevc)
US20140003531A1 (en) * 2012-06-29 2014-01-02 Qualcomm Incorporated Tiles and wavefront parallel processing
US20150304667A1 (en) * 2013-01-04 2015-10-22 GE Video Compression, LLC. Efficient scalable coding concept

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172713A1 (en) * 2012-07-09 2015-06-18 Panasonic Intellectual Property Corporation Of America Image encoding method, image decoding method, image encoding device, and image decoding device
US9843819B2 (en) * 2012-07-09 2017-12-12 Sun Patent Trust Image encoding method, image decoding method, image encoding device, and image decoding device
US9596470B1 (en) * 2013-09-27 2017-03-14 Ambarella, Inc. Tree-coded video compression with coupled pipelines
US10051292B1 (en) 2013-09-27 2018-08-14 Ambarella, Inc. Tree-coded video compression with coupled pipelines
US10257529B2 (en) 2014-06-30 2019-04-09 Intel Corporation Techniques for generating wave front groups for parallel processing a video frame by a video encoder
US11381621B2 (en) * 2018-04-11 2022-07-05 Samsung Electronics Co., Ltd. Device and method for processing data in multimedia system

Also Published As

Publication number Publication date
US10819998B2 (en) 2020-10-27
WO2014003676A1 (en) 2014-01-03
US20190149831A1 (en) 2019-05-16
US11570456B2 (en) 2023-01-31
KR20150037944A (en) 2015-04-08
KR102144881B1 (en) 2020-08-14
CN104604235A (en) 2015-05-06
US10142622B2 (en) 2018-11-27
WO2014003675A1 (en) 2014-01-03
CN104604235B (en) 2018-11-09
US20150326870A1 (en) 2015-11-12
EP2868094A1 (en) 2015-05-06
US20210006808A1 (en) 2021-01-07
CN104685886B (en) 2018-12-07
US20180152716A1 (en) 2018-05-31
CN104685886A (en) 2015-06-03

Similar Documents

Publication Publication Date Title
US20180152716A1 (en) Transmitting Apparatus and Method Thereof for Video Processing
US11677966B2 (en) Efficient scalable coding concept
US11509913B2 (en) Method and apparatus for video decoding of area of interest in a bitstream
JP6074509B2 (en) Video encoding and decoding method, apparatus and system
US10298946B2 (en) Method and device for encoding and decoding parameter sets at slice level
KR101649284B1 (en) Fixed tile structure flag indicating parallel processing possibility for a sequence of compressed video
CN112585970B (en) Flexible tile partitioning
CN112640455B (en) Block partition with sub-blocks in video coding
TWI824207B (en) Video coding and decoding
CN112602329B (en) Block scrambling for 360 degree video decoding
US11503308B2 (en) Picture tile attributes signaled using loop(s) over tiles

Legal Events

Date Code Title Description
AS Assignment

Owner name: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL), SWEDEN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BURMAN, BO;SAMUELSSON, JONATAN;SJOEBERG, RICKARD;AND OTHERS;SIGNING DATES FROM 20130708 TO 20130717;REEL/FRAME:032557/0663

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION