Showing posts with label comparison. Show all posts
Showing posts with label comparison. Show all posts

Sunday, May 18, 2014

'Setting Of The Month': Bandicam's Xvid Implementation (with Screenshots and Quality Analysis)

As the First Post of a new type of article here at The Game Tips And More Blog
[started due to popular demand!], I would like to explain a bit about my 'Setting Of The Month':

What is meant by "Of The Month" (at least at this blog), is less 'lunar syzygy' and more 'what is currently being served', in concept. Every once in a while I will post what Recording Settings or Rendering Settings I am currently using. I want to begin doing these posts in response to two things:

  • It was requested by you readers! Over the first half of the year, I run a Poll here at the Blog (it is located on the top right panel area) and currently, the single most popular Requested Topic For Future Posts is "Tips and Tricks of Video Capturing and Editing". Therefore, as part of answering that call 'by popular demand', by my respected readers, I want to share as a 'Tip' what settings I have been using of late to capture - not to tell you 'what to use', but to simply give everyone a suggestion - perhaps even a place to start from, when recording or editing their gameplay adventures.
  • I see 'settings' asked about a lot, everywhere. Whether it is in game forums, technical forums, video editing and recording application forums, or even in my Inbox once in a while, people are constantly asking what settings to use, or "what settings do you use" - and that's great! I'm glad to see helpful replies of others (and sometimes short explanations on how someone is using a specific setting and why). As anyone who has asked me directly knows, I enjoy helping others with suggestions on settings and usually try to explain why I am using one setting over another.
And so, here is the first edition of a new addition to this blog, without further adieu:



 

This Month's Featured Setting


Bandicam's Xvid Codec


For the past little while, I have been messing with the Xvid codec - not the 'official' one from XviD.org that you have to download - the one that is built-in to Bandicam, easily available via pull-down menu in the Format area, where you choose which codec you want to record with. As of the most recent version of Bandicam [at the time of this post], Xvid is now the Default Codec that is pre-selected, when you install/startup Bandicam. Where in previous versions, a 'Bandisoft-optimized' MPEG-1 codec was the Default, now a 'Bandisoft-optimized' version of Xvid is thrust into the limelight - and I wanted to test this puppy out and see what tricks it can do!


If you've were computing through the 1990's, you may have heard about the Xvid codec. A competitor to the DivX codec around the turn of the millennium, I am actually going to skip over the history of the Xvid codec [other than this one paragraph]. Parts of such history may actually be a 'dark affair' (depending on who you talk to), worthy of it's own short documentary, as the DivX vs XviD history has some aspects in common to the history of other products and companies that were popular over time [with Saturday Night Television Specials such as "Apple vs Microsoft", "Xerox vs Apple" and more..]. As with many companies and products in popular use today, they all have "Origin Stories" that you won't find on The Internet and never will... And Now, Back To Your Regularly Scheduled Program


The Xvid codec is a version of MPEG-4 (it is MPEG-4 Part 2 or "H.263/ASP"), so it is directly related to it's younger-but-bigger brother, AVC (which is MPEG-4 Part 10 or "H.264/AVC"). As such, Xvid [ASP] does not have many of the functions that are found in H.264 [AVC], such as Deblocking, where the codec will try to 'hide' some compression artifacts that occur due to over-compression; but Xvid is still a great codec to record with, it's main strength being speed. Because it doesn't have many of the processing functions of it's more recent and bulkier MPEG-4 versions, it can 'figure out a frame and save it to a file' very quickly - which is essentially what is happening, technically, when game recording.

Recording with Bandicam's Default settings for their implementation of Xvid [designated herein as "Xvid(b)"**, to show that it is the "Bandicam-Optimized Version of Xvid"] will give you a Quality Setting of 80%. The capturing framerate, by Default, is set at 30 fps (Frames-Per-Second). The audio format, in this Default setting, is compressed "MPEG-1 Layer 2" format (MP2) for the Audio. Here is a screenshot showing what all of Bandicam's Default settings, for their implementation of Xvid, looks like in one image:

The 'Setting Of The Month': Bandicam's Version of Xvid, included with Bandicam (Default Settings)
Click to see Full Size

Below, are a sampling of a handful of games and the framerate performance hits that were seen while recording with these Default Xvid(b) settings (i.e. the differences between 'playing the game and not recording' versus 'playing the game and recording at the same time'):

Recorded Game Title                    Resolution     Performance Hit (Δ)
Hitman: Absolution Benchmark1366x768~ 2 fps
Hitman: Absolution Benchmark2560x1440~ 4 fps
FurMark (Full Run)1366x768~ 2 fps
FurMark (Full Run)2560x1440~ 0 fps
Unigine Valley Benchmark1366x768~ 6 fps
Unigine Valley Benchmark2560x1440-
Batman: Arkham City Benchmark1366x768~ 4 fps
Batman: Arkham City Benchmark2560x1440~ 9 fps
Skyrim (Introduction)1366x768~ 0-8 fps
Skyrim (Introduction)2560x1440-
Minecraft1366x768~ 0 fps
Minecraft2560x1440~ 0 fps
table code created by Danny Sanchez (journalistopia.com)

As you can see in the table above, the difference in framerate between 'Playing' and 'Playing While Recording' is very minimal [the performance 'drain' being accentuated in higher resolutions for most games]. Although only a handful of games were tested, I did try testing both spectra of resolutions possibly in use by the average gamer today, by recording with an 'enthusiast' resolution (2K/1440p) as well as a commonly-run laptop/notebook resolution (1366x768) which could also be run by older or less-capable systems. Bandicam's optimized Xvid performs very well in the tests, with almost as low of a performance change as the 'super-light-performance-hitting' MJPEG codec.

Like MJPEG however, Xvid's weakness is the lack of tools to compensate for compression. Again, I mention here the MPEG-4/AVC ability to somewhat 'hide' compression artifacts, with code for utilities such as "Deblocking" built into the codec, where the edges of areas that the codec is making its calculations in are 'softened', so that the 'blocky' effect of high compression (called Macroblocking) is less visible. In Xvid, there is no such utility, so if too high a compression level is attempted [too low a bitrate is stipulated], then these 'block' artifacts can easily be seen, especially in 'flatter' areas of a frame (portions of the screen with less color and/or changes happening), as seen in the below frames, extractions from the actual recorded video frames themselves:

