1

For reference, my computer is 9900K, GTX 1070. Playback is done on Chrome. Codec listed as vp09.00.51.08.01.01.01.01 (315) / opus (251), although I do not know if that can vary.

I have found a video on YouTube that is absurdly high quality:

Japan in 8K 60fps

However, when I switch to 8K60 quality, the stats say I drop about 1/3 of all frames. It does look fairly smooth however, with occasional noticeable frame hitches. CPU load steadies out at ~60%. According to task manager there is no GPU decode and GPU activity levels out at ~20% on the 3D graph.

Aditionally, there is this video:

The Daily Dweebs - 8K UHD Stereoscopic 3D by the Blender project.

It is also 8K, however 24 FPS(2d mode). In it, I do not drop any frames yet the video is stuttery and looks to play back at about 10 fps. GPU activity on the 3D graph is ~30% this time and CPU coasts at ~30% as well.

And this video for example: Ghost Towns in 8K (FUHD) at 8K24 plays back without dropped frames or any perceptible issues at 30% CPU and 11% GPU utilization.

What is the bottleneck in the system? How come the 60FPS footage looks smooth but drops a ton of frames, but the 24 FPS footage is choppy, but no frames are dropped? What does it take to play back 8K? How does playback happen anyway?

Edit: For completeness sake, note that YouTube can display many technical playback stats when you right-click on the video and choose the "Stats for nerds" option.

Edit to add information requested in the comments:

  1. Yes, my monitor is G-Sync.
  2. Decode vp9 profile0 up to 8192x8192 pixels
martixy
  • 985

3 Answers3

3

What is necessary to play 8K60 footage?

How does playback happen anyway?

That depends on the codec used to encode that 8K footage.
The some of the commonly used codecs right now for 8K would be:

  • H.265 (HEVC)
  • VP9
  • AV1

All of the YouTube videos you have linked report the following codec string:
vp09.00.51.08.01.01.01.01 (272) / opus (251)

Google is a major contributor to developing the VP9 codec, and thus YouTube prefers to stream this encoding for 8K videos. (It saves them a lot of bandwidth over H.265)

My best guess for what that vp09.00 first part means is that it's VP9 Profile 0, which is 8-bit and 4:2:0 chroma subsampling.

To play 8K videos smoothly, you're either going to need a very fast CPU for software decoding, or a GPU with support for hardware accelerated decoding of one of those codecs.

For Software Decoding:

Libraries like FFmpeg or libvpx provide the means to decode videos regardless of your hardware features, so a sufficiently fast CPU is one way to play 8K videos. 8K is a very high bitrate though (up to 240 mbps), so maybe the i9-9900K is still not fast enough to decode that much data per second with no frame drops.

For Hardware Decoding:

You will need a GPU that supports 8K resolution and has a fast decoder for the codec used by the video.

According to WikiChip, the Intel UHD 630 Graphics in your i9-9900K can only decode any of those codecs at a maximum of 4K resolution. It won't be useful for 8K videos, but it's definitely an ideal hardware accelerator for 4K content using the latest codecs.

Your GTX 1070 can decode a max resolution of 8K, but its support for codecs that can be 8K is limited.
According to NVIDIA's Video Encode and Decode GPU Support Matrix your GTX1070 can only decode VP9 in 8-bit, or H.265 with 4:2:0 chroma subsampling.

This explains why your chrome://gpu/ page displays support for "Decode vp9 profile0 up to 8192x8192 pixels".

Since all of the YouTube links you tested are (probably) VP9 Profile 0 videos, the GPU is being utilized by Chrome to play those videos.

What is the bottleneck in the system?

That likely comes down to the sheer magnitude of 8K video. It is likely that the video decoder in the GPU is hitting its maximum potential performance, since the CPU usage and GPU usage are not at 100% yet. I'm also not sure that NVIDIA has ever said that 8K@60hz would be optimal on the GTX 1070, only that it is supported.

See update below...

How come the 60FPS footage looks smooth but drops a ton of frames, but the 24 FPS footage is choppy?

I can't explain this one, but maybe it's possible that 3D videos are streamed with the full stereo data and the player is displaying it as 2D with local processing. That would lead to more CPU overhead.


Update:

I tested that 3D video on my GTX 1070 and only 2 frames were dropped over 1136 frames (52s), the playback was also very smooth. My CPU is a Ryzen 5 3600X, so by no means should your i9-9900K be the bottleneck either. Make sure you're using the latest version for your video drivers and Chrome. It's possible that the version of Windows 10 could affect this too (I am using 1809 Pro).

Romen
  • 1,308
1

For an Nvidia card it appears that hardware decoding of 8K video requires their PureVideo Feature set H or higher:

Feature Set H

Feature Set H are capable of hardware-accelerated decoding of 8192x8192 (8k resolution) H.265/HEVC video streams

That puts it in the range of 20xx and 16xx and 10xx graphics cards. Yours should, at least, be able to decode 8k h.265 video.

It may be that 8k VP9 is not supported in hardware decode, or that the video is using 12-bit colour depth (Main 4:4:4 12) and as a result it requires a newer 20xx or 16xx graphics card. Wikipedia is lacking details on what is in that video decoder (Feature set J). It is likely that it extends 8K support and that this is the missing piece.

First try to get a "standard" h.265, rather than VP9, video and see if that works. I'm not 100% convinced that the single 8K@30 sample on that site (youtube link) is using the hardware decoder on the 1070. It is using a significant amount of both CPU (~70%) and ~30% GPU, but only "3D" so may be just pushing pixels and doing scaling but not full hardware decoding.

I cannot easily find any downloadable 8k60 videos, but I'm not fond of Web Browsers as test beds for video support.

Mokubai
  • 95,412
0

Ignoring decompression time, the bitrate for video is approximately the width times height times (pixel numeric representation storage size for a frame) times (number of color channels) times the framerate.

So for RGB 8bpp, a px is a byte and 8k would be:

7680 bytes × 4320 bytes x 3 color channels x 60 fps x 8 bits per byte / 1024 for Kbit / 1024 for Mbit / 1024 for Gbit

Comes to about 45 Gbps or 8GBps

Yorik
  • 4,988