Ejemplo n.º 1
0
 def initialize(self):
     dct_obj = dct_2d_transformation(self.N)
     for i in range(self.samples):
         random_matrix = self.random_matrix_8_8()
         self.inputs.append(random_matrix)
         dct_result = dct_obj.dct_2d_transformation(random_matrix)
         self.outputs.append(dct_result)
Ejemplo n.º 2
0
def frontend_transform(blockr, blockg, blockb, N=8):
    """Software implementation of the frontend part"""
    ycbcr_blocks = [[[] for _ in range(N)] for _ in range(3)]
    dct_blocks, dct_blocks_linear, zig_zag_blocks = [[] for _ in range(3)]
    """Color space conversion"""
    for i in range(N):
        for j in range(N):
            red = blockr[i][j]
            green = blockg[i][j]
            blue = blockb[i][j]
            color_convert_obj = ColorSpace(red, green, blue)
            ycbcr = color_convert_obj.get_jfif_ycbcr()
            ycbcr = ycbcr.tolist()
            for k in range(3):
                ycbcr_blocks[k][i].append(ycbcr[k][0])

    for i in range(3):
        """dct-2d transformation"""
        dct_blocks.append(
            dct_2d_transformation(N).dct_2d_transformation(ycbcr_blocks[i]))
        """dct blocks to linear lists"""
        dct_blocks_linear.append(list(chain.from_iterable(dct_blocks[i])))
        """zig zag scan"""
        zig_zag_blocks.append(zig_zag_scan(N).zig_zag(dct_blocks_linear[i]))

    return zig_zag_blocks
Ejemplo n.º 3
0
def frontend_transform(blockr, blockg, blockb, N=8):
    """Software implementation of the frontend part"""
    ycbcr_blocks = [[[] for _ in range(N)] for _ in range(3)]
    dct_blocks, dct_blocks_linear, zig_zag_blocks = [[] for _ in range(3)]

    """Color space conversion"""
    for i in range(N):
        for j in range(N):
            red = blockr[i][j]
            green = blockg[i][j]
            blue = blockb[i][j]
            color_convert_obj = ColorSpace(red, green, blue)
            ycbcr = color_convert_obj.get_jfif_ycbcr()
            ycbcr = ycbcr.tolist()
            for k in range(3):
                ycbcr_blocks[k][i].append(ycbcr[k][0])

    for i in range(3):
        """dct-2d transformation"""
        dct_blocks.append(dct_2d_transformation(N).dct_2d_transformation(ycbcr_blocks[i]))
        """dct blocks to linear lists"""
        dct_blocks_linear.append(list(chain.from_iterable(dct_blocks[i])))
        """zig zag scan"""
        zig_zag_blocks.append(zig_zag_scan(N).zig_zag(dct_blocks_linear[i]))

    return zig_zag_blocks
Ejemplo n.º 4
0
 def initialize(self):
     """Initialize the inputs and outputs lists"""
     dct_obj = dct_2d_transformation(self.N)
     for i in range(self.samples):
         random_matrix = self.random_matrix_8_8()
         self.inputs.append(random_matrix)
         dct_result = dct_obj.dct_2d_transformation(random_matrix)
         self.outputs.append(dct_result)