There are two modes of tiling: 
  • Pure Tiling:  a frame is divided into tiles and all tiles share same slice header, offsets to each tile are signaled in the slice header. Therefore there is no need to put start codes to indicate tile starts.
  • Slice-encapsulated Tiling:  a frame is divided into tiles and each tile is encapsulated in its own slice (i.e. each tile is preceded by its own slice header, incl. the start code).                                 Examples:

            the option ‘–slices tiles’ in kvazaar encoder makes slice encapsulation tiling:    

    kvazaar -i container_352x288.yuv –input-res 352×288 –tiles 2×2 -p 30 –slices tiles –mv-constraint frametile –bitrate 500000 -o test2x2.h265 

SVT-HEVC also supports slice-encapsulated tiling, there is the switch  ‘-tile_slice_mode 1’ which makes each tile to be encapsulated in its own slice:

     SvtHevcEncApp.exe -i test1080p.yuv -w 1920 -h 1080 -n 100 -fps 60 -tbr 10000000 -sao 1 -umv 0 -lad 0 -ua-delm 1 -rc 1 -pred-struct 0 -tile_row_cnt 2 -tile_col_cnt 2 -tile_slice_mode 1 -b test2.h265
The second mode (Slice-encapsulated) is relevant when it’s required to compose video from different input streams. So, each tile is actually a self-contained frame from the corresponding input stream. Slice headers are not necessarily be aligned (they can have different initial QPs), although SPS and PPS of all input streams should be aligned.
Tiles 2×2

Tiles 2x1_2 (two vertical tiles and the right tile is divided into two sub-tiles

The Slice Encapsulated Tiling mode enables to create the above collages without re-encoding of input stream, only by manipulation of high-level syntax. The author has a corresponding python script to create various collages.

The requirements to the input streams are: 

1) coherent resolutions

2) same SPS/PPS

3) width and height of each input stream should be divisible by 64.

4) no WPP or Tiles (hierarchical tiling not supported by HEVC).

5) Motion vectors should not cross picture boundaries, i.e. SPS flag motion_vectors_over_pic_boundaries_flag = 0  (in kvazaar there is the switch ‘ –mv-constraint frametile’).

 

 

17 Responses

  1. F*ckin’ remarkable things here. I am very glad to see your post. Thanks a lot and i am looking forward to contact you. Will you kindly drop me a mail?

  2. Thank you for the auspicious writeup. It in fact used to be a enjoyment account it. Glance advanced to far brought agreeable from you! However, how can we keep up a correspondence?

  3. I’m no longer positive the place you’re getting your info, however great topic. I must spend a while studying more or figuring out more. Thanks for great information I was in search of this info for my mission.

  4. Great ?V I should certainly pronounce, impressed with your site. I had no trouble navigating through all tabs as well as related info ended up being truly simple to do to access. I recently found what I hoped for before you know it in the least. Reasonably unusual. Is likely to appreciate it for those who add forums or anything, site theme . a tones way for your client to communicate. Nice task..

  5. Have you ever thought about adding a little bit more than just your articles? I mean, what you say is valuable and all. But think about if you added some great visuals or video clips to give your posts more, “pop”! Your content is excellent but with images and videos, this website could definitely be one of the very best in its field. Wonderful blog!

  6. Hello my friend! I wish to say that this article is awesome, great written and include approximately all important infos. I would like to peer extra posts like this .

Leave a Reply

Your email address will not be published. Required fields are marked *