Exemple #1
0
 def encode_line(self, line):
     pixels = [self.yuv[col, line] for col in xrange(self.WIDTH)]
     channel = (line % 2) + 1
     y_pixel_time = self.Y_SCAN / self.WIDTH
     uv_pixel_time = self.C_SCAN / self.WIDTH
     return chain([(FREQ_BLACK, self.SYNC_PORCH)],
                  ((byte_to_freq(p[0]), y_pixel_time) for p in pixels),
                  [(self.INTER_CH_FREQS[channel], self.INTER_CH_GAP),
                   (FREQ_VIS_START, self.PORCH)],
                  ((byte_to_freq(p[channel]), uv_pixel_time)
                   for p in pixels))
Exemple #2
0
 def encode_line(self, line):
     pixels = [self.yuv[col, line] for col in range(self.WIDTH)]
     channel = 2 - (line % 2)
     y_pixel_time = self.Y_SCAN / self.WIDTH
     uv_pixel_time = self.C_SCAN / self.WIDTH
     return chain(
             [(FREQ_BLACK, self.SYNC_PORCH)],
             ((byte_to_freq(p[0]), y_pixel_time) for p in pixels),
             [(self.INTER_CH_FREQS[channel], self.INTER_CH_GAP),
                 (FREQ_VIS_START, self.PORCH)],
             ((byte_to_freq(p[channel]), uv_pixel_time) for p in pixels))
Exemple #3
0
 def gen_image_tuples(self):
     yuv = self.image.convert('YCbCr').load()
     for line in range(0, self.HEIGHT, 2):
         yield from self.horizontal_sync()
         yield FREQ_BLACK, self.PORCH
         pixels0 = [yuv[col, line] for col in range(self.WIDTH)]
         pixels1 = [yuv[col, line + 1] for col in range(self.WIDTH)]
         for p in pixels0:
             yield byte_to_freq(p[0]), self.PIXEL
         for p0, p1 in zip(pixels0, pixels1):
             yield byte_to_freq((p0[2] + p1[2]) / 2), self.PIXEL
         for p0, p1 in zip(pixels0, pixels1):
             yield byte_to_freq((p0[1] + p1[1]) / 2), self.PIXEL
         for p in pixels1:
             yield byte_to_freq(p[0]), self.PIXEL
Exemple #4
0
 def encode_line(self, line):
     msec_pixel = self.SCAN / self.WIDTH
     image = self.pixels
     for col in range(self.WIDTH):
         pixel = image[col, line]
         freq_pixel = byte_to_freq(pixel[0])
         yield freq_pixel, msec_pixel
Exemple #5
0
 def gen_image_tuples(self):
     yuv = self.image.convert('YCbCr').load()
     for line in range(0, self.HEIGHT, 2):
         for item in self.horizontal_sync():
             yield item
         yield FREQ_BLACK, self.PORCH
         pixels0 = [yuv[col, line] for col in range(self.WIDTH)]
         pixels1 = [yuv[col, line + 1] for col in range(self.WIDTH)]
         for p in pixels0:
             yield byte_to_freq(p[0]), self.PIXEL
         for p0, p1 in zip(pixels0, pixels1):
             yield byte_to_freq((p0[2] + p1[2]) / 2), self.PIXEL
         for p0, p1 in zip(pixels0, pixels1):
             yield byte_to_freq((p0[1] + p1[1]) / 2), self.PIXEL
         for p in pixels1:
             yield byte_to_freq(p[0]), self.PIXEL
Exemple #6
0
 def encode_line(self, line):
     msec_pixel = self.SCAN / self.WIDTH
     image = self.pixels
     for col in range(self.WIDTH):
         pixel = image[col, line]
         freq_pixel = byte_to_freq(pixel[0])
         yield freq_pixel, msec_pixel
Exemple #7
0
 def encode_line(self, line):
     msec_pixel = self.SCAN / self.WIDTH
     image = self.pixels
     for color in self.COLOR_SEQ:
         yield from self.before_channel(color)
         for col in range(self.WIDTH):
             pixel = image[col, line]
             freq_pixel = byte_to_freq(pixel[color.value])
             yield freq_pixel, msec_pixel
         yield from self.after_channel(color)
Exemple #8
0
 def encode_line(self, line):
     msec_pixel = self.SCAN / self.WIDTH
     image = self.pixels
     for index in self.COLOR_SEQ:
         for item in self.before_channel(index):
             yield item
         for col in range(self.WIDTH):
             pixel = image[col, line]
             freq_pixel = byte_to_freq(pixel[index])
             yield freq_pixel, msec_pixel
         for item in self.after_channel(index):
             yield item
Exemple #9
0
 def encode_line(self, line):
     msec_pixel = self.SCAN / self.WIDTH
     image = self.pixels
     for index in self.COLOR_SEQ:
         for item in self.before_channel(index):
             yield item
         for col in xrange(self.WIDTH):
             pixel = image[col, line]
             freq_pixel = byte_to_freq(pixel[index])
             yield freq_pixel, msec_pixel
         for item in self.after_channel(index):
             yield item
Exemple #10
0
 def encode_line(self, line):
     pixels_odd = [self.yuv[col, line] for col in range(self.WIDTH)]
     pixels_even = [self.yuv[col, line + 1] for col in range(self.WIDTH)]
     #tuple(map(operator.add, a, b))
     rb_y = [((tuple(
         map(operator.add, self.yuv[col, line], self.yuv[col, line + 1]))))
             for col in range(self.WIDTH)]
     channel = line % 2  # odd = 1 even = 0
     y_pixel_time = self.Y_SCAN / self.WIDTH
     uv_pixel_time = self.C_SCAN / self.WIDTH
     if channel == 1:
         return chain([(FREQ_BLACK, self.PORCH)],
                      ((byte_to_freq(p[0]), y_pixel_time)
                       for p in pixels_odd),
                      ((byte_to_freq(p[2] / 2), uv_pixel_time)
                       for p in rb_y),
                      ((byte_to_freq(p[1] / 2), uv_pixel_time)
                       for p in rb_y), ((byte_to_freq(p[0]), y_pixel_time)
                                        for p in pixels_even))
     else:
         chain1 = ()
         return chain1