Author Archives: Marco Fontani

How Do I Fix the Aspect Ratio of a Video and Avoid Objects Being Stretched?

Welcome to this week’s post of the “How do I do this?” series! Today we’re dealing with a rather sneaky and common issue in video forensics: correcting the aspect ratio of videos. It’s a problem hardly encountered in most digital videos nowadays, but in the domain of CCTV recordings, it’s instead very frequent. So we ask ourselves: are we watching pixels in the correct way, or were they stretched somehow? And if so, how can we fix this? Keep reading to find out more!

Continue reading

How Can I Correct a Stretched Video That Has Half of the Lines?

Dear Amped fellows, welcome to this week’s post of the “How do I do this?” series! Today we’ll show you how Amped Replay can deal with a not so common yet very annoying artifact: stretched videos due to field-based recording. If the last words mean nothing to you, don’t miss this opportunity to learn something new!

Continue reading

How Do I Play a Video Frame-by-Frame and Comment Relevant Stills?

Dear friends, welcome to the weekly appointment with the “How do I do this?” series! Browsing a video frame-by-frame is an essential yet invaluable feature for video forensics. And when you spot something interesting, you’ll want to save that position and possibly add a comment. We’ll see how all of this can be done with Amped Replay in a moment. Keep reading!

Continue reading

How Do I Adjust the Playback Speed of a Video?

Dear friends, welcome to this week’s “How do I do this?” post! Today we’ll show you how to adjust the speed (playback framerate) of your video, and how you can use this feature to export a slowed-down or accelerated version of the video. Keep reading!

Spoiler of the day: within Amped Replay, you can change the playback speed by moving the FPS slider. If you then use Export Processed Video as MP4, it will retain the set speed.

Continue reading

Authenticate Release 21117: Improved Video PRNU, Customizable JPEG Ghosts Plot, Better Batch Processing, and More!

A new release of Amped Authenticate is ready! We have worked hard to improve the performance of several filters and tools, and to make Authenticate more robust to corrupted files. It’s all explained below!

Improved Video PRNU

Video PRNU was part of the latest release, and it gathered lots of attention, as expected. If you’re familiar with PRNU analysis, then you probably know that one important step is extracting the PRNU noise from the reference and evidence frames, so as to be able to compare them. In this release, we’ve improved the noise extraction algorithm, with an impressive impact on performance!

As a benchmark, we’ve used the well-known VISION dataset (freely available here), and run several experiments using the 19 available devices that don’t use digital stabilization, exploring different CRP creation modes and different PRNU Identification configurations. In particular, for creating the CRP, we used three different videos (one flat still video, plus one indoor and one outdoor video, both with moving camera), two different amount of frames (400 and 900), and two possible frame selection modes (All and Group with a size of 25). So we had a total of 19 x 3 x 2 x 2 = 228 CRPs.

We then tested each CRP against 4 videos of the same device (to keep it realistic, we only tested against non-flat and non-still videos) and 4 videos from other devices picked at random. For each test, we used two possible amounts of frames (400 and 900) and two possible frame selection modes (All and Group with a size of 25). That gave us a grand total of ~7200 identification tests.

We repeated the same tests using the previous denoising algorithm and the new one, and then we compared the performance in terms of the discrimination power of the obtained PCE scores, which was measured using the Area Under the Curve (AUC). Basically an AUC value of 0.5 means “random guessing” and an AUC value of 1.0 means “perfect accuracy” (under the considered test settings, of course!). Here’s some performance comparison, separated based on different CRP and evidence creation modes.

Despite the previous algorithm already achieved good performance (AUC was above 0.9 for most devices), we can definitely say that the new denoising algorithm performs even better! We also checked if we needed to change the default PCE threshold proposed by the software, currently set at 60. In the plot below, you can see the distributions across the 19 devices of the true positive rate (green boxes) and false positive rate (red boxes) obtained for increasing threshold values. For each box, the black horizontal segment shows the median value, the solid-filled part covers the 25th to 75th percentiles, the thin line covers all samples that are not considered statistical outliers, and isolated circles mark every single outlier.

You can see that a threshold of 60 seems a safe choice for the considered tests, with most devices showing no false positive under any settings. If we set the threshold to 60, we can then summarize and compare the overall performance, as in the tables below.

Evidence Mode: AllEvidence Mode: Group (25)
CRP Mode: AllTP: 98.97% | FP: 0.0%TP: 94.28% | FP: 0.11%
CRP Mode: Group (25)TP: 92.30% | FP: 0.11%TP= 79.78% | FP: 0.44%
True positive (TP) and False Positive (FP) rates obtained using the NEW denoising algorithm on the considered dataset, using a PCE threshold of 60. Performance is separated for different CRP and evidence frame processing modes.

