QCI Driver

  

For the purpose of this document, the QCI intent is the primary classification driver, along with the priority level. The secondary elements, such as priority, delay budget and loss tolerance allow for better refinement of the relative classifications of the QCIs. The Chairperson, QCI is a non-executive head of the organization and Chairs the Governing Council and the Governing Body of QCI (details mentioned in clause 2.1 of S & F Manual). Secretary General. The Secretary General shall act as the Member Secretary of the Society as per the provision of the Societies Registration Act. QCI has grown steadily and quietly by following a simple mission: We help our clients use technology to succeed. To accomplish our mission, QCI attracts the best people, partners with great vendors, and delivers exceptional value to our clients.

Custom Software Solutions

Delivering a complete solution to your organization.

The QCI Application Development Center is dedicated to developing complete software systems that allow our clients to manage and grow their organizations.

More than Technology. Understanding.

Our approach is unique. We see technology as a means to an objective. The projects that have the most impact on your organization have a technology component. QCI has the expertise AND the business skills to put technology to work for you.

QCI has the resources that will help you succeed. Experience the QCI difference today!

Qsi Drivers

Custom Software

Most organizations have had experiences with technology projects that run significantly over budget and beyond the promised delivery date. Our capabilities allow us to work with you in a manner that is fundamentally different from other firms. We rely on fixed price no change order engagements to ensure our projects are completed on budget and on time. This makes us unique.

Stand-alone off the shelf software alone rarely provides the best solution. The QCI Application Development Center develops custom systems. Every system we implement is carefully tailored to meet the unique needs of our clients.

The QCI Application Development Center is composed of a group of system development experts who, on an annual basis, provide over 120,000 hours of software development services.

We work in a team environment ensuring projects are executed in a timely and cost-effective manner. Our developers have worked together for over 15 years and remain available to support and enhance the systems we build.

Qc drivers

Our approach starts with developing a deep understanding of your situation and objectives – we take full responsibility for this step. At QCI, we will never tell you the project costs will increase because you did not accurately communicate the requirements.

QCI developers work with a wide variety of technologies to build quality software. Technologies commonly used in the applications we develop include:

  • .NET
  • React
  • Python
  • AWS
  • Java
  • PHP
  • JavaScript
  • Xamarin
  • Azure
  • Angular
  • Scala
  • Swift
  • Google Cloud
  • jQuery
  • Kendo
  • C#
  • Apple News Format (ANF)

Mobile Application Development

We develop enterprise class mobile applications.

Our focus is on performance, functionality, security, disconnected scenarios, and user experience. We will drive your mobile project from conception to development, testing, building, distributing, and monitoring.

We develop native applications for Android, iOS, and Windows devices. The development platforms we utilize include:

  • Xamarin
  • Ionic
  • React Native
  • Unity

Big Data

QCI will help you with your data needs. We support projects involving business intelligence, reporting, analytics, ETL, database design, performance tuning, and Big Data. Some of the of the technologies we use to help our clients implement data solutions are:

  • BusinessObjects
  • SSIS
  • Talend
  • SQL Server
  • Access
  • MongoDB
  • SSRS
  • Informatica
  • Tableau
  • Oracle
  • MySQL
  • Cosmos DB
  • SSAS
  • DataStage
  • Cognos
  • DB2
  • PostgreSQL
  • Hadoop

CI/CD/Automation

The QCI Application Development Center supports various Continuous Integration (CI), Continuous Deployment (CD), and Automation tools, services, and platforms:

  • Jenkins
  • Fastlane
  • Drone
  • Bitbucket Pipelines
QCI

Content Management Systems

We support several Content Management Systems (CMS) to allow easy editing and management of your web content, including:

  • Wordpress
  • Drupal
  • Joomla
  • Kentico CMS
  • Siteleaf
  • Grav
  • Shopify

Cloud Solutions

Utilizing cloud environments can provide tremendous economic and system performance benefits.

Migrating to the cloud or developing cloud applications adds a level of system complexity. There are many cloud options from which to select, and cloud service providers make the process of evaluating options confusing for anyone not working in this area every day. We will help you understand your cloud options to support the selection of the best service for your situation.

We design, architect, build, and deploy cloud solutions across several platforms:

AWS

Our Application Development Center supports a wide variety of AWS features and services: EC2, RDS, S3, CloudFront, VPC, SNS, Elastic Beanstalk, Lambda, Auto Scaling, IAM, and more.

Azure

The QCI Application Development Center also supports Azure: Media Services, SQL Database, Cloud Hosting, Application Insights, and more.

Google Cloud

In addition to our AWS and Azure services, we also provide broad support for the Google Cloud Platform.

We can architect your new system for the cloud and we can migrate your existing systems to a new cloud environment.

Focused Business Systems

