Assignment title: Information
5CS014 Operating Systems and Computer Architecture.
Mini project (second assignment)
The scenario
This scenario involves a product proposal for a live video blogging/podcasting camera. The intention is to produce a video camera which can stream directly to video hosting services such as YouTube or Vimeo, allowing an economical live broadcasting facility. The camera will connect to the internet via either 4G mobile services or public WiFi, as available.
The camera will be a small hand-held unit.
The camera will be built around the Texas Instruments DM3730. This is a fixed point in the design, since the Managing Director took a shine to the TI sales rep and pre-ordered a million devices. It is now up to the rest of the company to use the features of this chip as best they can.
The camera will be based around the Google Android operating system, it is felt that Android's telephone heritage will make it a simpler matter to achieve the networking capabilities required.
There are three candidate image sensor devices for the camera, the Omnivision OV5647, The Aptina MT9P031 and the Sony IMX322. Which is most suitable will depend on the requirements specification.
The task here is based around the configuration of the operating system.
Assessment Task
Part One (common to all groups)
You should study the three camera sensor datasheets and make your recommendation about which one should be used for the final project. Your recommendation should be produced in a two-page document. You should consider at least the following issues:
1. The video formats that are likely to be most popular on YouTube (or any other services that you choose). This should be based not only on YouTube recommendations, but also on your own research concerning YouTube usage with respect to recent content, that is, which formats appear to be most popular with content providers and service users.
2. The extent to which the camera chips, when used with the DM3730 will provide the popular formats that you have identified above. You should include a discussion on what the camera chip can output natively, and whether that output can be rescaled by the DM3730.
You will be assessed both on the technical content of the document and on the suitability of presentation and content as executive advice within a company context.
This part of the assessment will contribute 20 marks of the total 50.
Part Two (dependent on course group)
The next part of the assessment depends on which course you are registered on. It will contribute 30 marks out of the total 50 for this mini-project.
CS, CS(SE) and CSE
You will be provided with a V4L2 device driver for the MT9P031 camera chip. Your task is to modify this driver to operate the Omnivision OV5647 camera chip (which is used in the Raspberry Pi camera). You should provide detailed comments in the code describing the modifications that you have made and the reasons for doing so. (Note: there are OV5647 drivers available on the web, so simply submitting one of those will qualify you for academic misconduct charges rather than marks – we are looking for drivers which have been modified from the provided original, with clear comments – the comments will be awarded as many marks as the code).
You should ensure that your driver is correct C (this is, it compiles using the gcc compiler).
We hope to have sufficient Raspberry Pis with cameras available to allow those who successfully compile their drivers the opportunity to test out their drivers, though this will not be assessed.
You should submit:
Your document for Part One.
Your final program text for Part Two, including both .c and .h files, as appropriate.
Screen grabs of your best (i.e. fewest syntax errors) compilation run for the program.
Computing, IT, IT(S)
You are now required to produce a full requirements specification for the project to develop the device driver system for the selected camera sensor chip, within the Android OS (Linux kernel). The specification will be produced using the given template. This is a generic template, so not all sections will be applicable to this project, in which case they should simply be entered as 'N/A' for 'not applicable' – appropriate decisions as to which parts are 'not applicable' forms part of the assessment. In developing this specification, you will require to select which of the two Android video frameworks will be used, and then define the precise development tasks that will be needed. This is the document that the programmers in the company will be working to, so it needs to be as precisely defined as possible. There may be parts of the document where you have to make a specific decision with respect to the detailed specification of the product or the development route that should be taken. The template gives detailed advice on what should be included, but bear in mind that this specification relates only to the operating system modifications required, not the whole product.
You should submit:
Your document for Part One.
Your completed requirements specification as a .pdf file (we are looking for a professional level final presentation – no Word files, please).
Erasmus students may elect to do either task.
Marks calculation.
Due to different groups undertaking different work, the marks for this assignment will be normalised. After the initial marking, the marks for Part One will be used to estimate cohort performance between students registered on different course groups. The marks for Part Two will be normalised so that the mark average and spread is the same within each cohort as that indicated by the analysis of Part One marks.