Sub-pixel processing of image data representing a dataform, such as a 2D bar code, enables reading of dataforms including more data/smaller elements, without costly increases in sensor and memory capacity. Whole pixel processing is employed for pixel-per-element resolutions of two or better. Sub-pixel cell edge transition location in image data is enhanced by use of a dynamically implemented noise margin applied with bands of gray scale values (150, 152) designated within the enveloppe of applicable gray scale maximum (119) and minimum (120) values. Sub-pixel cell edge transition location employs selection of transition segments (121-124), subject to the noise margin, and determination of a dynamic threshold (158) for each relevant transition segment (122). The intersection of the threshold (158) and the transition segment ( 122) is then indicative of the location of the cell edge transition along a sampling line crossing the dataform. The process is repeated for successive cell edges along image data sampling lines crossing successive rows of dataform elements. Run length data representing cell edge transition locations is constructed and usable for dataform decoding.