Hi, I wanted to directly sent the qemu binaries for test, but it seems too big, so I attach the patch for qemu about the feature, to help validate the seabios patch.
With the patched qemu compiled: Alternate the bios.bin that qemu used to the patched, put the logo picture in the pc-bios folder or other place, invoker it as following: qemu-system-x86_64 -boot splash_time=<N>,splash_filename=<N> Time unit is ms. Default splash picture is bootsplash.bmp stored in the directory where bios.bin stay. eg: qemu-system-x86_64 -boot splash_time=20000,splash_filename=/home/xiawenc/bootsplash.bmp qemu in 32bit mode could be applied also.
limitation: jpeg decoder have its limitation, it only accept jpg file with width=16*N, height=16*N. Strange thing is for some picture it have a good visual effect, while some with observable quality loss. bmp decoder only accept 24bpp file, with a resolution that a VESA mode could support. Recommended is 640x480(mostly used).
note: It seems the latest qemu code from git have some problem in compiling and its TCG. If this problem still exist when u get it, following could solve it: git reset --hard f44c99607a46484c52f03aed373e3a3a194af721 invoke it with option --enable-kvm, to bypass TCG.
If you get a better method to share the testing binaries, pls let me know. Feel free to put any comments.
Best Regards
Wayne Xia mail:xiawenc@linux.vnet.ibm.com tel:86-010-82450803
On 06/27/2011 12:33 AM, Wayne Xia wrote:
limitation: jpeg decoder have its limitation, it only accept jpg file with width=16*N, height=16*N. Strange thing is for some picture it have a good visual effect, while some with observable quality loss. bmp decoder only accept 24bpp file, with a resolution that a VESA mode could support. Recommended is 640x480(mostly used).
BMPs are notoriously bloated. Wouldn't it make sense to have a format with at least a modicum of compression? Odds are it would make a smaller image even with the extra code for the decompressor.
-hpa
于 2011-6-28 5:35, H. Peter Anvin 写道:
On 06/27/2011 12:33 AM, Wayne Xia wrote:
limitation: jpeg decoder have its limitation, it only accept jpg file with width=16*N, height=16*N. Strange thing is for some picture it have a good visual effect, while some with observable quality loss. bmp decoder only accept 24bpp file, with a resolution that a VESA mode could support. Recommended is 640x480(mostly used).
BMPs are notoriously bloated. Wouldn't it make sense to have a format with at least a modicum of compression? Odds are it would make a smaller image even with the extra code for the decompressor.
Yeah, BMP have a big size, but it would not lose quality of the image. So I'd like to make BMP decoder an option for seabios. If the user want to pass an image with compression, I think the old jpeg decoder was good enough. In my test, some jpeg picture have an observable quality lose after decoding, So I think in this situation user could pass a BMP file instead of jpeg file, it is a simple solution. I think this logo showing ability would be enabled only in following situation: The user want to show his brand picture to their customers, then he invoke the qemu with an option, then qemu tell seabios to show it. So in this case, I assume that the user did not require the virtual machine boot up as fast as it could, so the BMP file size would not be a problem. Anyway, in my test the time to transfer BMP file seems to be less than 1 second.
-hpa
On 06/27/2011 08:40 PM, Wayne Xia wrote:
Yeah, BMP have a big size, but it would not lose quality of the
image. So I'd like to make BMP decoder an option for seabios. If the user want to pass an image with compression, I think the old jpeg decoder was good enough. In my test, some jpeg picture have an observable quality lose after decoding, So I think in this situation user could pass a BMP file instead of jpeg file, it is a simple solution.
Ever heard of lossless compression?
-hpa
于 2011-6-28 13:21, H. Peter Anvin 写道:
On 06/27/2011 08:40 PM, Wayne Xia wrote:
Yeah, BMP have a big size, but it would not lose quality of the
image. So I'd like to make BMP decoder an option for seabios. If the user want to pass an image with compression, I think the old jpeg decoder was good enough. In my test, some jpeg picture have an observable quality lose after decoding, So I think in this situation user could pass a BMP file instead of jpeg file, it is a simple solution.
Ever heard of lossless compression?
-hpa
Well there are, as you said with extra code for the decompressor, I agree that it was a good method to pass image data. My opinion is that showing the logo is a non-significant part of seabios, and the BMP method is a simple way to achieve the goal. So in this way it would save some effort, and also some binary space for the 128K rom size, which currently have been used about 88%.
On Mon, Jun 27, 2011 at 10:21:18PM -0700, H. Peter Anvin wrote:
On 06/27/2011 08:40 PM, Wayne Xia wrote:
Yeah, BMP have a big size, but it would not lose quality of the
image. So I'd like to make BMP decoder an option for seabios. If the user want to pass an image with compression, I think the old jpeg decoder was good enough. In my test, some jpeg picture have an observable quality lose after decoding, So I think in this situation user could pass a BMP file instead of jpeg file, it is a simple solution.
Ever heard of lossless compression?
SeaBIOS has an lzma decompressor, so on coreboot, one could pass in a lzma compressed bmp (or jpeg). The decompressor isn't hooked up in qemu/kvm - it wouldn't be hard to do that, but I don't see it getting much use.
-Kevin