Evidence Mode: AllEvidence Mode: Group (25)
CRP Mode: AllTP: 73.03% | FP: 0.0%TP: 80.66% | FP: 0.15%
CRP Mode: Group (25)TP: 78.71% | FP: 0.97%TP= 66.53% | FP: 1.42%
True positive (TP) and False Positive (FP) rates obtained using the PREVIOUS denoising algorithm on the considered dataset, using a PCE threshold of 60. Performance is separated for different CRP and evidence frame processing modes.

However, when working on a case, we always recommend validating the threshold in your specific settings (e.g., gathering images from other devices of the same model and running some experiments).

Customizable JPEG Ghosts Plot

The JPEG Ghosts Plot is much appreciated because of its versatility (it can be used on images of any format) and because it can effectively reveal possible previous JPEG compressions in an intuitive way. If you’re not familiar with this filter, take a look at this dedicated blog post: you’ll love it! However, in a nutshell, the filter works by iteratively recompressing the image to JPEG at increasing qualities, computing the total difference between the evidence image and the recompressed version, and eventually plotting the total difference obtained through all iterations (that is, for each recompression quality).

Now, if you have a 40 megapixels image, recompressing it 100 times, like the JPEG Ghosts Plot has been doing until now, can take some time. Moreover, nowadays it’s hard to find a device or software that will compress an image to a quality factor less than 50. We thus decided to let you decide! You can now set the minimum of the quality range to be explored by the filter. The default value is 50, but of course, you’re free to customize the filter’s configuration and turn the value back to 1, which would give you exactly the same plot you were used to.

Of course, this modification is backward-compatible: if you load a project created with an older version of Authenticate, you’ll be warned that the JPEG Ghosts Plot filter is missing the new parameter, and it will be automatically added. To preserve identical results, when loading an older project the default value of the filter will be 1 and not 50. Similarly, if you’re updating Authenticate and you are using some customized startup settings, we won’t overwrite anything. You’ll just see that, in your customized filter list, the JPEG Ghosts Plot has now the additional parameter, set to 1 to preserve backward fidelity.

At any time, however, you can use one of the “Reset default” buttons to restore the factory settings, where the JPEG Ghosts Plot has a default value of 50 for the minimum quality, as shown below.

Better Batch Processing

This one comes from our loyal users! We’ve been notified that, when running a Batch File Format Analysis or Batch File Format Comparison, Authenticate could hang if a corrupted image file was encountered. We understand it would be very annoying, especially if you had left the software running at night time to process 10.000 images, and it stopped at image number 4.

We’ve thus improved the robustness to corrupted files: when a problematic file is found, the processing will continue, and the issue will be reported in the results table.

Showing the Hash of Decoded Pixels

For a long time, Amped Authenticate has been showing the image file’s MD5 and various SHA hash values in the File Format filter. However, with this update, we have a new entry:

The Decoded Pixels MD5 provides the MD5 hash computed on decoded pixels. What’s the difference compared to the “classical” MD5 of the file? Imagine someone has a picture in their computer and creates a modified version of it where only metadata is changed. For example, they may use Exiftool or Windows Explorer to change the Exif make and model, or the acquisition date. Let’s imagine also that they forget to erase the original file. While altering metadata would change the hash of the file, it would not change the hash of pixels.

So if you’re using Batch File Format Analysis on a folder, you may sort by the Decoded Pixels MD5 folder to reveal if there are images with exactly the same pixels and focus the attention.

Search Images From Same Camera Model (CameraForensics): More Info Available

It’s no secret that reference images are a great asset for image authentication. If you’re investigating the integrity of an image, indeed, nothing is more valuable than having other pictures captured by the same camera model and, possibly, running the same firmware, as discussed in this blog post. When there is no time (or budget) to buy the same device and capture pictures, you can still use Amped Authenticate tools for searching reference images on the web. And if you have a subscription to CameraForensics, the search is much faster and cleaner thanks to our integration!

In this update, we’ve added more information to the output table produced by this tool: you’ll be able to see the webpage where the image is posted (which is often different than the image’s URL, that is, where the image file is stored). Moreover, if the image is hosted on Flickr, you’ll be now able to see the Flickr User ID. This can turn very useful if you’re downloading images for PRNU validation. Indeed, it seems reasonable to assume that a Flickr user owns only one exemplar of a specific smartphone/camera model.

