From fef6a90d2b2f21d885b2ec2d348bfcdb7751c118 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Tue, 14 Jun 2016 05:25:33 +0300 Subject: [PATCH] vsp-lib: Use gen-image to generate frames at runtime Replace the build time reference frames generation system by runtime generation of the frames. This saves a lot of disk space and allows tests to easily use new reference frames. Signed-off-by: Laurent Pinchart --- README | 9 +- data/frames/.gitignore | 1 - data/frames/Makefile | 7 +- data/frames/frame-reference-1024x768.pnm.gz | Bin 0 -> 21247 bytes data/frames/frame-reference-1024x768.rgb.gz | Bin 21213 -> 0 bytes data/frames/frame-reference-1024x768.yuv.gz | Bin 12518 -> 0 bytes data/frames/frame-reference-640x480.rgb.gz | Bin 9581 -> 0 bytes data/frames/frame-reference-640x480.yuv.gz | Bin 7016 -> 0 bytes data/frames/frame-scaled-1024x768.rgb.gz | Bin 63035 -> 0 bytes data/frames/frame-scaled-1024x768.yuv.gz | Bin 51094 -> 0 bytes data/frames/frame-scaled-640x480.rgb.gz | Bin 16703 -> 0 bytes data/frames/frame-scaled-640x480.yuv.gz | Bin 13513 -> 0 bytes data/frames/gen-frames.py | 350 -------------------- scripts/vsp-lib.sh | 106 ++++-- scripts/vsp-runner.sh | 33 +- 15 files changed, 112 insertions(+), 394 deletions(-) delete mode 100644 data/frames/.gitignore create mode 100644 data/frames/frame-reference-1024x768.pnm.gz delete mode 100644 data/frames/frame-reference-1024x768.rgb.gz delete mode 100644 data/frames/frame-reference-1024x768.yuv.gz delete mode 100644 data/frames/frame-reference-640x480.rgb.gz delete mode 100644 data/frames/frame-reference-640x480.yuv.gz delete mode 100644 data/frames/frame-scaled-1024x768.rgb.gz delete mode 100644 data/frames/frame-scaled-1024x768.yuv.gz delete mode 100644 data/frames/frame-scaled-640x480.rgb.gz delete mode 100644 data/frames/frame-scaled-640x480.yuv.gz delete mode 100755 data/frames/gen-frames.py diff --git a/README b/README index f551b4d..fb6abb9 100644 --- a/README +++ b/README @@ -14,10 +14,10 @@ Building -------- The vsp-tests suite requires the following tools to be installed on the host -to generate the test script and test data. +to generate the test scripts and applications +* gcc * make -* python After installing the needed packages, you can build the test suite by running @@ -27,9 +27,8 @@ in the vsp-tests root directory. Then, to install the test suite, run make install INSTALL_DIR=/path/to/target/directory -This will copy the test scripts and data to the target directory to be copied -or exported to the host. As test data take more than 200MB of disk space usage -of nfsroot is recommended to run the tests. +This will copy the test scripts and applications to the target directory to be +copied or exported to the host. -------------------- diff --git a/data/frames/.gitignore b/data/frames/.gitignore deleted file mode 100644 index a8a0dce..0000000 --- a/data/frames/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.bin diff --git a/data/frames/Makefile b/data/frames/Makefile index 326e447..04ea2b2 100644 --- a/data/frames/Makefile +++ b/data/frames/Makefile @@ -1,9 +1,10 @@ all: - @./gen-frames.py clean: - @rm *.bin install: mkdir -p $(INSTALL_DIR)/frames/ - cp frame-reference-*.bin $(INSTALL_DIR)/frames/ + for frame in *.pnm.gz ; do + gzip -dk $(frame) + mv ${frame/.gz/} $(INSTALL_DIR)/frames/ + done diff --git a/data/frames/frame-reference-1024x768.pnm.gz b/data/frames/frame-reference-1024x768.pnm.gz new file mode 100644 index 0000000000000000000000000000000000000000..7c1a9752c7a85999f01e500c1a58af289df88c08 GIT binary patch literal 21247 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 literal 0 HcmV?d00001 diff --git a/data/frames/frame-reference-1024x768.rgb.gz b/data/frames/frame-reference-1024x768.rgb.gz deleted file mode 100644 index 480239caab755cbb31c3131480010ea4b8c7e28b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21213 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 I{bdvogb*E`omuPr zvCotLAi3{7@A;kcJLh)}P)@w?!XJw6>|FHR{_H(jX|HFe?N7^2`!F@__0XTc5q>CQ z>$c7Lxp|8$2BdiC-k#>cAN*v=l6PO!M8EW0L)6j8u`3__;@8ht-0TlHJowXqPyRvH zY*4Ka99W&w?ALn29Y)~z)f`ELZ0D|Y{>jI*&`*SiCCh-q4?0k zG4!DgN;o(Byw0R=@X zqRFp`UIr~n+8nG z-WGtMZui`8_Ci~s|E+1`H1u{s^<328O*ndH;J_S~A+4(c3ISrLq%JmfQ~IIsyN(&e z!pDwp(x8d$o`eEvkrSYQY?w1}CXu#gPd+)Vq?+jpvo!sA#QE-A`a$s}GjvEtW;wbs zh6vSi1S!8Wp|lusU+TeMakk8XSUwyq1|s=6S|i!}71mpxYPCVakg3#A^K`^Natwx= zwgDf*t{Wf~)q;R{x;TqJA(v+o@b_Y7RC|^GLP95fV>{8_pb^&Ep$+3LcKOZ$u`SC% zFw7L$aWAT}VIv6(?9(sXEf8YejZ=a;eGDl(z+@+L8qQt+m6t{$Q!r_D@$lvi@KInE zGnZA3O1;T>Ex-D1E%bG|4Fe|G{rL2( zFBE4zR|2h5Go%>ReHrZV0g-kAMAT?}ABrU4*VNr}*}(cC*;>BC`twJ4(y4fPhs^*)Xts^RB_p}J{!yXt_Z5#ht%R`)>dmyz0G30)#eI#SBzAA6J#U^H@u z1m{4j6`kz8sXt!c+#hPzF7AgV<{n}9Wu%yU8@ZPn{pvYG^ekU?Al)RVoqKzmh<9y^ zRW=N;z+}Y~W=(KdGO~smar8#hy}(BpfeWT0u

?t6_vC0#5CpU7c2-F9;uKKdDXB zrIHy99Rj`^rraz=Ud}DmWY7rR(#hGLq;JaZPQ>(N5qVbJi5qYu{k1N8T$Oq5t?9|6 zl-W62ZMi4U#T#NAnThRk2D>qypEF)LoS~7ci)FW_Y$J7L2o%R~T(KJ%bcwyQxiKCr zVY$K*1`cN>n_Vq7f?ySRF))D{Hcgd68y8|#zIZ3US>~Lst{F31 z2H$k(ympgGj(X`2@-IDD@u*t3Yc7g`YTCbkUm2-xdX(AVK|kSwTUsyhX6v9hh-^J! zqQHbp(U{=dgY4|YhhH6=B@y(?S_c>pY$BDl%8ijU6mLk%73COSw z5J?@q%ygxKIR#l}Hc^u0*MfOF*y-ab>t|~kIO;A1>%PTp_w8tZ1U)Zmtgyzu%4*P+ z+A8hPgNZ`rS-ClK20Las(}BSOkYz(L(~)7tDDT7$&bB)AGYJV-ZaH<(Qq4G8(vegl z5CLABLI`nh0V#XSf9FNER^KVoYi&=h_87&Wjl*$jxiH}DqgSZC=^GJc6;45 z3CWP`ZL`G}ti1`X9*X0#E_qKrY|3!Q$RNDzH;o=e0Y|3eXhX_oCECf z3PJdYc0VQ1p1RejtcHnk{YzaE9i@_LO+HXQmz<^qaA9P7`g?Sz$ZAnP_e~hq$GMY_ zuRT!GuA&-uH|E1Poz7iGMmkdQMcx??0l2jU4kbJ7!S&YV9qpR)pl2)y(Fks-Nh@@{ z-b9!LM!@`FR=>Hgy+gGZsts@g3&ybqL2a>TDfF2Fms)N8PYOayX<9`hyfC0I?zA?o zZH*?DFBVOlD2b+_VRP-9_4d=;Ts z*-BNxUGe?5v}w+`eV?!W7|9PmL;qXY6A?6ya-ya2Fb?T zB&m|^`(??V8jYTd#_8+YohLu0OhN*U)Y;45j~d+)EESaVmauto#$c_axMW+wz&d%W zC*~F0e$dJ9Q#!g%n(AtbBLyn;KyY0M5)*+HwoNWe{TONsdPm$#4()s3eBLZ7(-olk zpMSmCql!2k2Z6ZmyyJLI9sHIL46BIpn0XUT&}yH6PKO+xKfeMDzkNySk@xUYkhY_q zj6PDy=;`rTK!;BQ?ZlGWhQo&j1TFgQluE9U=qPfWY`h}nb`-UM9lc&rSam3kNP5`u zPX{tvh&JRkVMp%mbGr!S1b<}Q66PTa4&?$d=KMaBG-w$FMURDeQGUVZuu{0u9 zRCc+IQk-N+Ko#ARvh%N-D(DJEGgs2)B!$|pPz6tp|18t+TCpjS44_y(1+0rt++rs% ztG+!;(+#-5k@=FlUR9;Z6K(;+wV8q!xo;mZduodHCgeI(0gcRqJ_yJB%;z`gGz`cK zsNPpgKb-awK8nFtHi5^ciNvL!xiwv)bFu7@_IHNBc1G;0=k7fI$ismn0kCW@AKu8! z&8r#g9)cbYj$R*%e^pSKgt_QIhkOf`)_W&Q_XA;{r~Ft;Kp05@c&N+tpw}ho7PrMqX`CF zHMz_ziP5aF$(mUlYex7_0PBkPKJN4UZ(5PEXo6J|4mrU+HHMh9MvEP~KE*%~W)yud zpJ8SmnhF4qO{)`c9w!^zVIN*?bh^wNLI_GFuN+81DQZ9uk9gwQCZ+|cl8u4sZ6tKn z7wCyc-$di$s>VO&2+4zP%}kwwz91a~Wky8XH_++Wje+~HXZoJKbkJv0+>sj~ILp+x zgE1h?8H!7dyo)RC(I1U&(#IjZy1WaaYUX>W_U>jEYkqWh9}fA=16}(WC!kbF2PT(F z4}nG!^ynUiZ z&2728`^o=P>-2ZVr^D@k4T8TjF04_$)2IH<_}!SkV8*&N&EM+}dJ6~J-x>X#@oDnd zFH`>xld+$Selq&WxUgRKcg6(;!@^+wt)KcAIM4b&vRsJ2Gx|H@!dm;UeCj8opNvmK r9e-!^cgCk#>-rZsPouT}%6igIMn4&!B^ix)NQwBRgNqiuy6ArZ0{vMO diff --git a/data/frames/frame-reference-640x480.rgb.gz b/data/frames/frame-reference-640x480.rgb.gz deleted file mode 100644 index 7c5bd163833704bc3e8738adcbf586aeab234db8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9581 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 diff --git a/data/frames/frame-reference-640x480.yuv.gz b/data/frames/frame-reference-640x480.yuv.gz deleted file mode 100644 index 3f27be35ba39db43df8308e1596831084cffff51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7016 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 Yl;QuP4Dvs*&%J;Dqs_}cS-$MQ0maYrxBvhE diff --git a/data/frames/frame-scaled-1024x768.rgb.gz b/data/frames/frame-scaled-1024x768.rgb.gz deleted file mode 100644 index fba101df6263aee19705709212e55df1c820d969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63035 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 YU{D4O%HaQpGMJ#)bIi6fF|B0!Kh-VTEdT%j diff --git a/data/frames/frame-scaled-1024x768.yuv.gz b/data/frames/frame-scaled-1024x768.yuv.gz deleted file mode 100644 index d3c3aae762662d146828fce25162baec09c3e044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51094 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

ee|BV-VAoC(vYLPU$CR+CH<)^z$sPcHX( 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 diff --git a/data/frames/frame-scaled-640x480.rgb.gz b/data/frames/frame-scaled-640x480.rgb.gz deleted file mode 100644 index 08c1be85866589cfc02b02d2872cfe0bc128d5d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16703 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 JK|+M_e*nupIp+WX diff --git a/data/frames/frame-scaled-640x480.yuv.gz b/data/frames/frame-scaled-640x480.yuv.gz deleted file mode 100644 index 821919f6b128dfd2a49da440cf42ba65fe02ce8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13513 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 b|4O|7B_01ik`8m~DWNrv^MAd#@YnwVg(yW6 diff --git a/data/frames/gen-frames.py b/data/frames/gen-frames.py deleted file mode 100755 index 4742793..0000000 --- a/data/frames/gen-frames.py +++ /dev/null @@ -1,350 +0,0 @@ -#!/usr/bin/python - -import copy -import glob -import gzip -import itertools -import operator -import re -import struct -import sys - -class FormatRGB: - def __init__(self, name, mapping): - self.name = name - self.mapping = copy.copy(mapping) - self.depth = sum(v[1] for v in mapping.values()) - - if self.mapping.has_key('a'): - self.alpha_bits = self.mapping['a'][1] - elif self.mapping.has_key('x'): - self.alpha_bits = self.mapping['x'][1] - else: - self.alpha_bits = 0 - - def alpha(self, alpha): - if self.mapping.has_key('a'): - return (alpha >> (8 - self.mapping['a'][1])) << self.mapping['a'][0] - elif self.mapping.has_key('x'): - return (alpha >> (8 - self.mapping['x'][1])) << self.mapping['x'][0] - else: - return 0 - - def generate_8(self, width, height, rgb): - output = [] - for i in xrange(width * height): - r, g, b = rgb[i] - pixel = ((r >> (8 - self.mapping['r'][1])) << self.mapping['r'][0]) \ - | ((g >> (8 - self.mapping['g'][1])) << self.mapping['g'][0]) \ - | ((b >> (8 - self.mapping['b'][1])) << self.mapping['b'][0]) - output.append(struct.pack('B', pixel)) - return ''.join(output) - - def generate_16(self, width, height, rgb, alpha): - output = [] - for i in xrange(width * height): - r, g, b = rgb[i] - pixel = ((r >> (8 - self.mapping['r'][1])) << self.mapping['r'][0]) \ - | ((g >> (8 - self.mapping['g'][1])) << self.mapping['g'][0]) \ - | ((b >> (8 - self.mapping['b'][1])) << self.mapping['b'][0]) \ - | self.alpha(alpha) - output.append(struct.pack('> (8 - self.mapping['r'][1])) << self.mapping['r'][0]) \ - | ((g >> (8 - self.mapping['g'][1])) << self.mapping['g'][0]) \ - | ((b >> (8 - self.mapping['b'][1])) << self.mapping['b'][0]) - output.append(struct.pack('> (8 - self.mapping['r'][1])) << self.mapping['r'][0]) \ - | ((g >> (8 - self.mapping['g'][1])) << self.mapping['g'][0]) \ - | ((b >> (8 - self.mapping['b'][1])) << self.mapping['b'][0]) \ - | self.alpha(alpha) - output.append(struct.pack('> 2] += 1 - - def histogram(self, width, height, rgb): - rgb_min = [255, 255, 255] - rgb_max = [0, 0, 0] - rgb_sum = [0, 0, 0] - rgb_bins = [[0] * 64, [0] * 64, [0] * 64] - - for i in xrange(width * height): - pixel = rgb[i] - - rgb_min = map(min, pixel, rgb_min) - rgb_max = map(max, pixel, rgb_max) - rgb_sum = map(operator.add, pixel, rgb_sum) - - map(self.bin, rgb_bins, pixel) - - output = [] - for i in xrange(len(rgb_min)): - output.append(struct.pack('BBBB', rgb_min[i], 0, rgb_max[i], 0)) - output.append(struct.pack('<3I', *rgb_sum)) - for i in xrange(len(rgb_bins)): - output.append(struct.pack('<64I', *rgb_bins[i])) - - return ''.join(output) - - def compose(self, ninputs, width, height, rgb): - output = [(0, 0, 0)] * (width * height) - offset = 50 - - for input in xrange(ninputs): - length = width - offset - for y in xrange(height - offset): - dst_offset = (y + offset) * width + offset - src_offset = y * width - output[dst_offset:dst_offset+length] = rgb[src_offset:src_offset+length] - offset += 50 - - return ''.join(chr(d) for d in list(itertools.chain.from_iterable(output))) - - -class FormatYUVPacked: - def __init__(self, name, mapping): - self.name = name - self.mapping = copy.copy(mapping) - - def convert(self, width, height, yuv): - output = [] - for i in xrange(width * height / 2): - pixel = yuv[i*4:(i+1)*4] - pixel = (pixel[self.mapping[0]], pixel[self.mapping[1]], - pixel[self.mapping[2]], pixel[self.mapping[3]]) - output.extend(pixel) - return ''.join(output) - - def bin(self, bins, val): - bins[val >> 2] += 1 - - def histogram(self, width, height, yuv): - vyu_min = [255, 255, 255] - vyu_max = [0, 0, 0] - vyu_sum = [0, 0, 0] - vyu_bins = [[0] * 64, [0] * 64, [0] * 64] - - for y in xrange(height): - for x in xrange(width / 2): - offset = y * width * 2 + x * 4 - u0 = ord(yuv[offset]) - y0 = ord(yuv[offset+1]) - v0 = ord(yuv[offset+2]) - y1 = ord(yuv[offset+3]) - - if x != width / 2 - 1: - u2 = ord(yuv[offset+4]) - v2 = ord(yuv[offset+6]) - u1 = (u0 + u2) / 2 - v1 = (v0 + v2) / 2 - else: - u1 = u0 - v1 = v1 - - for vyu in ((v0, y0, u0), (v1, y1, u1)): - vyu_min = map(min, vyu, vyu_min) - vyu_max = map(max, vyu, vyu_max) - vyu_sum = map(operator.add, vyu, vyu_sum) - - map(self.bin, vyu_bins, vyu) - - output = [] - for i in xrange(len(vyu_min)): - output.append(struct.pack('BBBB', vyu_min[i], 0, vyu_max[i], 0)) - output.append(struct.pack('<3I', *vyu_sum)) - for i in xrange(len(vyu_bins)): - output.append(struct.pack('<64I', *vyu_bins[i])) - - return ''.join(output) - - def compose(self, ninputs, width, height, yuv): - output = ['\0'] * (width * height * 2) - offset = 50 - - for input in xrange(ninputs): - length = (width - offset) * 2 - for y in xrange(height - offset): - dst_offset = ((y + offset) * width + offset) * 2 - src_offset = y * width * 2 - output[dst_offset:dst_offset+length] = yuv[src_offset:src_offset+length] - offset += 50 - - return ''.join(output) - - -class FormatNV: - def __init__(self, name, hsub, vsub, mapping): - self.name = name - self.hsub = hsub - self.vsub = vsub - self.mapping = copy.copy(mapping) - - def convert(self, width, height, yuv): - output = [] - - for i in xrange(width * height): - output.append(yuv[2*i+1]) - - for y in xrange(height / self.vsub): - for x in xrange(width / 2): - offset = (y * self.vsub * width * 2) + x * 4 - uv = (yuv[offset], yuv[offset+2]) - uv = (uv[self.mapping[0]], uv[self.mapping[1]]) - output.extend(uv) - - return ''.join(output) - - -class FormatYUVPlanar: - def __init__(self, name, hsub, vsub, mapping): - self.name = name - self.hsub = hsub - self.vsub = vsub - self.mapping = copy.copy(mapping) - - def convert(self, width, height, yuv): - output = [] - - for i in xrange(width * height): - output.append(yuv[2*i+1]) - - for y in xrange(height / self.vsub): - for x in xrange(width / 2): - offset = (y * self.vsub * width * 2) + x * 4 - u = yuv[offset + self.mapping[0] * 2] - output.append(u) - - for y in xrange(height / self.vsub): - for x in xrange(width / 2): - offset = (y * self.vsub * width * 2) + x * 4 - v = yuv[offset + self.mapping[1] * 2] - output.append(v) - - return ''.join(output) - - -formats_rgb = { - 'rgb332': FormatRGB('rgb332', {'r': (5, 3), 'g': (2, 3), 'b': (0, 2)}), - 'rgb565': FormatRGB('rgb565', {'r': (11, 5), 'g': (5, 6), 'b': (0, 5)}), - 'bgr24': FormatRGB('bgr24', {'r': (16, 8), 'g': (8, 8), 'b': (0, 8)}), - 'rgb24': FormatRGB('rgb24', {'r': (0, 8), 'g': (8, 8), 'b': (16, 8)}), -} - -formats_argb = { - 'argb555': FormatRGB('argb555', {'a': (15, 1), 'r': (10, 5), 'g': (5, 5), 'b': (0, 5)}), - 'xrgb555': FormatRGB('xrgb555', {'x': (15, 1), 'r': (10, 5), 'g': (5, 5), 'b': (0, 5)}), - 'abgr32': FormatRGB('abgr32', {'a': (24, 8), 'r': (16, 8), 'g': (8, 8), 'b': (0, 8)}), - 'argb32': FormatRGB('argb32', {'a': (0, 8), 'r': (8, 8), 'g': (16, 8), 'b': (24, 8)}), - 'xbgr32': FormatRGB('xbgr32', {'x': (24, 8), 'r': (16, 8), 'g': (8, 8), 'b': (0, 8)}), - 'xrgb32': FormatRGB('xrgb32', {'x': (0, 8), 'r': (8, 8), 'g': (16, 8), 'b': (24, 8)}), -} - -formats_yuv = { - 'uyvy': FormatYUVPacked('uyvy', (0, 1, 2, 3)), - 'vyuy': FormatYUVPacked('vyuy', (2, 1, 0, 3)), - 'yuyv': FormatYUVPacked('yuyv', (1, 0, 3, 2)), - 'yvyu': FormatYUVPacked('yvyu', (1, 2, 3, 0)), - 'nv12m': FormatNV('nv12m', 2, 2, (0, 1)), - 'nv21m': FormatNV('nv21m', 2, 2, (1, 0)), - 'nv16m': FormatNV('nv16m', 2, 1, (0, 1)), - 'nv61m': FormatNV('nv61m', 2, 1, (1, 0)), - 'yuv420m': FormatYUVPlanar('yuv420m', 2, 2, (0, 1)), -} - -resolutions = ((640, 480), (1024, 768)) - -def main(argv): - re_fname = re.compile('frame-([a-z]*)-([0-9]*)x([0-9]*).([a-z]*).gz') - - for fname in glob.glob('*.gz'): - match = re_fname.match(fname) - if not match: - continue - - typ = match.group(1) - res = (int(match.group(2)), int(match.group(3))) - fmt = match.group(4) - - if fmt == 'rgb': - rgb = gzip.open(fname, 'rb').read() - rgb = [struct.unpack('BBB', rgb[i*3:(i+1)*3]) for i in xrange(len(rgb) / 3)] - - for format in formats_rgb.values(): - bin_fname = 'frame-%s-%s-%ux%u.bin' % (typ, format.name, res[0], res[1]) - print 'Generating %s' % bin_fname - bin = format.convert(res[0], res[1], rgb, 0) - file(bin_fname, 'wb').write(bin) - - for format in formats_argb.values(): - for alpha in (0, 100, 200, 255): - if format.alpha_bits == 1 and alpha not in (0, 255): - continue - bin_fname = 'frame-%s-%s-%ux%u-alpha%u.bin' % (typ, format.name, res[0], res[1], alpha) - print 'Generating %s' % bin_fname - bin = format.convert(res[0], res[1], rgb, alpha) - file(bin_fname, 'wb').write(bin) - - format = formats_rgb['rgb24'] - - bin_fname = 'histo-%s-%s-%ux%u.bin' % (typ, format.name, res[0], res[1]) - print 'Generating %s' % bin_fname - bin = format.histogram(res[0], res[1], rgb) - file(bin_fname, 'wb').write(bin) - - if typ == 'reference' and res[0] == 1024 and res[1] == 768: - for ninputs in xrange(1, 6): - bin_fname = 'frame-composed-%u-%s-%ux%u.bin' % (ninputs, format.name, res[0], res[1]) - print 'Generating %s' % bin_fname - bin = format.compose(ninputs, res[0], res[1], rgb) - file(bin_fname, 'wb').write(bin) - - elif fmt == 'yuv': - yuv = gzip.open(fname, 'rb').read() - - for format in formats_yuv.values(): - bin_fname = 'frame-%s-%s-%ux%u.bin' % (typ, format.name, res[0], res[1]) - print 'Generating %s' % bin_fname - bin = format.convert(res[0], res[1], yuv) - file(bin_fname, 'wb').write(bin) - - format = formats_yuv['uyvy'] - bin_fname = 'histo-%s-%s-%ux%u.bin' % (typ, format.name, res[0], res[1]) - print 'Generating %s' % bin_fname - bin = format.histogram(res[0], res[1], yuv) - file(bin_fname, 'wb').write(bin) - - if typ == 'reference' and res[0] == 1024 and res[1] == 768: - for ninputs in xrange(1, 6): - bin_fname = 'frame-composed-%u-%s-%ux%u.bin' % (ninputs, format.name, res[0], res[1]) - print 'Generating %s' % bin_fname - bin = format.compose(ninputs, res[0], res[1], yuv) - file(bin_fname, 'wb').write(bin) - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) diff --git a/scripts/vsp-lib.sh b/scripts/vsp-lib.sh index 6a59505..2c9e729 100755 --- a/scripts/vsp-lib.sh +++ b/scripts/vsp-lib.sh @@ -1,5 +1,6 @@ #!/bin/sh +genimage='./gen-image' mediactl='media-ctl' yavta='yavta' @@ -38,6 +39,65 @@ vsp1_entity_get_size() { sed 's/.*\/\([0-9x]*\).*/\1/' } +# ----------------------------------------------------------------------------- +# Referance frame generation +# + +reference_frame() { + local file=$1 + local reftype=$2 + local format=$3 + local size=$4 + + local alpha= + local options= + + case $reftype in + reference | scaled) + ;; + composed-*) + options="$options -c ${reftype/composed-/}" + ;; + esac + + case $format in + ARGB555) + alpha=255 + ;; + ABGR32 | ARGB32) + alpha=200 + ;; + XRGB555) + # XRGB555 has the X bit hardcoded to 0 + alpha=0 + ;; + XBGR32 | XRGB32) + # The X bits are configurable with a default value of 255 + alpha=255 + ;; + *) + alpha=255 + ;; + esac + + $(format_v4l2_is_yuv $format) && options="$options -y" + + $genimage -f $format -s $size -a $alpha $options -o $file \ + frames/frame-reference-1024x768.pnm +} + +reference_histogram() { + local file=$1 + local format=$2 + local size=$3 + + local yuv= + $(format_v4l2_is_yuv $format) && yuv="-y" + + $genimage -f $format $yuv -s $size -H $file \ + frames/frame-reference-1024x768.pnm +} + # ------------------------------------------------------------------------------ # Image and histogram comparison # @@ -108,35 +168,21 @@ compare_frames() { fmt=$(echo $format | tr '[:upper:]' '[:lower:]') size=$(vsp1_entity_get_size wpf.$wpf 1) - case $format in - ARGB555) - reference="frame-$reftype-$fmt-$size-alpha255.bin" - ;; - ABGR32 | ARGB32) - reference="frame-$reftype-$fmt-$size-alpha200.bin" - ;; - XRGB555) - # XRGB555 has the X bit hardcoded to 0 - reference="frame-$reftype-$fmt-$size-alpha0.bin" - ;; - XBGR32 | XRGB32) - # The X bits are configurable with a default value of 255 - reference="frame-$reftype-$fmt-$size-alpha255.bin" - ;; - *) - reference="frame-$reftype-$fmt-$size.bin" - ;; - esac + reference_frame ref-frame.bin $reftype $format $size result="pass" for frame in frame-*.bin ; do - (compare_frame_$method $format $size $frame frames/$reference) || { - mv $frame ${0/.sh/}-${frame/.bin/-$reftype-$fmt-$size.bin} ; + (compare_frame_$method $format $size $frame ref-frame.bin) || { + mv $frame ${0/.sh/}-${frame/.bin/-$fmt-$size.bin} ; result="fail" } done - rm -f frames/$reference + if [ $result = "fail" ] ; then + mv ref-frame.bin ${0/.sh/}-ref-frame-$fmt-$size.bin + else + rm -f ref-frame.bin + fi echo $result } @@ -163,16 +209,23 @@ compare_histograms() { fmt=$(echo $format | tr '[:upper:]' '[:lower:]') size=$(vsp1_entity_get_size wpf.$wpf 1) - reference="histo-reference-$fmt-$size.bin" + + reference_histogram ref-histogram.bin $format $size result="pass" for histo in histo-*.bin ; do - (compare_histogram $histo frames/$reference) || { + (compare_histogram $histo ref-histogram.bin) || { mv $histo ${0/.sh/}-${histo/.bin/-$fmt.bin} ; result="fail" } done + if [ $result = "fail" ] ; then + mv ref-histogram.bin ${0/.sh/}-ref-histogram-$fmt.bin + else + rm -f ref-histogram.bin + fi + echo $result } @@ -271,6 +324,11 @@ format_v4l2_to_mbus() { esac } +format_v4l2_is_yuv() { + local format=$(format_v4l2_to_mbus $1) + [ $format = 'AYUV32' ] +} + format_rpf() { format=$(format_v4l2_to_mbus $1) size=$2 diff --git a/scripts/vsp-runner.sh b/scripts/vsp-runner.sh index e92eda1..6aa72a2 100755 --- a/scripts/vsp-runner.sh +++ b/scripts/vsp-runner.sh @@ -4,33 +4,41 @@ set -e source vsp-lib.sh +genimage='./gen-image' mediactl='media-ctl' yavta='yavta' -# ------------------------------------------------------------------------------ -# Format retrieval +# ----------------------------------------------------------------------------- +# Input frame generation # -frame_reference() { - format=$1 - size=$2 +generate_input_frame() { + local file=$1 + local format=$2 + local size=$3 - lcfmt=`echo $infmt | tr '[:upper:]' '[:lower:]'` + local alpha= + local options= case $format in ARGB555) - echo "frames/frame-reference-$lcfmt-$size-alpha255.bin" + alpha=255 ;; ABGR32 | ARGB32) - echo "frames/frame-reference-$lcfmt-$size-alpha200.bin" + alpha=200 ;; XRGB555 | XBGR32 | XRGB32) - echo "frames/frame-reference-$lcfmt-$size-alpha0.bin" + alpha=0 ;; *) - echo "frames/frame-reference-$lcfmt-$size.bin" + alpha=255 ;; esac + + $(format_v4l2_is_yuv $format) && options="$options -y" + + $genimage -f $format -s $size -a $alpha $options -o $file \ + frames/frame-reference-1024x768.pnm } # ------------------------------------------------------------------------------ @@ -105,8 +113,9 @@ execute() { input) rpf=rpf.$index size=$(vsp1_entity_get_size $rpf 0) + file=${rpf}.bin - file=$(frame_reference $infmt $size) + generate_input_frame $file $infmt $size if [ "x$options" = xinfinite ] ; then $yavta -c -n 4 -f $infmt -s $size --file=$file $options \ @@ -115,6 +124,8 @@ execute() { $yavta -c10 -n 4 -f $infmt -s $size --file=$file $options \ `$mediactl -d $mdev -e "$dev $rpf input"` fi + + rm -f $file ;; output) -- 2.20.1