[In the examples below, when the compression artifacts aren't as obvious, I will show the entire screenshot in compressed JPG format, then underneath I 'zoom in' to show the compression artifacts from the codec as magnified extractions from the original video frames, in BMP (BitMaP) format. I use sampled areas for that, as full 1440p Screenshots in an uncompressed format would be over 10MB each]

Xvid(b)** at 90% Quality [altered from Default 80% Quality Setting], Battlefield 3.
Click to see Full Size
The result when recording at 90% Quality (up from the Default of 80%) was very satisfactory, with only 'nit-pickable' parts to show the codec's weaknesses, like the Upper Left area of this scene above (with the dark interior areas). Some artifacting can also be seen in the Middle Top area (slightly obvious even in this compressed JPG), where the plain sky areas take the brunt of the compression of this frame taken from the original game recording video produced by Bandicam.

Xvid(b)** at Bandicam's Default of 80% Quality, Battlefield 3.
Click to see Full Size
The above image is taken from a game recording of Battlefield 3 that had some pistol action going on, with an explosion caught in the background. The quality of Bandicam's Default setting isn't too bad and high action scenes can actually look quite acceptable. For example, in this frame above, with the explosion occurring on an upper walkway, only the Right Edge of the explosion (with the debris) has obvious Macroblocking - and the sidewalk [and foliage] macroblocks had to be 'looked for' here - and are less noticeable in the moving video. The 'flatter area' (with less colour variations) in this scene, is the poster advertisement, which the codec punishes with compression, leaving colour banding and macroblocks evident. The rest of scene is more complicated material and demands the codec to utilize more bitrate, ending up looking not too bad at all, when VBR is used (Variable BitRate, "changing data rate") mode).
[I personally found that in dark (as in nighttime) scenes, at 80% Quality there was distracting colour quantization (colour quality loss) and macroblocks (little square compression artifacts); but for most material, the 80% Quality setting seems ok to use for Xvid(b)**, most of the time]

Xvid(b)** at Bandicam's Default setting for Xvid of 80% Quality, the Batman: Arkham City Benchmark.
Click to see Full Size
The above image is an extracted frame from a recording of the Batman: Arkham City Benchmark. A very difficult scene for any codec (unless you tell it to 'keep all quality, use 100%' and then don't mind the larger file size that will be created) it is hard for a codec to decide what to compress and what not to, as particles fly all over the place and light and dark areas shift around as the Benchmark runs through this area with changing levels/regions of Luma [lightness, brightness]. Bandicam's Xvid did a good job trying to keep the text sharp at 1440p - but at 80% Quality, macroblocks are everywhere (those present in the screenshot above are not from the JPG compression, they were present in the game recording itself). At 80% Quality, anything with subtle gradient colour changes are absolutely tortured by the codec, seen especially in the change from light to dark in the Center Top light fixture area and the Left Lower curtain region. Bright areas however, such as the light fixtures themselves and almost all of the particles flying around, are judged by the codec to be 'important to human eyes' and detail is kept high for those objects.

Xvid(b)** at Bandicam's Default setting of 80% Quality, Minecraft.
Click to see Full Size
The above frame is taken from a recording of the Minecraft Demo starting shoreline, originally captured at 1440p (the image is resized down to 1280x720). I was interested in how Xvid would handle Minecraft, a difficult game to capture and compress, as hard edges and lines are everywhere. Bandicam's version of Xvid did surprisingly well, as the video recording itself is a joy to watch, with compression artifacts barely noticeable (recording at higher resolutions helps with that, but uses more disk space for the game recordings). Magnification of the original video frame is just below (next image):

These two sampled regions are magnified to 200% (doubled in size). They were extracted from the game recording frame above, which itself came from the original game recording produced by Bandicam and the built-in Xvid codec.
Click to see Full Size
While not as obvious in the moving video, the above frame extractions (both Left and Right sides) show Gibbs Effects ['ringing' or 'mosquito noise'] around the hard edges of Minecraft's graphics. The colour gradient changes, blending slowly into the background/sky colour in the Right Half of the above image also cause Ringing and Macroblocks to occur. Distant water gets treated with extreme prejudice by the codec, as the jumble of lines and animation from the textures are 'sluffed together' [my technical term] and Macroblocks are obvious. Again, these artifacts are more obvious in the stills from the game recording - the video itself, when watched, was more appealing to the eye and these compression artifacts aren't as noticed as the frames fly by and the cow looks at you in a wondering manner.


Regardless of some of Xvid's compression shortcomings illustrated above, with the speed that it performs at, along with the ability to turn up the Quality setting in Bandicam, these artifacts shown will not occur as often in higher quality settings - and then Xvid can be a nice codec to run with, especially if a system cannot handle a codec that does higher processing on the frames [taking more time to do calculations on them and saving them to a file, creating 'lag']. Older systems or laptops that do not have the hardware to utilize GPU-accelerated game recording (with codecs such as NVIDIA's CUDA and NVENC, AMD's App Acceleration and Intel's Quick Sync) can utilize Xvid as a less-taxing codec to record with [as another option on the Utility Belt of Game Recording Codecs to choose from]. Indeed, it is almost as speed efficient as the ever-compatible MJPEG codec, for capturing, editing and compression.


The default setting, when installing Bandicam, creates a GOP of 150 [GOP stands for Group Of Pictures or the number of frames between Information/Key Frames in a video]. This is fine for normal viewing (and it leaves a lot of headroom for compressing 'only the differences' between the frames, resulting in smaller filesizes), but a large GOP can create problems with editing, as many NLE's (Non-Linear Editors, such as Sony's Vegas/MovieStudio line, Adobe's Premiere products, Lightworks and more) do not work well with so many frames in-between the Keyframes - however, editors such as Corel's VideoStudio, CyberLink's PowerDirector and Microsoft's own Movie Maker do not exhibit this issue [I tested these three applications by hand, myself, just to make sure and they imported fine and were handled without the "glitchy-ness" or "trails" that were exhibited in (for example) Vegas].

Although originally captured for an article on the Xvid codec here (which can potentially also experience the issue mentioned in the above paragraph) this image shows an example of what the "trails" or "glitchy-ness" will look like, as it was captured from a video with a Large GOP (large keyframe interval) output produced by Vegas. (Click to see Full Size)



