• Motorburn
      Because cars are gadgets
    • Gearburn
      Incisive reviews for the gadget obsessed
    • Ventureburn
      Startup news for emerging markets
    • Jobsburn
      Digital industry jobs for the anti 9 to 5!

How Microsoft is changing version control for images

If you’re used to working with version control systems like CVS, Subversion or Git in order to keep track of changes to your code, then you will be well aware that changes to binary files such as images, just can’t be tracked in the same way.

Sure, there is no problem storing your binary data within any of these version control systems, but existing strategies either simply store the whole binary file in a single chunk, or store binary deltas. Both approaches consume significant amounts of disk space, and obscure the actual changes that have been performed within the file, defeating the real advantage of using any revision control system.

That’s why I was really excited to see the Microsoft Research group hard at work on the problem. Actually, probably the most refreshing thing about their research is that they are using the open-source graphics editor, GIMP, as their tool of choice in order to perform their research.

The Microsoft team set about tracking changes made to an image within a DAG (directed acyclic graph). This allowed them to track the individual editing operations, as well as the spatial and temporal relationships between each operation. These graphs could then be converted to standard RevG (revision graph) format.

This provides an intuitive interface to perform all of the common revision control operations including things like ‘review’, ‘replay’, ‘diff’, ‘branch’ and ‘merge’. It also provides a neat way to track creative processes within digital artwork.

The general approach that the team took involved developing a plugin for GIMP that could keep track of operations on-the-fly and built the DAG as different actions were performed. This, in itself, is not so exciting. After all, nearly every image editing application these days records your session history, making it possible to undo and redo actions.

Exporting this information as a graph that can be integrated into a functioning revision control application so that it is possible to open a version of the image at any point during its development, however, is definitely new. What is significant here is that the DAG only contains a faithful history of the operations performed by the user, and not any of the binary data itself.

While the DAG file itself can grow quite large and complex, so that it may not make sense to anybody reviewing the version history of a particular image, the team have worked out a way to represent the information within a revision graph which can be exposed to the user with a thumbnail of the image during each phase of its history.

The revision graph is capable of presenting non-linear information such as revision branching in a coherent and unified display. This means that by using the revision graph, you are able to perform all of the major functions that are available to you through any normal revision control system.

The RevG representation of the image data has been built into a very user friendly and intuitive interface that allows an end-user to quickly navigate through the entire revision history of an image, with the option of exploring different levels of detail in terms of the different operations performed at any point within the history. This UI has been built tightly integrated into GIMP so that when you click on any revision node within the graph, it highlights the areas of the image that were affected by that revision.

In order to display differences between revisions, you can either rely on this mechanism itself, or you can take advantage of a separate diff tool that actually play through both revisions in order to see the different changes that were made in each image. This will certainly help in collaborative environments where it is possible that you may need to perform merges and conflict resolution.

In fact the team have also developed a ‘merge UI’ that allows you to see each of the images that you intend to merge, and a preview of the resulting merged image. This really opens up the possibility of proper collaborative image editing, so that two artists can work on different portions of the same image at the same time and then simply merge their changes.

Unfortunately, the work that has been done so far has been so deeply integrated with GIMP that it does not provide a universal mechanism that can be used by any arbitrary image editing software. Nonetheless, the groundwork has been done, and certainly if the major software vendors can get it together to agree on a standard based on this research, the way is paved to finally bring realistic revision control to image editing software and this will transform the way that designers work within any commercial studio.

If you want to read the actual research paper, you can pick it up at Microsoft Research. That reminds me, the next time I hear any geeks openly bashing Microsoft, this is the paper I will point them to.

Image: zookydragon

Author | Rowan Puttergill: Columnist

Rowan Puttergill: Columnist
Rowan Puttergill is a technology evangelist and software engineer with a long career working in enterprise environments. He brings with him the experience of being the Technical Editor at SA Computer magazine, and a career history as a technical author. He is a huge advocate of open-source technologies, and... More
  • *sigh* fandroids.

  • Hi Kyle,

    I think perhaps your love for Linux is sullying your view of Windows Phone? Give it a chance mate, let it shine in the palm of your hand.

  • It’s more of a “like to be able to do things”. If after downloading Zune (really? Who uses Zune any more) and installing I find I can only transfer 3 types of files, that’s not okay. If I bought this phone I’d trade it in. I’d rather get a R200 phone and a USB stick.

  • Anonymous

    I fully agree with you Kyle…the wife’s Samsung Omnia with Windows Phone 7 has pretty much the same specs as this and I despise it with all my heart. good phone, great hardware, great specs…but the proprietary-ness is shocking. Getting a file on/off the phone requires a PhD in obscure Microsoft DRIVEL!! I wish I could just plug it in to any PC, with any OS, and copy files like I would to any other USB device. I mean this is such a necessary feature, one would’ve imagined it to be standard. Then there’s the app store which REQUIRES that you LIE and tell it that you live in the UK or USA because apparently our ZAR is not good enough for these price-gouging technological dimwits. Everything about this OS is laborious, proprietary, closed, obscure and annoying…ok…the interface is pretty slick…and this review…was ridiculously informative. Thanks for that.

  • Hendri Lategan

    iPhones RULE! 

  • Have I once mentioned Android? All I’m saying is why make things so difficult. “You can only use this software, and you can only do these things. The end.”

    If I am going to pay so much for a phone, no matter how slick the interface is, I would like to have the phone be mine and not regarded as a rental. Being able to mount the phone through USB is standard practice, and to ban that is arrogance. 

    Nokia/Windows hoard control at the expense of the user experience. It’s a slick phone, but keeping it so firmly in their grips will make me, and many others, never consider getting this phone (until there is a crack).

  • I agree with Kyle. I’ve had nothing but the flagship Nokia products since cell phone networks were launched in SA, and now, for the first time, I’m seriously contemplating dropping Nokia as my preferred brand of cell phone. Not only was the quality of product on the N8 shocking (they eventually seem to have gotten the software stability sorted out…mostly). So far, I’m not convinced that the Lumia is a good choice after my N8. 

    By the way, not everyone uses all that memory to listen to music and play videos only. Many of us actually use it to store meaningful info and other content that doesn’t necessarily fall within Nokia’s idea of what the storage should be used for. If I’m going to pay so much for a phone, I want to be able to do what I please with it. Nokia is definitely not impressing me any longer.

More in Web development

Online behaviour tracking and the erosion of your privacy

Read More »