<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>vvc codec &#8211; Bitmovin</title>
	<atom:link href="https://bitmovin.com/tag/vvc-codec/feed" rel="self" type="application/rss+xml" />
	<link>https://bitmovin.com</link>
	<description>Bitmovin provides adaptive streaming infrastructure for video publishers and integrators. Fastest cloud encoding and HTML5 Player. Play Video Anywhere.</description>
	<lastBuildDate>Wed, 20 Sep 2023 14:48:33 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://bitmovin.com/wp-content/uploads/2023/11/bitmovin_favicon.svg</url>
	<title>vvc codec &#8211; Bitmovin</title>
	<link>https://bitmovin.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VVC: Open-GOP Resolution Switching</title>
		<link>https://bitmovin.com/vvc-open-gop-resolution-switching</link>
					<comments>https://bitmovin.com/vvc-open-gop-resolution-switching#respond</comments>
		
		<dc:creator><![CDATA[Christian Feldmann]]></dc:creator>
		<pubDate>Sat, 09 Sep 2023 00:48:59 +0000</pubDate>
				<category><![CDATA[Innovation]]></category>
		<category><![CDATA[IBC]]></category>
		<category><![CDATA[video encoding]]></category>
		<category><![CDATA[vvc codec]]></category>
		<guid isPermaLink="false">https://bitmovin.com/?p=267371</guid>

					<description><![CDATA[<p>At IBC 2023 the Fraunhofer HHI, Spin Digital and Bitmovin are presenting a paper on the practical application of a new feature that was introduced in VVC: Open-GOP resolution switching. In this blog post I want to explain what open-GOP (Group of Pictures) prediction is, what the benefits are and why with VVC open-GOP prediction...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/vvc-open-gop-resolution-switching">VVC: Open-GOP Resolution Switching</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>At IBC 2023 the <a href="https://www.hhi.fraunhofer.de/" rel="nofollow noopener" target="_blank">Fraunhofer HHI,</a> <a href="https://spin-digital.com/" rel="nofollow noopener" target="_blank">Spin Digital</a> and <a href="https://bitmovin.com/">Bitmovin</a> are presenting a paper on the practical application of a new feature that was introduced in VVC: Open-GOP resolution switching. In this blog post I want to explain what open-GOP (Group of Pictures) prediction is, what the benefits are and why with VVC open-GOP prediction can finally be used in adaptive streaming.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-rank-math-toc-block" id="rank-math-toc"><h2>Table of Contents</h2><nav><ul><li><a href="#closed-gop-prediction-structure">Closed-GOP prediction structure</a></li><li><a href="#open-gop-prediction-structure">Open-GOP prediction structure</a><ul><li><a href="#coding-performance">Coding performance</a></li><li><a href="#coding-performance-across-segment-boundaries">Coding performance across segment boundaries</a></li></ul></li><li><a href="#open-gop-resolution-switching">Open-GOP resolution switching</a></li><li><a href="#ibc-2023">IBC 2023</a></li><li><a href="#related-links">Related Links</a></li></ul></nav></div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="closed-gop-prediction-structure">Closed-GOP prediction structure</h2>



<p>Let us first look at a conventional closed-GOP prediction structure. Since nothing was decoded yet, the first frame in a bitstream is an <em>Instantaneous Decoding Refresh</em> (IDR) frame. If an IDR frame is received, the decoder is instantaneously reset (refreshed) and all frame buffers or other internal buffers are cleared. Since the frame has no dependencies on other frames, it can always be decoded. An IDR frame is also a Random Access (RA) point or keyframe. At RA points decoding can be started. (RAs are marked in orange).</p>



<p>The following frames are then encoded using predictive (P) coding. This means that they use data from the already decoded frames. This includes pixel data for motion compensation but also motion vectors or prediction modes. But let&#8217;s illustrate this with an example:</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1000" height="281" src="https://bitmovin.com/wp-content/uploads/2023/09/normalPrediction.gif" alt="Example closed-gop prediction structure of video frames with 1 IDR frame" class="wp-image-267373"/></figure>



<p>In this example we are encoding a total of 9 frames. The frames are marked from 0-9 in the order that they are displayed to the viewer. (The vertical offset of the uneven frame numbers is just for illustration purposes.) However, they are not encoded in the order that they are displayed. In this example, frame 2 uses only frame 0, which has been decoded already, for prediction. Next, frame 1 is decoded which is displayed between frames 0 and 2 and uses both frames for prediction. This so-called Bi-prediction is much more efficient than prediction only from frames in the temporal past and is a key feature that makes modern video codecs so efficient.&nbsp;</p>



<p>Of course, it is impractical to have only one keyframe at the very beginning of a video. We also want to be able to start decoding at frequent points within a bitstream. This allows us to seek in a video as well as to switch between different renditions as it is done in adaptive streaming. So, we can just insert multiple IDR frames in a video:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="281" src="https://bitmovin.com/wp-content/uploads/2023/09/predictionWithIDR.gif" alt="Example closed-gop prediction structure of video frames with 2 IDR frames" class="wp-image-267374"/></figure>



<p>In this example, frame 4 is also an IDR frame. We can start decoding at frame 0 as well as at frame 4. Frames 0-3 form a Group of Pictures (GOP) which is completely self-contained and can be decoded completely independently of any other GOPs. The same is true for the following GOP of frames 4-9. As there are no dependencies between these GOPs, this is also referred to as a <em>closed-GOP</em> configuration.&nbsp;</p>



<p>The closed-GOP configuration is widely used in <a href="https://en.wikipedia.org/wiki/Adaptive_bitrate_streaming" rel="nofollow noopener" target="_blank">adaptive bitrate streaming</a> applications where the ubiquitous approach is to split the video into segments of a certain length. Each segment is then encoded using a predetermined set of different resolutions and bitrates called renditions. Since every segment starts with an IDR frame, it is possible to start decoding at each segment which therefore enables seeking. Furthermore, the video player can also freely switch to any of the other renditions at every segment boundary.</p>



<p>Another benefit emerges at the encoder side where each long video is split into small pieces (segments). If these segments can be independently decoded, then they can also be independently encoded. And if we mention “many segments” and “independently encodable” then the next thought is “scalability” and “cloud compute”. And this is exactly the principle that the Bitmovin cloud encoder is based on. We take all these individual encoding tasks and then scale horizontally in the cloud.&nbsp;</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="open-gop-prediction-structure">Open-GOP prediction structure</h2>



<p>So the opposite of a closed-GOP is an open-GOP configuration. The key difference is that in an open-GOP prediction structure predictions between the GOPs are allowed. Let’s again look at an example:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="281" src="https://bitmovin.com/wp-content/uploads/2023/09/predictionWithCRA.gif" alt="Example vvc open-gop prediction structure of video frames with clean random access (CRA) frame" class="wp-image-267375"/></figure>



<p>So, the frames 0, 1 and 2 are decoded in a hierarchical fashion as before. But then something different happens. The next frame in decoding order is frame 4 which is a random access point (RA). However, it is not an IDR but a <em>Clean Random Access </em>(CRA) point. While a CRA can also be decoded independently of any other frame, it does not reset the decoder as an IDR does and the reference picture buffer is not cleared. Next, we have frame 3 in coding order. As before, this frame uses frames 2 and 4 as reference. The rest of the frames are coded as before.</p>



<p>As in the closed-GOP example we can start the decoding process at frame 4 because it is not using any other frames as a reference. But this time, the decoder cannot be reset if this frame is received because the following frame (frame 3) uses previously decoded frames as a reference which as a result must remain in the picture buffer. The process of starting decoding from the second GOP is therefore a bit more complex:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="281" src="https://bitmovin.com/wp-content/uploads/2023/09/open_gop_rasl_CRA.gif" alt="Example vvc open-gop prediction structure of video frames with Random Access Skipped Leading (RASL) clean random access (CRA) frame" class="wp-image-267376"/></figure>



<p>Frame 4 is a <em>Clean Random Access </em>(CRA) point so decoding can be started with this frame. For the next frame in coding order (frame 3) we now have an issue. Since one of its references (frame 2) has not been decoded, frame 3 cannot be decoded. If we start decoding at the Random Access (RA) point of frame 4, the decoding of the leading picture 3 must be skipped. Consequently, the frame type is <em>Random Access Skipped Leading </em>(RASL)<em>. </em>The remaining frames can be decoded as before.&nbsp;</p>



<p>So, what are the advantages of an open-GOP configuration? So far, we just observed that decoding is more complicated. Moreover, it is now also impossible to switch to a different rendition at the CRA because we have not decoded the reference frames that are needed for the leading frames of the open-GOP, and we will have to skip decoding them. But there are two substantial advantages:</p>



<div style="height:12px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading" id="coding-performance">Coding performance</h3>



<p>As I already mentioned, bidirectional prediction into the temporal past and future is one of the key features that make modern video codecs so efficient. Generally, the more past and future reference frames a frame can use for prediction, the higher the compression efficiency. Frames that do not use any other frames as reference (RA frames like IDR and CRA frames) typically have the worst compression efficiency.</p>



<p>While we cannot avoid having regular random access points in the bitstream for seeking, we can increase the coding efficiency of the leading pictures significantly in the open-GOP configuration. This leads to a significant reduction in overall bitrate at the same quality. In the experiments from the HHI, an overall BD-rate reduction of up to 9% could be observed. Of course, these results depend on many factors like the general coding structure, the resolution and bitrate as well as the content itself.</p>



<div style="height:12px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading" id="coding-performance-across-segment-boundaries">Coding performance across segment boundaries</h3>



<p>In a closed-GOP configuration, the decoder must be reset with every IDR frame. An unwanted side effect of this is that the quality as well as the visual representation of a scene changes very abruptly at this point. Especially at lower bitrates, this can be perceived as a sudden jump or pumping in the video. Things that are generally hard to encode like water, clouds and trees are particularly susceptible to this effect.&nbsp;</p>



<p>In this example, the difference between closed-GOP on the left and open-GOP on the right is nicely visible. The pumping is especially notable in the exhaust clouds of the rocket launch in the first scene and in the trees in the background in the second scene. In the open-GOP configuration this effect is hardly visible.&nbsp;</p>



<div class="bitmovin-stream-wrapper"><iframe src="https://streams.bitmovin.com/cjtpj60mi6k28e8kfk10/embed" title="bitmovin-streams" allow="fullscreen"></iframe></div>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="open-gop-resolution-switching">Open-GOP resolution switching</h2>



<p>I mentioned before that switching to a different rendition is only possible at IDR frames in a closed-GOP configuration. We also saw that if we start decoding a CRA frame with RASL frames, we must skip decoding of the leading frames. Obviously, we don’t want to skip decoding frames whenever the player switches to a different resolution. This would be a horrible experience for the viewer.</p>



<p>Fortunately, VVC has a trick up its sleeve for exactly this scenario. In the example above we noted that decoding of the RASL frame (frame 3) is not possible because it uses frame 2 as a reference which has not been decoded when switching renditions. But what has been decoded is a different version of frame 2 from a different rendition. While this frame may have been decoded at a different quality or even at a different spatial resolution it is a representation of the exact same frame. So, with a bit of high level syntax, the VVC decoder can use this frame from another rendition as a reference frame for decoding frame 3. Even if the frame uses a different resolution, the decoder has a standardized set of up/down scaling filters. Let&#8217;s look at this:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="563" src="https://bitmovin.com/wp-content/uploads/2023/09/predictionWithCRADecodeFromCRA.gif" alt="Example of VVC open-gop switching and decoding from Clean Random Access frame" class="wp-image-267377"/></figure>



<p>In this example we are decoding frames 0 to 2 from a rendition at a lower resolution. Then the player decides to switch to a rendition with a higher resolution and bitrate. Decoding of the CRA (frame 4) is no problem since RA frames can be decoded independently of other frames. For frame 3, the decoder will now upscale frame 2 from the lower rendition and use this frame as a reference instead of the unavailable frame from the higher rendition. Decoding of the remaining frames is unchanged.</p>



<p>As mentioned before, the open-GOP prediction structure significantly reduces quality pumping effects. But there is another advantage. When switching to a higher or lower rendition in a closed-GOP configuration, there is a visible jump of the quality of the video. Of course, the bigger the jump is, the more pronounced the visible quality jump becomes. However, in open-GOP resolution switching, the intermediate leading frames that are using references from both renditions act as a sort of “quality interpolation” between the renditions which results in a much smoother transition between the renditions.&nbsp;</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1600" height="565" src="https://bitmovin.com/wp-content/uploads/2023/09/open_gop_bitrates.jpg" alt="- Bitmovin" class="wp-image-267605" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/09/open_gop_bitrates-300x106.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/09/open_gop_bitrates.jpg?size=384x136&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/09/open_gop_bitrates-768x271.png?lossy=2&amp;strip=1&amp;webp=1 768w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/09/open_gop_bitrates.jpg?size=1152x407&amp;lossy=2&amp;strip=1&amp;webp=1 1152w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/09/open_gop_bitrates-1536x542.png?lossy=2&amp;strip=1&amp;webp=1 1536w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/09/open_gop_bitrates.jpg?lossy=2&amp;strip=1&amp;webp=1 1600w" sizes="(max-width: 1600px) 100vw, 1600px" /></figure>



<p>Here, we can see an example of the PSNR for the resolution switching behavior. We have 3 renditions of 1920&#215;800 (gray), 1280&#215;534 (red) and 640&#215;268 (blue). In conventional adaptive streaming implementations with closed-GOPs, a rendition switch would result in an abrupt jump in quality at the switching points. The yellow graph shows how the quality has a much smoother transition between the renditions when using open-GOP resolution switching in VVC.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="ibc-2023">IBC 2023</h2>



<p>At the IBC, we are presenting a technical paper about practical implementations and considerations when implementing open-GOP resolution switching with VVC in real world environments. This is a joint effort of <a href="https://www.hhi.fraunhofer.de/" rel="nofollow noopener" target="_blank">Fraunhofer HHI</a><a href="https://spin-digital.com/" rel="nofollow noopener" target="_blank">,</a><a href="https://spin-digital.com/" rel="nofollow noopener" target="_blank"> </a><a href="https://spin-digital.com/" rel="nofollow noopener" target="_blank">Spin Digital</a> and <a href="https://bitmovin.com/">Bitmovin</a>. Please join us at the IBC in the “Advances in video coding and processing” session on Sep 16th starting at 14:15 in room E102. Here we will present what technical challenges arise when deploying this feature for low latency live transcoding as well as in the highly scalable Bitmovin cloud encoder.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="related-links">Related Links</h2>



<p><a href="https://show.ibc.org/" rel="nofollow noopener" target="_blank">IBC 2023 Website</a></p>



<p><a href="https://bitmovin.com/vvc-video-codec/">VVC codec background</a></p>



<p><a href="https://bitmovin.com/vvc-benefit-supported-devices-bitmovin-implementation/">VVC benefits and supported devices</a></p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/vvc-open-gop-resolution-switching">VVC: Open-GOP Resolution Switching</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bitmovin.com/vvc-open-gop-resolution-switching/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VVC &#8211; Its Benefits, Supported Devices, and How Bitmovin is Implementing it</title>
		<link>https://bitmovin.com/vvc-benefit-supported-devices-bitmovin-implementation</link>
					<comments>https://bitmovin.com/vvc-benefit-supported-devices-bitmovin-implementation#respond</comments>
		
		<dc:creator><![CDATA[Kevin Rocard]]></dc:creator>
		<pubDate>Thu, 11 May 2023 14:21:48 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[video player]]></category>
		<category><![CDATA[vvc codec]]></category>
		<guid isPermaLink="false">https://bitmovin.com/?p=259870</guid>

					<description><![CDATA[<p>Which codecs can your device play? The way we play and watch video has continued to change and improve over the years, depending on our device type and how that codec affects the available internet in the location we are streaming from. It’s likely your device is able to stream H.264/AVC, which has been an...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/vvc-benefit-supported-devices-bitmovin-implementation">VVC &#8211; Its Benefits, Supported Devices, and How Bitmovin is Implementing it</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Which codecs can your device play? The way we play and watch video has continued to change and improve over the years, depending on our device type and how that codec affects the available internet in the location we are streaming from. It’s likely your device is able to stream H.264/AVC, which has been an industry standard for a while now, but you might not be so familiar with the others. Through this blog, we’re going to explain why VVC &#8211; an emerging codec &#8211;&nbsp; is important and what we’ve learned through working with it.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Versatile Video Coding (VVC) is a codec that was made to help reduce bitrates without compromising video quality. As a result, VVC offers a number of benefits to video streaming, including:</p>



<ul>
<li>Efficient streaming of demanding content, including UHD (8k+) and 360 video</li>



<li>Lower distribution costs due to the lower bitrate</li>



<li>Maintaining high visual quality even on slower networks</li>
</ul>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>As the benefits sound extremely promising, we’ve taken to encode streams in VVC, which you can read more about in our <a href="https://bitmovin.com/vvc-video-codec/" target="_blank" rel="noreferrer noopener">previous article</a>. Until now, however, there have been limited playback implementations from device makers, making it difficult to see the true gains. Due to this, we believe it’s equally important to evaluate the state of playback on different devices and advancement in playback technology because, ultimately, if you can encode VVC but can’t play it back, then viewers &amp; streaming services don’t get to experience the full value of the codec.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>What devices support VVC now and will in the future?</strong></h2>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>As VVC is a new codec standard, no device currently has hardware support for it, and only a limited number of devices can software decode it in real time. In our testing, we found that high and mid-end devices usually have enough processing power to play 1080p VVC videos such as Google Pixel 5 or Samsung Galaxy S8. Researchers from Ericsson presented similar findings at the <a href="https://nab23.mapyourshow.com/8_0/sessions/session-details.cfm?scheduleid=256" target="_blank" rel="noreferrer noopener nofollow">NAB show</a>, also sharing that they needed to use AMD EPYC or Intel Xeon servers for 8K playback testing, which shows how important hardware decoding will be for UHD VVC content.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Even though the current device ecosystem that can decode VVC is limited, with the net gains VVC is projected to offer, it will definitely be a priority addition for device makers in the coming versions of their devices.</p>



<p>In the future, VVC is expected to be supported in devices such as:</p>



<ul>
<li>Smartphones and tablets (Samsung, Apple, Huawei, + more)</li>



<li><a href="https://rethinkresearch.biz/articles/vvc-in-2023-tvs-from-lg-philips-a-year-earlier-than-expected/" target="_blank" rel="noreferrer noopener nofollow">Smart TVs</a> (LG, Samsung, Sony, + more)</li>



<li>Streaming devices (Roku, Amazon Fire TV, Apple TV, + more)</li>



<li>Recent computers and laptops</li>
</ul>



<div style="height:1px" aria-hidden="true" class="wp-block-spacer"></div>



<p>*sidenote for future Smart TV’s above &#8211; <a href="https://www.lg.com/ca_en/support/product-help/CT20098005-1437128842789" target="_blank" rel="noreferrer noopener nofollow">LG 8K models</a> officially support VVC already.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>How did we test VVC in an actual streaming environment?</strong></h2>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>To evaluate VVC playback, we teamed up with the <a href="http://hhi.fraunhofer.de/vvc" target="_blank" rel="noreferrer noopener nofollow">Fraunhofer Heinrich-Hertz-Institut</a> (HHI) to integrate their <a href="https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc/fraunhofer-versatile-video-decoder-vvdec.html" target="_blank" rel="noreferrer noopener nofollow">software-based decoder VVdeC</a>. You can check out VVdeC on <a href="https://github.com/fraunhoferhhi/vvdec" target="_blank" rel="noreferrer noopener nofollow">GitHub</a>.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>We’ve integrated the VVC decoder into an internal version of our <a href="https://play.google.com/store/apps/details?id=com.bitmovin.demo.player" target="_blank" rel="noreferrer noopener nofollow">Android demo app</a> to evaluate VVC playback on a range of streams and devices. This demo implementation has allowed us to test the decode performance on a variety of devices, for example, low-end, mid-tier, and high-end models. As optimizations are gradually made to the decoding, we will continue expanding our evaluation progress and share that with video developers. Ultimately we believe this will help streaming video apps decide whether VVC is a suitable codec for their audience and the devices where their content is streamed.</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://bitmovin.com/wp-content/uploads/2023/05/Bitmovin_VVC_Demo_App_Homepage_50.png" alt="- Bitmovin" class="wp-image-259872" width="424" height="601" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin_VVC_Demo_App_Homepage_50-211x300.png?lossy=2&amp;strip=1&amp;webp=1 211w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin_VVC_Demo_App_Homepage_50.png?size=384x544&amp;lossy=2&amp;strip=1&amp;webp=1 384w" sizes="(max-width: 424px) 100vw, 424px" /></figure>



<p class="has-text-align-center">Homepage of the Bitmovin Android Application testing VVC</p>



<div style="height:1px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://bitmovin.com/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player.png" alt="- Bitmovin" class="wp-image-259873" width="425" height="605" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player-211x300.png?lossy=2&amp;strip=1&amp;webp=1 211w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player.png?size=384x547&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player-768x1092.png?lossy=2&amp;strip=1&amp;webp=1 768w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player-1080x1536.png?lossy=2&amp;strip=1&amp;webp=1 1080w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player-1440x2048.png?lossy=2&amp;strip=1&amp;webp=1 1440w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/Bitmovin-VVC-Demo-App-Player.png?lossy=2&amp;strip=1&amp;webp=1 1800w" sizes="(max-width: 425px) 100vw, 425px" /></figure>



<p class="has-text-align-center">The Bitmovin Player on the Bitmovin Android demo application testing VVC</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>What have we learned?</strong></h2>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Firstly, we must say the integration of VVdeC was a smooth process. It took approximately 3 days to achieve the first video playback, and from there, we rolled the implementation into an internal version of our Android demo app. We evaluated the viewer experience offered by VVC with our findings below.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>To test the VVC low bitrate performance. We encoded the same assets in both VVC and HEVC at the same bitrate of 470, 350, and 207 kb/s using Bitmovin Encoder. Upon playback on Android devices, we compared the performance and image quality of the streams. VVC is a clear winner in fast scenes without motion blur. For example, in the explosion frame below (from <a href="https://studio.blender.org/films/charge/" target="_blank" rel="noreferrer noopener nofollow">Charge</a>), VVC shows less aliasing and much more detail, especially in the bullet ricochet that spans only 3 frames and is brightly visible during playback. The difference:</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="960" height="404" src="https://bitmovin.com/wp-content/uploads/2023/05/VVC_Comparison_Image_.png" alt="- Bitmovin" class="wp-image-259871" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/VVC_Comparison_Image_-300x126.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/VVC_Comparison_Image_.png?size=384x162&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/VVC_Comparison_Image_-768x323.png?lossy=2&amp;strip=1&amp;webp=1 768w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2023/05/VVC_Comparison_Image_.png?lossy=2&amp;strip=1&amp;webp=1 960w" sizes="(max-width: 960px) 100vw, 960px" /></figure>



<p class="has-text-align-center">Explosion frame comparison between HEVC (left) and VVC (right) at 470 kb/s</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>While evaluating the implementation, it became clear that software-based decoding requires greater CPU performance and increases memory consumption. This finding is partly due to the emerging nature of VVC, and the current implementations aren’t optimized for processing efficiency. As a result, we used a Samsung Galaxy S8 tablet to achieve smooth playback and showcased it in our demo booth at NAB 2023.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>What’s next?</strong></h2>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Now that we’ve tested Playback with Android-powered tablets and phones, we intend to further our evaluation of VVC playback on other devices that are in widespread use. For example, Android-based TVs. As we found performance to be challenging at this stage on lower-powered devices, we hope to identify optimizations to improve performance. Clearly, this will be driven by the advantages of having bitrate savings at comparable qualities that are seen when using other codecs.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>We’re continuing our VVC research and collaboration with Fraunhofer and have a joint research paper that will be presented later this year at IBC2023. We will share more details as soon as the conference makes them publicly available.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Further, we’re also looking into emerging audio codecs which sit alongside video codec innovations like VVC. This includes technologies such as MPEG-H. You can <a href="https://www.iis.fraunhofer.de/en/ff/amm/broadcast-streaming/mpegh.html" target="_blank" rel="noreferrer noopener nofollow">read more about MPEG-H</a> from Fraunhofer’s Institute for Integrated Circuits (IIS) group.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Want to know more?</strong></h2>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>If you’re interested in learning more, you can always ask a question on the <a href="https://community.bitmovin.com/" target="_blank" rel="noreferrer noopener">Bitmovin Community</a>, and we’d be happy to speak further about the demo we showcased at NAB 2023.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Check out this <a href="https://dl.acm.org/doi/10.1145/3510450.3517305" target="_blank" rel="noreferrer noopener nofollow">presentation</a> from Mile High Video 2022 on our collaboration with Fraunhofer to bring their VVenC encoder to the cloud.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Bitmovin’s Chief Architect Igor Oreper will be speaking at the Streaming Media East conference on May 17 as part of the session <a href="https://www.streamingmedia.com/Conferences/East2023/Program.aspx" target="_blank" rel="noreferrer noopener nofollow"><em>VVC: Ready For Action? A Comprehensive Guide To Deployment &amp; Implementation</em></a>, which is sure to be valuable for anyone considering VVC.</p>



<p></p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/vvc-benefit-supported-devices-bitmovin-implementation">VVC &#8211; Its Benefits, Supported Devices, and How Bitmovin is Implementing it</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bitmovin.com/vvc-benefit-supported-devices-bitmovin-implementation/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VVC Video Codec &#8211; The Next Generation Codec</title>
		<link>https://bitmovin.com/vvc-video-codec</link>
					<comments>https://bitmovin.com/vvc-video-codec#comments</comments>
		
		<dc:creator><![CDATA[Christian Feldmann]]></dc:creator>
		<pubDate>Thu, 03 Feb 2022 17:00:00 +0000</pubDate>
				<category><![CDATA[VidTech]]></category>
		<category><![CDATA[vvc codec]]></category>
		<guid isPermaLink="false">http://bitmovin.com/?p=24855</guid>

					<description><![CDATA[<p>State of VVC Video Codec So it’s happening. After their previous work on h.264/AVC and h.265/HEVC, the ITU-T Video Coding Experts Group (VCEG) and ISO Moving Picture Experts Group (MPEG) have again joined forces to create another video codec named Versatile Video Coding (VVC). The first goal for the VVC Video Codec was to significantly...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/vvc-video-codec">VVC Video Codec &#8211; The Next Generation Codec</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>State of VVC Video Codec</h2>
<p><span style="font-weight: 400;">So it’s happening. After their previous work on h.264/AVC and h.265/HEVC, the ITU-T Video Coding Experts Group (VCEG) and ISO Moving Picture Experts Group (MPEG) have again joined forces to create another video codec named <a href="https://bitmovin.com/compression-standards-vvc-2020/" target="_blank" rel="noopener">Versatile Video Coding (VVC)</a>.</span><br />
<span style="font-weight: 400;">The first goal for the VVC Video Codec was to significantly reduce bitrate expenditure while maintaining the same visual quality compared to HEVC. When considering PSNR as a quality metric, the reference VVC encoder outperforms the reference HEVC encoder <a href="https://jvet-experts.org/doc_end_user/current_document.php?id=11360" target="_blank" rel="noopener nofollow">by about 40%</a> in BD-rate</span><span style="font-weight: 400;">. However, some subjective tests were also performed which demonstrated overall bit-savings of <a href="https://jvet-experts.org/doc_end_user/current_document.php?id=10550" target="_blank" rel="noopener nofollow">closer to 50%</a>. The second goal in the standardization was versatility. On this front, VVC facilitates coding and transport for a wide range of applications and content types such as conventional video streaming, optimizations for screen content, 360-degree video, as well as live and ultra-low delay applications.</span></p>
<h2><span style="font-weight: 400;">Evolution or Revolution?</span></h2>
<p><span style="font-weight: 400;">Since the development of VVC was started from the basis of HEVC, the first question to ask about VVC is: Is it an evolution based on the technologies that were used in the former coding standards, or is it a really new and revolutionary way of compressing video? </span><br />
<span style="font-weight: 400;">Answer: It’s more or less an evolution of the basic building blocks that were already used in HEVC and various other codecs before.</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">It is still a hybrid, block-based video coding standard</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Most technologies are based on HEVC and are further refined and improved</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">But there are also a lot of new coding tools which have not been seen in the context of video coding</span></li>
</ul>
<p><span style="font-weight: 400;">But how was this achieved? Like other video coding standards (e.g. AVC, HEVC, or AV1), VVC is based on the hybrid block-based video coding approach with conventional intra and inter prediction. As with former evolutions of video coding standards, these gains can not be attributed to one single technique that was added in VVC but to smaller improvements in all the building blocks of the coding scheme. So here is a (not even close to complete) list of advancements in VVC:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The maximum block size of Coding Tree Units (CTU) that can be processed was increased. The maximum block size is now 128&#215;128 pixels. Also, the maximum block sizes for intra prediction and transformations were increased. This is particularly beneficial as the resolution of content that is encoded also is increasing. </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">After the initial split, each CTU is further split into Coding Units. This splitting algorithm is now much more flexible and allows for more different block sizes both square and non-square.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The number of directions that can be used in directional intra prediction was further increased. Intra prediction can now also be performed for non-square blocks. </span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Many aspects of motion compensated prediction (inter prediction) were improved as well like better motion vector prediction, decoder side motion vector refinement, and overlapped block motion compensation (OBMC).</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">More different types of transformation are available by using a separable transform combining Discrete Cosine and Sine Transform.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The in-loop filters were improved as well with the addition of a new filter &#8211; Adaptive Loop Filter &#8211; for which the encoder can signal optimal parameters on a CTU basis.</span></li>
</ul>
<p><span style="font-weight: 400;">As I already mentioned this list is far from complete and there are many many more new and adapted technologies that make VVC so efficient. If you want to learn more then there is plenty of material out there. But a good place to start is <a href="https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9503377" target="_blank" rel="noopener nofollow">this very detailed overview paper</a>.</span></p>
<h2><span style="font-weight: 400;">What’s new in VVC?</span></h2>
<p><span style="font-weight: 400;">So while the standard was finalized in late 2020, there is no widespread use of VVC in the market yet. But this was also not to be expected after such a short time. History has shown that adoption time for new video codecs is long and usually follows the following scheme: First, devices must support playback of a new standard. While software decoding on devices with high compute capabilities and no restrictions on power usage can be implemented quickly, most consumption of media is performed on devices that rely on hardware decoders. And while it takes some time to develop and deploy new decoding hardware, it takes even longer until these new devices reach a critical mass of deployment “in the wild”. At the same time, encoding solutions must be developed, tuned, and deployed. And finally, there is the question of royalties that must be paid. And only when all of these issues are resolved will it make sense to deploy actual video streaming using the new video codec. </span><br />
<span style="font-weight: 400;">For VVC, we are seeing the first practical implementations of VVC. There are some software-based encoder and decoder solutions and the first vendors have released hardware decoders in their<a href="https://jvet-experts.org/doc_end_user/current_document.php?id=11244" target="_blank" rel="nofollow noopener"> System on a Chip (SoC) devices</a>. Furthermore, some vendors (like Bitmovin) have deployed VVC Video Codec as an <a href="https://bitmovin.com/press-room/bitmovin-enables-innovation-with-new-vvc-codec-feature">option in their transcoding as a service product</a>. On the patent side, there are a few players moving the codec into production, with <a href="https://www.tvtechnology.com/news/mpeg-la-introduces-patent-pool-license-for-vvc-compression" target="_blank" rel="nofollow noopener">MPEG LA introducing the first license in early 2021</a>. While some patent pools are forming it is still very much unknown how much the usage of VVC will cost. And in the face of the falling cost of bandwidth, this is the biggest problem of VVC. To put it simply: If the price is not worth the bitrate savings, it will not be a thing. </span><br />
<span style="font-weight: 400;">So as I mentioned, Bitmovin already deployed VVC video encoding in its cloud-based transcoding solution. For this, we teamed up with the Fraunhofer Heinrich-Hertz-Institut (HHI) to integrate their <a href="https://www.hhi.fraunhofer.de/en/departments/vca/technologies-and-solutions/h266-vvc/fraunhofer-versatile-video-encoder-vvenc.htm" target="_blank" rel="nofollow noopener">software-based encoder VVenC</a> which is an open source VVC encoder and is freely <a href="https://github.com/fraunhoferhhi/vvenc" target="_blank" rel="noopener nofollow">available on Gihub</a>. While this is working great, there was no easy way to create a VVC Video and watch it. This is where the vvDecPlayer project comes in.</span></p>
<h3>Introducing the VVC Video Player: BitvvDecPlayer</h3>
<p><span style="font-weight: 400;">What I wanted to create was a simple demonstration player that was able to stream and decode a VVC video stream in real-time. All parts of the decoder are based on other open-source projects. Many of the rendering routines were copied from the <a href="https://github.com/IENT/YUView" target="_blank" rel="noopener nofollow">YUView player</a> (another project of mine) which in turn is using the Qt framework.</span><br />
<span style="font-weight: 400;">When opening a playlist in the vvDecPlayer, four threads are launched that build up the decoding pipeline:</span></p>
<ul>
<li aria-level="1"><b>Download: </b><span style="font-weight: 400;">This thread performs the download of the VVC video segments using HTTP. It has an internal buffer of 5 segments that it will try to keep full. The actual download was implemented using the Qt network module.</span></li>
</ul>
<ul>
<li aria-level="1"><b>Bitstream parsing: </b><span style="font-weight: 400;">After the download is done, we perform parsing of the high-level syntax of the bitstream. This gives us information about the segment like resolution and more importantly the number of frames in the segment.</span></li>
</ul>
<ul>
<li aria-level="1"><b>Decode: </b><span style="font-weight: 400;">The decode thread decodes the compressed bitstream into raw YUV frames. We are using the Fraunhofer <a href="https://github.com/fraunhoferhhi/vvdec" target="_blank" rel="noopener nofollow">VVdeC</a> software decoder here. The decoder is quite fast and is able to do real-time decoding of UHD content, provided that enough CPU power is available. The decoded frames are all stored in temporary buffers.</span></li>
</ul>
<ul>
<li aria-level="1"><b>Conversion: </b><span style="font-weight: 400;">While the decoded frames are in the YUV domain, we require RGB pixel data for display. This is done with a native C++ function that was copied from YUView.</span></li>
</ul>
<p><span style="font-weight: 400;">Finally, there is a timer running in the main thread that is trying to update the screen ‘FPS’ times per second by drawing the next converted RGB pixel buffer to the screen.</span></p>
<p><figure id="attachment_215769" aria-describedby="caption-attachment-215769" style="width: 512px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-215769 size-full" src="https://bitmovin.com/wp-content/uploads/2018/12/BitvvDecPlayer_VVC-Player-Performance_Screenshot-2.jpg" alt="BitvvDecPlayer_VVC Player Performance_Screenshot" width="512" height="347" /><figcaption id="caption-attachment-215769" class="wp-caption-text">VVC Video Player in Action</figcaption></figure></p>
<p><span style="font-weight: 400;">The screenshot shows the player in action. On the top left, the available renditions are shown. The currently selected rendition is marked with an arrow and the currently visible rendition is highlighted in green. Use the up/down arrows to switch renditions. On the top right are the fps counter and the status of the threads. The thread status display can be enabled in the menu or by pressing Ctrl+D. On the bottom is the progress graph (Ctrl+P). This is showing many values from the decoder pipeline. The dark cyan blocks indicate the compressed data of each segment where the height corresponds to the bitrate of each segment. Within each block, there is one bar that indicates the bitrate per frame. On the bottom, the status of each frame is shown: Downloaded (grey), Decoded (blue), converted to RGB, and ready for display (green). Playback can also be paused using the space bar and playback can be switched to full-screen view by double-clicking the video.</span><br />
<span style="font-weight: 400;">If you want to give it a try <a href="https://github.com/bitmovin/vvDecPlayer" target="_blank" rel="nofollow noopener">check out the project on Github</a></span><span style="font-weight: 400;">. The only prerequisites you need are a compiler, CMake, and the Qt libraries. How to build really depends on the platform that you are compiling for. But it goes something like this:</span></p>
<ul>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Get Qt. Either from the <a href="https://www.qt.io/" target="_blank" rel="noopener nofollow">Qt page</a> or if you are on Linux then probably your distro’s package manager can install it for you. On the mac homebrew is a good option.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Check out the source code of the player, and create a new directory to build in (e.g. ‘build’). Go into the directory and call qmake: ‘qmake ../’. After that, you start compilation. On Linux/mac this is probably ‘make’, while on windows it is likely ‘nmake’.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Next, you also need the VVdeC decoder library. Compiling that is also easy. Get the sources from the <a href="https://github.com/fraunhoferhhi/vvdec" target="_blank" rel="noopener nofollow">Github repo</a> and create a build directory. In there, call ‘cmake -DBUILD_SHARED_LIBS=1 ..’ and then ‘cmake -–build . –config Release’. This should build the shared decoder library in the ‘bin’ or the ‘lib’ folder.</span></li>
<li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Lastly, you can start the player. Go to ‘Settings-&gt;Select VVdeC library’ and browse to the shared VVdeC library you just built.</span></li>
</ul>
<p><span style="font-weight: 400;">Now everything should be ready to stream some videos. The player comes with some sample stream provided by us and our encoder. Just select a sample from ‘File-&gt;Bitmovin Streams’. If you encounter a bug please feel free to open a bug report on Github</span><span style="font-weight: 400;">. To learn more about the BitvvDecPlayer, view <a href="https://webinars.bitmovin.com/bitmovin/State-of-VVC-H-266-ft-Fraunhofer-HHI-d7adbaedf42789cf74423455" target="_blank" rel="nofollow noopener">our Webinar with Fraunhoffer HHI.</a></span></p>
<h2><span style="font-weight: 400;">Conclusion</span></h2>
<p><span style="font-weight: 400;">There is no doubt that VVC has some exciting potential and is already showing interesting results. Two years is a long time, and there is a lot of opportunities to further increase the coding performance and lower the encoding complexity, as well as perfect some of the new tools that are already adopted into the new standard. It will be exciting to check in again in 6 to 12 months to see how the implementations are developing.</span><br />
If you like to learn more about how the VVC Video Codec works check out our introductory blog: <a href="https://bitmovin.com/compression-standards-vvc-2020/">What is VVC and how does it work</a><br />
Open projects like these are a staple of the benefits of working as an Engineer for Bitmovin. <a href="https://bitmovin.com/careers/?utm_source=bmblog&amp;utm_medium=web">Come join our team to work on your exciting standard-setting projects</a>.</p>
<h2>Video technology guides and articles</h2>
<ul>
<li>Back to Basics: Guide to the <a href="https://bitmovin.com/html5-video-tag-guide/">HTML5 Video Tag </a></li>
<li><a href="https://bitmovin.com/vod-platforms/">What is a VoD Platform?</a>A comprehensive guide to Video on Demand (VOD)</li>
<li><a href="https://bitmovin.com/top-5-video-technology-trends/">Video Technology [2022]</a>: Top 5 video technology trends</li>
<li><a href="https://bitmovin.com/vp9-vs-hevc-h265/">HEVC vs VP9</a>: Modern codecs comparison</li>
<li>What is the <a href="https://bitmovin.com/av1/">AV1 Codec</a>?</li>
<li>Video Compression: <a href="https://bitmovin.com/encoding-definition-bitrates/">Encoding Definition and Adaptive Bitrate</a></li>
<li>What is <a href="https://bitmovin.com/adaptive-streaming/">adaptive bitrate streaming</a></li>
<li><a href="https://bitmovin.com/mkv-vs-mp4/">MP4 vs MKV</a>: Battle of the Video Formats</li>
<li><a href="https://bitmovin.com/video-streaming-models-svod-avod-tvod/">AVOD vs SVOD</a>; the “fall” of SVOD and Rise of AVOD &amp; TVOD (Video Tech Trends)</li>
<li><a href="https://bitmovin.com/dynamic-adaptive-streaming-http-mpeg-dash/">MPEG-DASH</a> (Dynamic Adaptive Streaming over HTTP)</li>
<li><a href="https://bitmovin.com/container-formats-fun-1/">Container Formats</a>: The 4 most common container formats and why they matter to you.</li>
<li><a href="https://bitmovin.com/qoe-why-quality-video-matters/">Quality of Experience</a> (QoE) in Video Technology [2022 Guide]</li>
</ul>
<p>The post <a rel="nofollow" href="https://bitmovin.com/vvc-video-codec">VVC Video Codec &#8211; The Next Generation Codec</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bitmovin.com/vvc-video-codec/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