When editing a video with a large GOP, the video editing application must 'seek' to the next Keyframe whenever it has to process a request and calculate/build all of the frames from there (which slows things down and delays processing and editing). Also, depending on the application, with some programs video can only be 'cut' on keyframes (unless an application is coded to create keyframes where needed). All of these steps and problems created by 'Long-GOP' video can be avoided [when using the above-mentioned video editing programs] by simply adjusting the Keyframe Interval in the Xvid settings to "1".

One caveat to keep in mind, with setting a Keyframe Interval of "1": although it will now make for speedy/easier/morecompatible editing with many video editing applications, the codec will not have as much 'headroom' to work with, when compressing your game recording material. 
What this means is, that instead of only keeping track of the changes between frames (say, a person running by down the side of the screen), where the codec will literally only save those 'differences' in the file; it now has to save every single portion of the viewable screen in every single frame, complete and independent in 'stand-alone' frames (the KeyFrames), and while the video will be much faster in seeking and have increased editing compatibility, the codec requires much more bitrate now, to save 'everything' in every single frame.
The result: your video file size will end up larger than before. However, you can now edit the video in Vegas, Premiere, Lightworks and more... the choice of how to go about this aspect then, is up to you [whether to use a GOP of 1 for easier editing, or not]. If you do not use these specific video editing programs (perhaps instead, you are using PowerDirector or VideoStudio Pro or Movie Maker, which to not have as much trouble with 'Long-GOP' material, not needing the GOP to be one frame) or you are not having problems with whatever editor you are currently using, there is no need to make this change to the Xvid recording settings in Bandicam [this is why there is no green indicator arrow in my 'Suggested Settings' illustration coming up in a little while, for this option]


Staying on the topic of Bitrate [from the above paragraph] for a moment, "..what kind of file sizes are we looking at..?", you might ask. Well, here is a sampling of some of the Bitrates that were seen when recording with Xvid(b)** at Bandicam's Default Settings for the codec:

Recorded Game Title                   Resolution    BitRate (Mbps, GBph) 
Hitman: Absolution Benchmark1366x768~ 34 Mbps, 0.97GB/hour
Hitman: Absolution Benchmark2560x1440~ 83 Mbps, 2.4GB/hour
FurMark (Full Run)1366x768~ 44 Mbps, 1.2GB/hour
FurMark (Full Run)2560x1440~ 45 Mbps, 1.2GB/hour
Unigine Valley Benchmark1366x768~ 37 Mbps, 1.06GB/hour
Unigine Valley Benchmark2560x1440-
Batman: Arkham City Benchmark1366x768~ 20 Mbps, 0.57GB/hour
Batman: Arkham City Benchmark2560x1440~ 54 Mbps, 1.5GB/hour
table code created by Danny Sanchez (journalistopia.com)