Updated JPEG Quantization Table Database

We’ve added to Amped Authenticate’s JPEG Quantization Tables database the QTs used by several recently released smartphones, such as Apple iPhone 12 and Samsung Galaxy S20 (plus their variants), and several Huawei models.

Fixed bugs

We’ve fixed some bugs. If you spot any issue when using Authenticate, please let us know via our support portal, so we can fix it!

  • Fixed a bug that caused the Histogram Equalization filter not to be applied as soon as the filter was selected;
  • Fixed a bug that caused, under some circumstances, some extra text characters to appear below pictures in the Report;
  • Fixed a bug that caused wrong nesting in the Report’s Table of Contents (did not affect the actual report content).

Don’t Delay – Update Today

If you have an active support plan you can update straight away by going into the menu Help>Check for Updates Online within Amped Authenticate. If you need to renew your SMS plan, please contact us or one of our authorized distributors. And remember that you can always manage your license and requests from the customer support portal.

How Can I Trim a Small Part of a Large Video Without Losing Quality?

Dear friends, here we are with a new post of the “How do I do this” series! Have you ever found yourself dealing with a 1-hour long video where the only thing of interest happens for 5 seconds? As long as the file is sitting on a local drive, that’s usually not an issue. But what if you need to send the file to a colleague? Is it possible to trim only the relevant part without lowering the quality? Keep reading to find out how Amped Replay lets you do this quickly!

Use the “square brackets” buttons in Amped Replay‘s player bar to set the start and end of the range. Then, go to Export and choose Export Original Video as AVI. Done!

Compactness is definitely not among the merits of digital video. Depending on framerate, resolution, and compression, a single minute of video can eat up hundreds of MBs. When everything is stored locally or accessible through a fast local area network, this could seem less than an issue. However, there are times when your video needs to travel or when it is appropriate to trim only the part of footage where the incident happens to avoid maintaining superfluous sensitive information.

Trimming a video is something any video editing software lets you do easily. However, in most cases, you’ll go through a recompression process: pixels will be decoded and re-encoded after the trim, thus leading to a quality loss. You may try and reduce the amount of compression, but then find that your clip is actually larger in file size than the original! Recompression (known as transcoding) is therefore something you definitely want to avoid – unless you think changing the encoding algorithm is useful for the sake of better compatibility, as we discussed two weeks ago.

When dealing with video for forensic purposes, preserving the best possible evidence is of paramount importance. Failing in doing so may invalidate your whole work, especially since lawyers are getting tech-savvy, and they’ll question everything you did.

Now, we know there are cases where carrying out enhancement and analysis on the originally recorded pixels is unfeasible; in such cases, you are allowed to pick up the pixels in some other way, trying to minimize the quality loss. But if all you need to do is trimming part of the video, then that’s not a good reason for losing pixel originality!

Luckily, Amped Replay has you covered! Let’s say we have this beefy 30 minutes video (54k frames), which is 1.5GBs large, and we need only from frame 11.400 to frame 12.300.

Using the mouse, we drag the player head close to frame 11.400, then we can navigate frame by frame using the dedicated buttons or hitting the J (previous frame) and L (next frame) shortcuts. Once we reached frame 11.400, we click the Start range button:

Then, we move to frame 12.300 and click the End range button.

As you can see, after this process, the player bar shows the selected range in light gray, while the excluded range is marked in dark gray. You can toggle the player bar to display only the narrowed range or the full video by clicking on the button between the Start range and End range. If you instead want to clear a start or end range assignment, just click again on the same start (or end) range button.

Once you’ve selected the part you want to extract, it’s time to move to the Export tab. If we care about preserving the original pixels, we’ll go for the Export Original Video as AVI button. If instead, we prefer transcoding the video to H.264 and put it in an MP4 container (which means: extremely wide compatibility), we’ll rather choose the Export Original Video as MP4.

What’s the difference? When you use Export Original Video as AVI, Replay will do what we call a “lossless trim”: it will extract the frames you wanted without re-encoding them. To do so, we need that the exported range starts with an intra-coded frame (keyframe). If your selection does not start from a keyframe, Replay will automatically include some extra frames at the beginning, going backward until a keyframe is found. Let’s now load the exported video and see what we have:

First of all, it’s just 13 MBs! Instead of the expected 900 frames, you see we have 1122 frames. This is expected for the reasons explained above: you can’t do a lossless trim starting from an arbitrary frame, it must be a keyframe, so Replay included some extra frames at the beginning. If you’re trimming to remove disturbing content, remember to check that the trimmed video is actually OK. This way of exporting is extremely fast since it only copies data without any pixel processing. The most important issue here is that the visual information within your range of selected frames has retained integrity. The pixels have not changed from the original video file to the trimmed clip.