We have been CFOs, Controllers, and Accountants. We understand your perspective.

  • Enterprise Resource Planning (ERP)
  • Warehouse Management Systems (WMS)
  • Material Requirements Planning (MRP)
  • Manufacturing Resource Planning (MRP II)
  • Customer Relationship Management (CRM)
  • Demand Planning/Forecasting Systems
  • Field Service Applications
  • Job Cost Management Systems
  • Complex Integration Development

Our approach, which is fundamentally different from other firms, demonstrates our expertise. Our approach has supported our success.

Most organizations have experienced bait and switch software projects where the actual costs, driven by hours of effort, are substantially greater than what was estimated. Firms that propose supporting your project using an hourly rate are shifting the risk to you, and they are signaling their lack of confidence/expertise/experience.

We take responsibility for learning the detailed requirements that drive system decisions – this is not the same as getting a basic understanding of your organization.

With our resulting detailed understanding of your organization, combined with our expertise and experience, we set a fixed – no change order price. We shift the cost risk to QCI by structuring relationships that don't allow for our clients to experience cost overruns.

Organizations depend on their core business systems to support their quote-to-cash processes. This drives bottom line value. Stand-alone off the shelf software alone rarely provides the best solution. The best solution that goes beyond an off-the-shelf ERP, CRM MRP or WMS system. Because of our deep expertise and our approach you do not have to be constrained by a software package.

Working as a team, we have supported our clients for over 20 years. We use our deep understanding of your business to support you into the future.

Ready to see what QCI can do for you?

Get In Touch

Or call (515) 440-4960

Author: Robert Jarzmik <robert.jarzmik@free.fr>

24.1. Constraints¶

  1. Image size for YUV422P formatAll YUV422P images are enforced to have width x height % 16 = 0.This is due to DMA constraints, which transfers only planes of 8 bytemultiples.

24.2. Global video workflow¶

  1. QCI stoppedInitialy, the QCI interface is stopped.When a buffer is queued (pxa_videobuf_ops->buf_queue), the QCI starts.

  2. QCI startedMore buffers can be queued while the QCI is started without halting thecapture. The new buffers are “appended” at the tail of the DMA chain, andsmoothly captured one frame after the other.

    Once a buffer is filled in the QCI interface, it is marked as “DONE” andremoved from the active buffers list. It can be then requeud or dequeued byuserland application.

    Once the last buffer is filled in, the QCI interface stops.

  3. Capture global finite state machine schema

24.3. DMA usage¶

  1. DMA flow
    • first buffer queued for captureOnce a first buffer is queued for capture, the QCI is started, but datatransfer is not started. On “End Of Frame” interrupt, the irq handlerstarts the DMA chain.
    • capture of one videobufferThe DMA chain starts transferring data into videobuffer RAM pages.When all pages are transferred, the DMA irq is raised on “ENDINTR” status
    • finishing one videobufferThe DMA irq handler marks the videobuffer as “done”, and removes it fromthe active running queueMeanwhile, the next videobuffer (if there is one), is transferred by DMA
    • finishing the last videobufferOn the DMA irq of the last videobuffer, the QCI is stopped.
  2. DMA prepared buffer will have this structure

This structure is pointed by dma->sg_cpu.The descriptors are used as follows:

  • desc-sg[i]: i-th descriptor, transferring the i-th sgelement to the video buffer scatter gather
  • finisher: has ddadr=DADDR_STOP, dcmd=ENDIRQEN
  • linker: has ddadr= desc-sg[0] of next video buffer, dcmd=0

For the next schema, let’s assume d0=desc-sg[0] .. dN=desc-sg[N],“f” stands for finisher and “l” for linker.A typical running chain is :

After the chaining is finished, the chain looks like :

  1. DMA hot chaining timeslice issue

As DMA chaining is done while DMA _is_ running, the linking may be donewhile the DMA jumps from one Videobuffer to another. On the schema, thatwould be a problem if the following sequence is encountered :

  • DMA chain is Videobuffer1 + Videobuffer2
  • pxa_videobuf_queue() is called to queue Videobuffer3
  • DMA controller finishes Videobuffer2, and DMA stops
  • pxa_dma_add_tail_buf() is called, the Videobuffer2 “finisher” isreplaced by a “linker” to Videobuffer3 (creation of new_link)
  • pxa_videobuf_queue() finishes
  • the DMA irq handler is called, which terminates Videobuffer2
  • Videobuffer3 capture is not scheduled on DMA chain (as it stopped !!!)

Qc Drivers

  • pxa_camera_check_link_miss() is calledThis checks if the DMA is finished and a buffer is still on thepcdev->capture list. If that’s the case, the capture will be restarted,and Videobuffer3 is scheduled on DMA chain.
  • the DMA irq handler finishes

Note

If DMA stops just after pxa_camera_check_link_miss() reads DDADR()value, we have the guarantee that the DMA irq handler will be called backwhen the DMA will finish the buffer, and pxa_camera_check_link_miss() willbe called again, to reschedule Videobuffer3.