Skip to content

Standardize the interface between the subblocks. #46

@cfelton

Description

@cfelton

The jpegenc is constructed of subblocks that perform various processing in the JPEG encoder. Currently the interfaces between the subblocks is inconsistent. The subblocks need to be modified to use standard interfaces. An early design decision was that a ready-valid flow was used to control the data flow between.

The blocks should be implemented around the following interfaces (located in jpegenc/interfaces.py:

class DataStream(object):
    def __init__(self):
        self.data = Signal(intbv(0)[data_width:0])
        self.ready = Signal(False)
        self.valid = Signal(False)
class RGBStream(DataStream):
    pass

class YCbCrStream(DataStream):
    pass

The following shows how and where the interfaces are used.

jpegenc

In addition each subblock should have an option MemoryMapped and ControlStatus interface. The control status object defines the config/control/status attributes available for the subblock and the memory-mapped interfaces allows dynamic access to the control-status attributes.

Future enhancement will allow the number of pixels / data words transferred between subblocks configurable.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions