'Decode Canon MakerNote tag based on offset within tag.
See http://www.burren.cx/david/canon.html by David Burren'

def _canon_decode_tag(self, value, mn_tags):

    for i in range(1, len(value)):
        tag = mn_tags.get(i, ('Unknown',))
        name = tag[0]
        if (len(tag) > 1):
            val = tag[1].get(value[i], 'Unknown')
        else:
            val = value[i]
        try:
            logger.debug('    %s    %s    %s', i, name, hex(value[i]))
        except TypeError:
            logger.debug('    %s    %s    %s', i, name, value[i])
        self.tags[('MakerNote    ' + name)] = IfdTag(str(val), None, 0, None, None, None)