Just to compare some file sizes of other codecs: the Low Quality setting for the Dxtory codec (with Compression) recorded a run of the Unigine Valley Benchmark (at 1080p) at about 326Mbps (9.3GB/hour), while FRAPS produced a recording of about 291Mbps (8.3GB/hour), with Lagarith (in Default/RGB Mode) creating a recording of the same material that ran at about 235Mbps (6.7GB/hour). Of course, bitrates fluctuate, depending on the complexity of the material (more movement/action/etc, which requires more bitrate to properly represent the material.. but a longer explanation of that is outside the scope of this post [believe it or not...I'm trying to keep them 'short'! hah]).



The other setting that can be changed in the Bandicam interface for their version of the Xvid codec, is the Quality. Here is an example of the differences in quality output at the various Quality settings for Bandicam's Xvid:

Comparison between varying Quality settings, for Bandicam's version of Xvid (from Left to Right; Quality at 40%, 60%, 80% and 100% Quality). The JPG compression used for this composite [the four videos side-by-side] did not overly affect the Macroblocking occurring - the 'blockyness' seen in these frames is almost untouched, even though the videos from the original Unigine Valley Benchmark recordings were converted into this JPEG image - this is very close to how it looked in the video (although slightly more noticeable as still images). Click to see Full Size

As you can see, the perceived quality for Xvid goes down quickly, with Macroblocks becoming more obvious as the quality setting goes down. However, acceptable Quality can be maintained if the quality setting is kept high [in my opinion, stay at 90% or higher if you can]. Remember though, that with the higher quality settings, more space will be required by the codec, to save all of that data. Also, if using a Keyframe Interval of "1" (creating a GOP size of one frame, each frame in the video then being a Keyframe), the codec will also not have as much room to compress the images/video and your output size will increase. As stated above though, the benefit of using a Keyframe Interval of "1" is, then your game recordings will be easily importable/editable in NLEs like Premiere, Vegas, Lightworks, etc - if you are are having troubles with those specific applications [if you are not, there is no need to limit the GOP to one frame, which is why there is no green arrow indicator in the below illustration]. Below, are my Suggested Settings then, for this codec in Bandicam, in one image:
The 'Setting Of The Month': Bandicam's Version of Xvid, included with Bandicam (Suggested Settings):
Quality is at 90%, PCM ("Uncompressed") Audio is selected [mainly for editing compatibility], a higher compression ("Smaller file Size" option) is chosen (and a Keyframe interval of "1" is suggested for compatibility with editing applications such as Vegas, Premiere, Lightworks, etc. if required [only change if needed as it increases file size, no green arrow indicator is shown on the Keyframe Interval])
Click to see Full Size


Overall, I think 'Bandisoft's version of Xvid' in Bandicam does a decent job with Quality - and is downright excellent where Performance is concerned. On my system (and hopefully yours), Bandicam's Xvid had very little drain on the performance of the game while recording with it, creating very little 'lag' while recording (it had a low 'performance hit'). As long as the quality setting is kept high (90-100%), the recorded output Quality can be quite acceptable, with only a little Macroblocking (block shapes being visible) and Posterization [colour quantization, which is a reduction in the amount of colours, resulting in 'colour banding' or 'bands' seen] in the darker and 'flatter' areas of a frame in a game recording (Macroblocking may occur in areas such as skies, less-colourful regions, etc). Try out some recordings with Bandicam's version of Xvid for yourself and see if you prefer using it for recording your gaming adventures.


Please note dear reader, that I am not saying "this codec is the best one to record with" or "use this one only". I am merely showing that it is possible, or how to tweak it for quality or file size, as to your own personal tastes. There are many codecs out there to choose from when game recording and although some are more apt for certain types of games than others, overall it is your own choice to do with as you wish - use what you prefer. 




See you in the games!




Personal Short Version/Opinion:


While the Bandisoft-optimized version of Xvid included in Bandicam works pretty well and is fast, I find myself not using it very often, other than this past month or so, for testing. After recording for a while with Xvid's 'successor', h.264/AVC, the extra features of Deblocking and other tools in AVC have 'spoiled' me. Going back to the slightly more 'blocky' output of Xvid - even though it creates very little lag when recording - is slightly distracting to my eyes. When I see an Xvid game capture of mine now, my eyes are instantly drawn to the darker/flatter areas of the scene and those little tiny block shapes...and I sigh at the slowly-aging Xvid codec, remembering its' heyday' of compressing my TV shows recorded on my ATi TV Wonder PCI card. The late 1990's and the 2000's were 'Xvid's Time' to me, when I used it for almost everything - and while it performs well in game recording today (even Xvid.org's 'Official' version, with the right settings), I am now just too used to the benefits of more modern codecs, like h.264/AVC, which can even use the videocard/hardware, for GPU-accelerated recording.

I realize there are a lot of people gaming on laptops out there, and not everyone has a dedicated/separate videocard inside their system to record with, but the more I use my GPU to record with, the more I am impressed with the performance when recording most games [note that some games 'don't like' GPU-accelerated recording (are not fully coded for compatibility with it) and these games have large hits to performance with it]. At the moment of this writing, I have two NVIDIA videocards running in my system (performing together in SLI mode) and I am enjoying using the GPU-accelerated CUDA offering in Bandicam to record with. Like AMD's AppAcceleration and INTEL's QuickSync, CUDA utilizes H.264/AVC through the hardware to record, having high performance [for most games] and producing nice output, utilizing some of the newer aspects of MPEG-4 (such as Deblocking) when recording, to hide compression artifacts [the little 'glitches' from compressing the video]. The speed, and presence of light 'compression correction' from this hardware implementation of MPEG4 has spoiled me now, and I am finding it hard to go back to the slightly more obvious artifacting in 'older' codecs, such as MPEG-1 or Xvid (which is 'older' MPEG-4), especially when those codecs are used at lower quality settings, to try and save hard drive space. (Turning up the Quality settings for these codecs helps a lot, if your system can handle it)

As CPU architecture evolves and modern CPUs have 'mini-GPUs' built into them, the differentiation of capability between 'gaming rigs' and 'gaming laptops' blurs [as far as game recording goes], as GPU-accelerated game recording is possible now by less and less expensive hardware (AMD APUs) and processors (INTEL's QuickSync), even within laptops [as opposed to full desktop systems]. This means that "gaming laptops" now have much more capability when it comes to game recording, today. If your laptop is capable of using GPU-accelerated recording, give it a try. If it is not, systems that do not use the GPU to compress their video can still perform well recording games, as is shown with the above article, by using Xvid. "If you can't choose the H.264 encoder in Bandicam, choose 'Xvid'" ~ Quote from the Bandicam.com website.

Do some testing of your own dear reader - and have fun experimenting, finding a codec that you will eventually prefer to record with - and See You In The Games...


Last Remarks (in addition/continuation to the Prologue of this article): 
Another thing to keep in mind is, that my settings (both for Recording and Editing/Rendering) change slightly over time... I may have been able to purchase a new disk drive recently for instance, so then I will allow my recordings to take up more space [for a while anyway]. I may be trying out a Demo/Trial of a new version of a Video Editing Application, so I have been experimenting with some different Rendering settings. Perhaps a videocard driver or codec was updated, so now I will experiment a bit with the recording application settings, seeing if I can squeeze a little more Quality out of my recordings, while keeping the Performance high. All of these reasons and a few more, are why my settings constantly change over time. Don't worry, I'll try to remember to come here and share them with you, anytime I find a "Good Combination" that works well for either High Quality or Fast Performance, the 'Holy Grail' of course being a Perfect balance of both. 
As I have begun more dedicated testing over the past few years, I have found that specific games themselves 'prefer' certain recording and rendering settings over others. What I mean by "prefer" is: as new game rendering engines are written, hardware architectures change, and programmers utilize 'something over another' in general during a game's development, this affects what settings a game 'works better with', whether it is a specific game recording program, hardware/GPU, or specific recording and rendering settings; hence my usage of the word "prefer". 
This is why, for example, some games will perform better on an AMD/ATi-based videocard in Benchmarks and Reviews than an NVIDIA-based GPU - and then other games will have better results on an NVIDIA-based videocard over an AMD/ATi-based GPU - those games were simply being developed [the programmers wrote the code] on a system with that certain GPU installed in it at the time. This also means there is a chance of specific optimizations in programming that slightly favour one brand of GPU over another [and they may even have been 'compensated for their efforts' by that respective company, but *shhh* these things aren't spoken of outside Mordor]. 
In regards to the above and game recording, I have found that some games will have better performance with different game recording applications as well. For example, one game may have less of a performance hit while recording with Dxtory and then another game will have better performance recording with Bandicam [as an example] - it all depends on the code and how it is written and being rendered. That's why I 'change it up' so often, altering my recording settings (and rendering settings) as each game I play exposes its nuances. That's what I mean if I ever say a game 'seems to prefer' recording with one game recording program over another. 
Keep this all of the above in mind then and also remember dear reader, that I am never telling you "you should use this", I am always suggesting only a possibility in my posts, and it is always up to you to try it out and decide if you want to use a recommendation of mine or not.
 [I encourage everyone to always take the good ideas from others and leave the bad, making up a composite of their own liking and preferences and what they want to utilize - whether it is with game recording and editing, or Life In General - but, that last part is for another blog...] 



 **[designated as "Xvid(b)", to show that it is the "Bandicam-Optimized Version of Xvid"]

Sunday, April 20, 2014

Battlefield Play4Free - PlayTesting The AEK-971 Assault Rifle (One Full Round - Myanmar - Raw Gameplay [Unedited] Video)






















Battlefield Play4Free and The Daily Draw



Just a quick primer for those that don't know; Battlefield Play4Free is a Free-To-Play title, which means it doesn't cost anything to join in, but you can purchase weapons, armor, clothing and other items for Real Money. In this game, you do so by purchasing "Play4Free Funds" that you can then use in the in-game Store. There is also a nice feature offered where you can win 'prizes' (weapons, armor, clothing, etc) from a game called The Daily Draw at the main Battlefield Play4Free website. You can play once every day, choosing a card from a random draw of eight and the card you choose will be an item 'underneath'.


The items possible to win range from temporary one-day-use-only weapons and clothing, to seven-day-use ones, to permanent items your character (Soldier) can use in the game forever (for example, a scope that can be attached to a gun for that soldier for all time). This is great for those who can't afford to purchase many in-game items, as it not only offers the possibility of getting some great gear 'forever', it also gives a nice preview of a weapon, mod or clothing, so that you can see what it will look like/feel like, if you decide to splurge and purchase it for yourself (supporting the game and developers as well) sometime in the future. The Daily Draw also gives a chance to win 'Boosts', where you can earn extra Credits [for instance], as seen in the screenshot below:



The AEK-971 Assault Rifle



I recently won the AEK-971 in The Daily Draw on my Assault class soldier and thought I'd try it out and see how it felt and quickly write a post about it [I call these 'PlayTests']. Now, I am not a gun expert or know a lot about the statistics of the guns, so I will mainly be discussing briefly here how the gun 'feels' and 'plays', especially compared to the default G3A4 Assault Rifle.



The AEK-971 unlocks nice and early at Soldier Level 3, but the main reason for this seems to be that it isn't supposed to be very different from the Default Assault Class Rifle. As you can see from the comparison above, which is the main Store/Inventory screen information for the weapons, the only real difference is the amount of damage it can do. It has the same accuracy rating as the G3A4, the same range, and the same amount of ammo in the mags. After winning it in The Daily Draw, I played a few rounds with AEK-971 and originally recorded a couple of full matches. Here is one full match, shared unedited for you [a 'Raw Gameplay' video], testing out the AEK-971:


I was also testing out the Trial of CyberLink's PowerDirector 12 for editing.
A Review article about that application - with Tips - Coming Soon™!



Despite not being listed as any more accurate than the G3, I felt more 'capable' with the AEK (as though I could 'put up a fight' a lot better), probably due to the increased damage. It feels a little more accurate too, even though it isn't really supposed to be, according to the Store/Inventory info for the gun. So, I figured this is a great time to do some testing! [Yay, tests! lol]



AEK-971 Accuracy Analysis




I did some basic analysis on the recoil pattern of this rifle and it is indeed similar to the default assault rifle, but the AEK is ever-so-slightly more accurate, in my opinion. Here is an example of a test I did, a screenshot of the spread patterns, collecting the bullet markings, below:

Coloured spray paint marking the AEK-971's Bullet Spread, on average
(Click to see Full Size)
  • The left side is the spread while 'shooting from the hip', not using the sights, just standing there holding down the trigger  [the spray painted arrow is red-coloured as in, 'try not to do this at all if you can, unless in very close quarters combat']
  • The right side is the spread while 'zoomed in', that is, using the sights on the gun (it would use a scope if there was one), still just standing there holding down the trigger  [the spray painted arrow is yellow-coloured as in, 'try to avoid this']
  • In the middle is the spread while zoomed in/using the sights, crouching down, still holding down the trigger though - but also now compensating for the recoil of the gun (attempting to contain the spread into a small area) - in this case, slowly pulling DOWN the mouse while firing since the recoil of this gun pulls the barrel UP  [the spray painted box is green-coloured as in, it is recommended to do this (even better if you can tap the trigger instead of holding it down)]
As you can see, even though the rated accuracy for this gun is "Low", you can get a pretty decent containment of the spread, by kneeling down, using the sights, and compensating for the recoil by moving the mouse accordingly [this little tip helps with all guns].



In most games, you can try to compensate for the recoil of a gun by slowly moving the mouse in the opposing direction to where the barrel travels. For instance, if the recoil pulls the barrel of the gun left, when shooting, moving the mouse to the right then, will cancel out some of the recoil and make for a smaller spread of bullets and easier/faster repositioning for the next shot. Try to remember that each gun will be  different in it's recoil and which direction you should compensate, when using each weapon though. 
[Note that due to game programmers making bullets 'miss' (no matter what), in an attempt to imitate reality (which has imperfections in the gun and bullets, air changes, etc), it will never be possible to fully compensate/correct for the 'spread' of bullets in a gun (this goes for most games)]. 



In my tests, the Assault Default G3A4 seemed to pull up and away to the left slightly, when shooting it. Holding down the trigger longer, the gun climbs way up into the sky easily (hence the "Low" Accuracy rating, I assume). For the AEK-971, it does still pull up, but it does not pull to the left in the same way as the G3A4, especially when using the sights. It sort of does a light 'stepping' to the left and then to the right, somewhat randomly [whatever the algorithm is in the programming]. This, to me, makes it ever-so-slightly more accurate in the 'feel' of the gun, because while it still 'goes all over the place' when shooting, it sort of compensates for itself just a bit, and the end result is more of a direct climb up in the recoil, something that felt, to me, easier to compensate for than with the Assault default G3. (I assume this very slight change in the spread/recoil is not enough to win this gun a "Medium" rating in Accuracy, but it is enough to make you have to Level to 3 in order to be able to purchase it..).



Close-To-Medium Range Kill with the AEK-971 in Myanmar. Even with the 'side-stepping' that the gun does (and the enemy strafed around as he ran out towards me from behind the rock in the center of the screen) I still got the kill, mostly due to the Very High Damage Rating of the weapon
(Click to see Full Size)


In Conclusion



Overall, the AEK-971 was similar to the default Assault class rifle, the G3A4, when playing. To me, it did feel slightly more accurate, but not by much. If you are having a really hard time hitting people with the G3A4, your accuracy won't increase very much at all if you purchased this rifle. However, if you are getting used to the default Assault gun, this one packs a lot more punch, and you'll be getting more kills overall if you upgrade to it. Because I recently won this gun Permanently [during the course of compiling this article, yes it does happen in The Daily Draw! woot] I can't see the current price for this rifle anymore, to purchase it from the in-game Store; but last time checking, it was only 300 Credits to try it out for one full day. It was also listed as [what I call] 'Earnable' because, if you can rack up 45,000 Credits, you won't have to pay for upgrading to this rifle with any Real Money at all (you can just use the Credits). If you did buy some Play4Free Funds and have 1,250 to spare, you can purchase it at anytime (not having to wait until Soldier Level 3), permanently. So in closing, PlayTesting the AEK-971, I found it slightly better than the Default Assault Class Rifle, even if it only 'felt' that way due to the higher damage it does.


Long Range Kill with the AEK-971 in Myanmar. The thin iron sights of the gun (default sights) help a lot with targeting farther away. With the Very High Damage Rating - even though the gun has a Low Accuracy Rating - single-shot/tap shooting can still make it lethal at range, when needed
(Click to see Full Size)


Have fun trying it out for yourself sometime and See You In The Games!




Gameplay Disclaimer: Any gameplay videos or animations uploaded are only one example of one possible path of game play and is not representative of the gameplay experience of the entirety of the game material as it is non-repeatable in exactness (movements, actions, viewpoints, etc) to a high degree of accuracy (especially in regards to online multiplayer play and interactions) and therefore is not a representation of a large portion of the game content (this includes complete Walkthroughs/Playthroughs, Raw Gameplay Footage and Tutorials). All material and content uploaded attempts to respect copyright and is presented for Educational and Entertainment purposes only, utilized under Fair Use and can be construed as Free Advertising. No copyright infringement is intended and cannot be inferred. Any possible representation approaching any infringement, to those seeking infringement action, requires double notification and will be honoured by permanent removal of the infringing material. This information exists for entertainment and educational purposes only and is not a substitute for medical attention.

Saturday, October 12, 2013

Quality Test - GPU-accelerated H.264/AVC Game Recording with CUDA (with Screenshot Comparisons and Examples)

To perform game recording solely on the videocard, utilizing the high resources of today's little powerhouses sitting in our cases - resulting in high quality video and less lag while recording - sounds like manna from heaven. You might be saying, "Wait, the possibly of lowered performance hit and the possibility of a high-quality recording?.. if this is true, please stop teasing and just tell me now..". Well, dear reader, let me tell you that these things are indeed true [for the most part..].

Beginning with version 1.9.0, Bandicam (a game recording application) included support for utilizing NVIDIA's CUDA for recording your gameplay, touting high speed (less 'lag'), high compression ratio (smaller file sizes) and high quality. All you needed was a CUDA-capable NVIDIA videocard, the latest videocard drivers from NVIDIA, and Bandicam. In the most recent version of Bandicam (1.9.1) they have also included support for AMD's APP ACCELERATION and INTEL's QUICK SYNC. 

For this QualityTest, I took an NVIDIA GPU and put it through the paces of some game recording with the accelerated H.264/AVC codec (as opposed to the CPU-based x264 for example), using Bandicam [which at the time of this writing, to my knowledge, was the only game recording app that could utilize accelerated/gpu-based AVC recording] to test things out. Here are my findings, shared just for you.


An example of an NVIDIA CUDA encoded game recording, this is a frame extracted from the CUDA-produced output file (Unigine Heaven Benchmark Test @ 1080p). Click to see Full Size


Overall, recording with the GPU gave good performance (low performance hit / lag), fairly small file size output, with decent quality [surprising to anyone that has compressed video with CUDA in the past, I know, more info below]. It was only with certain games that the performance suffered (although this may be more the fault of optimization with the game's engine and not NVIDIA's programming) and it was slightly disappointing that the performance wasn't "that much faster" than other codecs [more info at the end about that]. For the most part however, game recording "live" with the GPU and directly encoding to a file using a compatible videocard is indeed nice and fast and produces comfortably-small footprint file sizes.



What file sizes are we talking about here? 



I haven't looked at the specs for the codec and how it's utilized, but from what I can quickly see on the surface, it is using the h.264/AVC codec with my NVIDIA GPU, with Deblocking enabled and with a keyframe/I-frame inserted every 5 seconds. That doesn't leave 'a lot' of headroom for compression (x264 AVC usually defaults to 250-300 frames between keyframes which, at 30 frames per second, is more like 10 seconds to 'play with' for compression); but it still gave a nice small filesize when recording with VBR (Variable Bit Rate), where it would compress slower-motion areas and scenes when it could and increased the bitrate (to try to keep apparent quality) when needed in faster/high-motion sections.


An example of an NVIDIA CUDA encoded game recording, this is a frame extracted from the CUDA-produced output file (Battlefield 3 @ 1080p). Click to see Full Size


Just below, you will find some data samples of game recordings that were done at incremental quality settings, showing the average bitrate of the recording overall and the sizes of the files produced as output
[(i)all game samples were recorded with accelerated/gpu-based H.264/AVC generated by NVIDIA's CUDA at 1080p unless otherwise indicated (ii)although test recordings varied in length between games, throughout each game title, all 4 tests of the same game were done with the same elapsed time]:


Recorded Game TitleQ. settingAverage BRFilesize
Batman: Arkham CityQuality 100(~75000 kbps)753 MB
Batman: Arkham CityQuality 70(~22000 kbps)224 MB
Batman: Arkham CityQuality 50(~10000 kbps)104 MB
Batman: Arkham CityQuality 20(~5000 kbps)59 MB
Unigine Heaven BenchmarkQuality 100(~120000 kbps)1390 MB
Unigine Heaven BenchmarkQuality 70(~48000 kbps)551 MB
Unigine Heaven BenchmarkQuality 50(~24000 kbps)276 MB
Unigine Heaven BenchmarkQuality 20(~11000 kbps)140 MB
Diablo IIIQuality 100(~22000 kbps)44 MB
Diablo IIIQuality 70(~9000 kbps)20 MB
Diablo IIIQuality 50(~5000 kbps)12 MB
Diablo IIIQuality 20(~4000 kbps)9 MB
Alien Versus Predator (PC-2010)Quality 100(~110000 kbps)380 MB
Alien Versus Predator (PC-2010)Quality 70(~37000 kbps)126 MB
Alien Versus Predator (PC-2010)Quality 50(~18000 kbps)66 MB
Alien Versus Predator (PC-2010)Quality 20(~8000 kbps)28 MB
Minecraft (Standalone)Quality 100(~47000 kbps)44 MB
Minecraft (Standalone)Quality 70(~27000 kbps)25 MB
Minecraft (Standalone)Quality 50(~13000 kbps)12 MB
Minecraft (Standalone)Quality 20(~7600 kbps)7 MB
Lord Of Ultima (Browser Game)Quality 100(~ 24000 kbps)59 MB
Lord Of Ultima (Browser Game)Quality 70          -      -
Lord Of Ultima (Browser Game)Quality 50(~7000 kbps)20 MB
Lord Of Ultima (Browser Game)Quality 20(~3000 kbps)11 MB
Lottso Express (Browser, 384p)Quality 100(~870 kbps)10 MB
Lottso Express (Browser, 384p)Quality 70(~320 kbps)7 MB
Lottso Express (Browser, 384p)Quality 50(~225 kbps)6 MB
Lottso Express (Browser, 384p)Quality 20(~164 kbps)5 MB
table code created by Danny Sanchez (journalistopia.com)

As you can see in the table above, due to the nature of Variable Bit Rate recording, setting a quality figure of "50" does not produce 'exactly one-half' of the bitrate or filesize of a "100" quality setting. The codec is adjusting as needed and where required, allocating more bitrate to complex areas and changes between frames, to help keep "apparent quality" near the desired estimate. Configuring the Quality setting of "100" is essentially telling everything to keep as much detail as possible - but it will only do so within the limitations of the codec being used (in this case, AVC) and how it is configured internally (the calculation time allowed per frame, the buffer allowed, etc), depending on how the developers have programmed it to encode.


An example of an NVIDIA CUDA encoded game recording, this is a frame extracted from the CUDA-produced output file (Minecraft @ 1080p). Click to see Full Size


Overall, it seems that with CUDA, the file sizes are kept comfortably small - especially compared to a FRAPS or DXTORY codec recording. The bitrate doesn't stray too far from a 100,000kbps maximum (about 12 MB per second of video data) despite how much action is going on in the game at the time. At that bitrate, a half hour of straight recording would take up only about 22GB. Not too bad, especially if you are creating long recordings or can't afford that 4TB drive upgrade just yet. A Blu-Ray disc title typically uses a bitrate of 25,000-50,000kbps, so a GPU-based/accelerated recording is still allowing for more than double that bitrate to try to represent what is happening on the screen in viewable quality.



So then, what is the quality like?



Normally, if you ask anyone about quality who has used GPU-acceleration together with words like "video editing" and "compression", they will tell you: "It encoded faster, but the output looked craptacular..". I myself have tried off and on in the past to compress videos for myself and others with acceleration and every time I tried CUDA or AMD's APP.ACCEL for the final AVC output I was disappointed at the blotchy, blurred, 'macroblock-y' mess that comes out, unless I allow for a much larger bitrate than intended (and receive a correspondingly larger file size). Somewhat surprisingly then, it was nice to find that I did not need to confine myself to "100% Quality" and always expect huge filesizes with GPU-based game recording to get decent viewable quality, suitable for sharing.

A side-by-side comparison of four CUDA quality settings (100%, 70%, 50%, and 20%), these are frames extracted from the CUDA-produced output file (Batman: Arkham City @ 1080p). Click to see Full Size






As can be seen in the screenshot comparison above, decent quality can be maintained at the 100% Quality setting, despite the speed of the encoding being done with H.264/AVC. I was pleasantly surprised, to be honest. Of course, Videophiles will notice slight Posterization and light MPEG-compression artifacts (such as Macroblocking) occuring even at 100% Quality if looked closely for; but for the majority of people, a quality setting of 100% (even down to 80%) should be found quite acceptable. I personally found that at 70%, the compression artifacts became more noticeable, especially the 'trails' that occur from the lossy Vector Quantization (the codec keeping track of where things are moving around between frames), which is why I chose 70% as the 'next notch down' on these tests. At a Quality setting of 60% and any setting below that, these 'trails' left behind are very apparent and in my personal opinion I do not recommend going below 60% for GPU-based game recording at this time, as the quality loss and compression artifacts become too obvious and may remain apparent even in a final render after editing.

An example of an NVIDIA CUDA encoded game recording, this is a frame extracted from the CUDA-produced output file (Diablo III @ 1080p). Click to see Full Size
The screenshot above is a frame taken from a CUDA-produced Diablo III game recording. Even during a busy moment, with many things happening quickly on the screen, clarity seems to be maintained at a decent level, even the somewhat-hard-to-compress 'Red Text On A Dark Background' - and this video clip was recorded at the 80% Quality setting. Although some macroblocking is beginning to occur in the darker/flatter area of the upper left (as the codec attempts to keep detail in the high-motion areas by compressing the more static areas of the screen to a higher degree), the darker/flatter toolbar and stone floor overall do not seem to be suffering excessively.  [As always however, my personal opinions on quality are mere suggestions based on my own tests and I encourage you to do a bit of your own testing, to find out what settings you would like to settle on and use for your projects]

Since the desktop/GUI can also be recorded with Bandicam, I decided to try record a web browser game with the GPU as well, for the people out there who like to record these games. I recorded two free online games, Lord of Ultima (a city/area building game) and Lottso Express (a bingo-style game), both of which are 2D (flat, board-like), which I thought would be a good example of more static detail (low-motion) compression.
An example of an NVIDIA CUDA encoded game recording, this is a frame extracted from the CUDA-produced output file (Lord of Ultima, a web browser game @ 1080p). Click to see Full Size

Lord of Ultima takes up the entire desktop in this large example of low-motion/static area handling by the accelerated codec. The game, captured above, is largely non-moving, especially the toolbars and left portion of the screen. Recorded at GPU-encoded 100% Quality, the toolbars are clear, text is very readable, and even the darker, static area of the Town Hall pop-up is clean and macroblock-free (very little compression artifacts throughout the entire screen), very nice.

A side-by-side comparison of four CUDA quality settings (100%, 70%, 50%, and 20%), these are frames extracted from the CUDA-produced output file (Lottso Express, a web browser game @ 384p). Click to see Full Size

Lottso Express runs in a small window, so I tested out recording at the exact resolution of this window (576x384) to see how gpu-acceleration handles lower resolutions. The differences inherent in the four Quality settings, in each of the four extracted frames from the CUDA recordings above, is shown. Although the top section/frame is quite clear (at 100% Quality), it quickly degrades as the quality setting goes down, but the recording still remains watchable. In my opinion, if one is recording just for themselves for fun, or just to share with a friend quickly, even a recording level as low as 60% quality may be acceptable when recording a low-motion 2D game with gpu-accelerated encoding; but I still recommend not going below the 70% Quality setting when recording a 3D (high-motion) game, to maintain enjoyability and clarity when using gpu-accelerated recording (such as CUDA, being used here).
 [My tests presented here are only done with CUDA, as I do not own any other videocards capable of gpu-based recording at this time. Output quality may vary when recording with AMD's App Acceleration or Intel's Quick Sync. As always, I suggest doing a few short tests yourself to see what codec and settings you personally would prefer]


What are the configuration settings that can be changed? 



There was not much available to configure, as far as the Quality settings and configuration, within the game recording application (Bandicam) at the time of this test. Certainly not as much as the x264 codec, with it's VFW interface, that has been developed over time by generous programmers/contributors. For CUDA, you can choose between Variable Bitrate and Constant Bitrate (allowing CBR if you wish to more precisely estimate the file size) if you wish, and you can utilize the CPU to assist with recording and compression as well, but that's about it. This may be a limitation in CUDA itself however, as I contacted Bandicam developers to see if there would be any deeper configuration options for the codec that CUDA is using (such as Deblocking settings and Partitions) and they got back to me stating that there were no other configuration options of that type available to include, at this time.

The interface for CUDA recording found within Bandicam's Video Format settings. 

As of the most recent version of Bandicam (announced at the Bandicam website just days ago), they have added the option to change the Keyframe Interval (the frequency of Information Frames within the Groups Of Pictures, which helps with things like 'trails' or corruption from compression) and the ability to change the FourCC identifier, both of which will make the recording more compatible with video editors such as the Sony Vegas and Adobe Premiere lines of products. I am proud to say that I did a lot of compatibility testing previous to this on my own and submitted my findings to the developers of Bandicam, just in case they were interested, which contributed directly towards this recent addition to their application. Information on my tests and findings, for those interested, can be found in these articles, here:
http://gametipsandmore.blogspot.com/2013/05/game-recording-with-mpeg-4-using.html
http://gametipsandmore.blogspot.com/2013/06/and-more-how-to-stop-trails-and.html
http://gametipsandmore.blogspot.com/2013/06/and-more-game-recording-for.html
http://gametipsandmore.blogspot.com/2013/06/and-more-how-to-record-with.html
http://www.bandicam.com/forum/viewtopic.php?f=14&t=1687&sid=06b9cdb4450af00f3d33fb4306963f6f




As always, remember that if sharing your video on streaming sites (which limit bitrate) and uploading sites (such as YouTube), your video will be recompressed [converted again] at settings much lower than your production video and detail will be lost (blurred/smoothed and show Macroblocking) due to  the nature of recompression. Therefore, if wanting to save time, there is no need to create and upload huge-bitrate, finely-detail video, as can be seen in this comparison of an uploaded YouTube video and the output that people will be seeing afterward:
A side-by-side comparison of frames extracted from the Original Uploaded Video (Left), YouTube's 1080p Compressed Video (Middle), and YouTube's 720p Compressed Video (Right), showing loss of data/detail due to recompression.
(Diablo III @ 1080p, high-motion scene, moderately-detailed game engine)
Click to see Full Size



How about performance?



I don't usually talk much about performance when I do QualityTests or TestRuns, except for maybe a short paragraph on my own experiences or a "Personal Short Version/Opinion" section at the end. The reason is, every system is different and everyone has their system configured in different ways. I could say that GPU-recording ran great for me, but then someone with a laptop running a non-dedicated videocard will tell me how wrong I am and that it doesn't run well at all. I could say it lagged me out all the time, but there would be many who could run the same thing with no problems. A quick look at any Technical Support area of any forum anywhere is evidence of the fact that even with the same hardware, there are a bunch of people who will have no problem at all and a bunch who will be having no joy. So, I mainly leave the issue aside but I sometimes mention how it seemed to run for me and [especially if anyone asks directly] I would be happy to provide more information to those who want to know more about it.

For me, performance while recording with the GPU was a mixed bag. For the most part it seemed to work fine, but there were a handful of games that just didn't like it as much. Some were choppy or laggy when I began recording. The theory is, that recording with the many cores of a GPU, processing and encoding a frame to a file should be more streamlined, but in practice it seems to take more resources from the videocard itself than I expected. Perhaps it is due to needed optimization of the games or drivers, or perhaps it is my 'older' videocards that are beginning to get on in years (I was running two GTX 560 Ti's in SLI mode during these tests). I did find that some games preferred non-SLI mode when recording with CUDA (such as Diablo III, if I remember correctly) and things were smoother when recording that way; but for the most part, accelerated recording ran with about the same responsiveness as [and in some games, slower than] my own optimized settings for the x264 iteration of AVC. Not long ago, I spent a bunch of time testing and tweaking x264 to record with the H.264/AVC codec, finding the best settings for speed while maintaining quality - and in light of the performance I was able to tweak out of x264 - GPU-based-recording didn't impress me much [if talking strictly about performance hit here]... perhaps I'll end up just using my settings with x264, for now.

For more information, tests and tweaks that I did over time with h.264/AVC and the x264 codec, feel free to check out these articles here at the blog (some are the same as the above asection):



An example of an NVIDIA CUDA encoded game recording, this is a frame extracted from the CUDA-produced output file (Allods @ 1080p). Click to see Full Size



Overall, recording with gpu-acceleration was pleasantly surprising. Quality (at 100%) was better than I expected from it (it does taper off quickly as you lower the quality setting, however). The file sizes were comfortably small (about 25GB for an hour of recording at 70% Quality, about 45GB for an hour of recording at 100% Quality). The performance was a mixed bag for me, but for most games it was indeed fast and could get the job done. So, in essence, it managed to deliver on all promises. Not bad at all.


Have fun recording with your GPU and See You In The Games!