Conversely, when you use Export Original Video as MP4, the video gets transcoded, which means you’ll get exactly the desired range, but you’ll necessarily end up with (slightly) different pixel values. As we can see below, the so-exported video has exactly 900 frames, and the size is also slightly decreased.

That’s all for today! We hope you’ve found this issue of the “Amped Replay Tutorials: How do I do this?” series interesting and useful! Stay tuned and don’t miss the next ones. You can also follow us on LinkedIn, YouTube, Twitter, and Facebook: we’ll post a link to every new tutorial so you won’t miss any!

How Can I View and Show the Date and Time of a CCTV Video File?

Dear friends, welcome! Today we’re dealing with a widespread and important issue: viewing the timestamps of a surveillance recording. Indeed, as much as “what” happened is important, “when” it happened is also crucial most of the time. Keep reading to find out how Amped Replay lets you see and present timestamps in two clicks!

Timestamps are automatically shown on the bottom left in Amped Replay. To render them over the video, go to Annotate, choose Text, and pick “Time” from the “Add Time and Name” list.

Surveillance videos are typically recorded by a Digital Video Recorder (DVR). A DVR is nothing but a computer dedicated to receiving video signals from connected cameras, converting them to digital, compressing and storing them. Like every computer, a DVR has an internal clock, and while recording videos, it writes down some date and time metadata (also known as “timestamp”), telling at which time each frame was captured.

As to how this “writing down” occurs, there’s enough to write a book about. Some DVRs will just literally “write over pixels” the date and time, which has the advantage that they will remain there regardless of how you export/acquire footage. But of course, you’re sacrificing the original pixel content there since they are replaced by the timestamp.

Most DVRs will, instead, write the timestamp separated from pixel data. Sometimes, they’ll be made available as a separate file, e.g., a .smi or .srt file. Alternatively, they will be saved inside the same file containing the video stream, according to some proprietary pattern. If you use the proprietary player, it will be able to decode and show the timestamps. However, if you want to import your video into a forensic video enhancement software, such as Amped Replay or Amped FIVE, these proprietary-encoded timestamps must be decoded.

Accessing date and time metadata

The good news is that Amped products assist you with decoding and displaying both kinds of timestamps! If you’re using Amped Replay, all you need to do is, as usual, drag the file into the software or open it from the Import tab (which we described recently). For example, let’s say you’re given this file here:

We drag the .dv4 file into Amped Replay, and in a moment we are shown this:

As you can see, the timestamp associated with each frame is made visible on the bottom left, and it will update when you play or skim through the video.

Showing date and time over frames

All of the above is great if you just need to know each frame’s timestamp, but you may also need to show the timestamp over the frame you need to export. Of course, Amped Replay is here to assist!

Let’s move to the Annotate tab and click on the Text tool.

You can now check the pretty featured option list that appears below. In the bottom part of it, there’s a promising Add Time and Name dropdown list:

Just open the list and choose Timestamp.

You’ll see that the timestamp gets printed on the screen automatically.

We can move it around, and we can definitely adjust the text settings to make it look better. My personal taste is yellow text on black background, and position it bottom left:

Once done, remember that you have to set the annotation to remain in all frames! Otherwise, by default, it is only applied to the current frame you’re working on. Just right-click on it and choose Set for all frames.

One final thing: you can add some custom text together with the actual timestamp. A prevalent choice would be to write “Timestamp:” followed by the timestamp. If that’s what you’d like, then you can save time by clicking on the Add Label to Macros checkbox before selecting the desired option from the dropdown list.

This way, you’ll get this when choosing Timestamp from the list:

However, you can double-click on the text and type in whatever you like. The timestamp placeholder will be clearly visible ($TIMESTAMP) and will turn to the actual timestamp value as soon as you finish editing (click out of the text box).

Just a final note: always keep in mind that timestamps, like all other metadata, should not be blindly trusted. What you’re showing is obviously what the DVR wrote. If the clock was wrong, you’d be showing the wrong time.

That’s all for today! We hope you’ve found this issue of the “Amped Replay Tutorials: How do I do this?” series interesting and useful! Stay tuned and don’t miss the next ones. You can also follow us on LinkedIn, YouTube, Twitter, and Facebook: we’ll post a link to every new tutorial so you won’t miss any!