Introducing PVRIC4 – taking image compression to the next level

Share on linkedin
Share on twitter
Share on facebook
Share on reddit
Share on digg
Share on email

Data compression is a fundamental technology tool. It enables us to make efficient use of limited resources and without it, many things that we take for granted would not be possible: physical media such as DVD and Blu-ray rely on it, as do the video and music we stream to our TVs and mobile devices.

It’s also used inside Imagination’s GPUs. Whether it’s in a smartphone, a TV, or a car, there’s a huge amount of data coming into the SoCs and that trend is only going one way. TVs have gone from HD to 4K, and, believe it or not, 8K TVs are now on sale to the public. Meanwhile, our phones are packing an even larger number of sensors absorbing information from the world around them, while smartphone radios are moving from 4G to 5G, creating an even greater flow of incoming data. All of these are placing ever more pressure on memory bandwidth and memory footprint, which impacts battery-life. At the same time, in an ever-more competitive market, manufacturers are under pressure to reduce costs.

So how do we deliver more performance, while driving down power consumption and cost? To do this we use a trio of technologies in our GPUs, known as PVR3C Triple Compression – a ‘triple-threat’ of texture compression (PVRTC and ASTC), geometry compression (PVRGC) and image compression (PVRIC).

PVR3C compression technologies

While PVRTC and PVRGC both impact operations inside the GPU, PVRIC operates on the transfer of the final image from the GPU to the display controller. First introduced in our Series6 GPUs, PVRIC hit version 3 this year with our Series8 GPUs, and in a blog post we demonstrated the real-world benefits it delivers in reducing bandwidth and power consumption.

PVRIC3 has been widely implemented inside other third-party IP blocks such as ISPs, display controllers, 2D cores and video encoder/decoders, so it’s a proven technology.

Introducing PVRIC4

Today, we are proud to announce the next step in our image compression technology – PVRIC4 featuring PVRIC visually lossless compression.

So, what the difference? In PVRIC3 images could only be compressed losslessly and, by definition, this meant that the compression had no impact whatsoever on image quality. However, the amount of compression depends on the content. While some parts of an image might compress well (say, a single block of colour as found in an all-white sky), compression could be highly effective – up to a theoretical best case of 256:1. While this means that bandwidth consumption for the transfer is reduced significantly, that block still needs a full allocation of memory to be reserved, as the compression ratio is not known or guaranteed ahead of time.

Dual pipeline – double benefit

This is where PVRIC4 comes in to play. Now each block of pixels delivered from the GPU to its destination, such as the display controller or video encoder, is sent through the regular lossless compression pipeline and – at the same time, (and without any loss of performance) – is sent to an entirely new pipeline that applies ‘lossy’ compression.

After the image data block has passed through both pipelines, new decision logic decides which version of the block to pass on to its destination. If the lossless pipeline has managed to compress the block by at least 50% then this is selected, this also means we maintain perfect image quality. However, if it cannot do so then the lossless pipeline output is used. This will always compress the image by exactly 50%. As a result, not only can we now guarantee a bandwidth reduction of 50%, but we can also guarantee a memory footprint saving of 50%.

This means that SoC designers can put down fewer memory pins – which adds up to a saving of the bill of materials. The memory allocation per block will also be 128 bytes, which is a very efficient size for data transfer.

Visually lossless

It’s possible though that alarm bells might be ringing at the thought of ‘compression. After all, by definition, doesn’t lossy means that you’re losing quality? However, while we’re reducing the data size by 50% we have spent a lot of time to ensure that this is done without any real-world impact on image quality. Our algorithms are tuned to avoid halos or artefacts that plague competitor lossy solutions and the changes applied tend to be minor alterations to individual pixel values that are localised to small detailed blocks in the image.

What’s important to understand is that PVRIC4 operates on the block level – as in the parts of the image that are fed, bit by bit, from the GPU. This means that parts of each frame will be lossless and other parts visually lossless. In the image below, only the purple areas have had visually lossless compression applied – you can see how it only affects a part of the image.

Below we see image quality comparisons between the Netflix GUI and the game Angry Birds, with the areas where ‘lossy’ compression is applied, and you’ll find that even under close inspection you’d be hard pressed to tell the difference. In other words, it’s visually lossless.

The graph below shows the amount of compression applied in a range of popular app and games, displaying both lossless and visually lossless compression paths. The latter provides an improvement in the compression in games such as Temple Run, Minion Rush, Minecraft, and Command & Conquer Rivals.

Conclusion

Thanks to PVRIC4, Imagination is showing that it is leading the way with GPU design with a unique feature that pushes its already highly efficient architecture even further and provides a real-world benefit to device makers. It helps reduce image bandwidth and memory footprint by guaranteeing a 2:1 or better reduction in bandwidth and associated power consumption and a fixed 50% memory footprint reduction. Therefore, as SoC requirements continue to increase PVRIC4 will enable low-cost markets to keep memory/bandwidth costs in check, and for premium markets, to keep power consumption under control. The result is more affordable products, greater profit margins and better battery life.

PVRIC4 will arrive with our upcoming 2018 GPU releases, which I look forward to telling you about before the end of the year. What’s more, it can also be offered as stand-alone IP for our partners to integrate into their designs. It’s powerful, flexible and available for licensing now!

Benny Har-Even

Benny Har-Even

With a background in technology journalism stretching back to the late 90s, Benny Har-Even has written for many of the top UK technology publications, across both consumer and B2B and has appeared as an expert on BBC World Business News and BBC Radio Five Live. He is now Content Manager at Imagination Technologies.

Please leave a comment below

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted. We respect your privacy and will not publish your personal details.

Blog Contact

If you have any enquiries regarding any of our blog posts, please contact:

United Kingdom

benny.har-even@imgtec.com
Tel: +44 (0)1923 260 511

Search by Tag

Search for posts by tag.

Search by Author

Search for posts by one of our authors.

Featured posts
Popular posts

Related blog articles

Visit Imagination at the TSMC 2019 Technology Symposium

Imagination is attending the TSMC 2019 Technology Symposium in Santa Clara, which runs today and tomorrow, the 23rd and 24th of April. The semiconductor-focused event takes place ten times a year around the world, with three locations in the US,

PVRMonitor for Android now available!

If you were at GDC 2019 or have been following our announcements, you may have heard about or even seen a demo of our complete rewrite of PVRMonitor. Not only has it been substantially improved, but we’ve also re-imagined it

Stay up-to-date with Imagination

Sign up to receive the latest news and product updates from Imagination straight to your inbox.

  • This field is for validation purposes and should be left unchanged.