[
    {
        "id": "fink-2013-gvp",
        "type_id": "masterthesis",
        "tu_id": null,
        "repositum_id": null,
        "title": "GPU-based Video Processing in the Context of TV Broadcasting",
        "date": "2013-09",
        "abstract": "This thesis investigates GPU-based video processing in the context of a graphics system for live TV broadcasting. Upcoming TV standards like UHD-1 result in much higher data rates than existing formats. Processing such data rates while satisfying the real-time requirement of live TV poses a particular challenge for the implementation of a software-based broadcast graphics system. In order to reach the required data rates, the software needs to process image data concurrently on the central processing unit (CPU) and graphics processing unit (GPU) of the machine. In particular, the transfers of image data between main and graphics memory need to be overlapped with CPU-based and GPU-based executions in order to maximize data throughput. In this thesis, we therefore investigate the following questions: Which methods are available to a software implementation in order to reach this level of parallelism? Which data rates can actually be reached using these methods?\r\nIn order to answer these questions, we implement a prototype of a software for rendering TV graphics. To take advantage of the GPU’s ability to efficiently process image data, we use the OpenGL application programming interface (API). We use advanced methods of OpenGL programming to render high-quality video and increase the level of employed parallelism of the GPU. We implement the transcoding between RGB and the professional video format V210, which is more complex to process than conventional consumer-oriented image formats. In our software, we apply the pipeline programming pattern in order to distribute stages of the video processing algorithm to different threads. As a result, those stages execute concurrently on different hardware units of the system. Our prototype exposes the applied degree of concurrency to the user as a collection of different optimization settings. In order to evaluate these optimizations, we integrate a profiling mechanism directly into the execution of the pipeline. This allows us to automatically create performance profiles while running our prototype with various test scenarios. The results of this thesis are based on the analysis of these traces.\r\nOur prototype shows that the methods described in this thesis enable a software program to process high-resolution video in high quality. The results of our evaluations also show that there is no single best optimization setting for every GPU architecture. Different driver implementations and hardware features require our prototype to apply different optimization settings for each device. The ability of our software structure to dynamically change the degree of concurrency is therefore an important feature. For broadcasting software that is expected to perform well on a range of hardware devices, this is ultimately an essential feature.\r\n",
        "authors_et_al": false,
        "substitute": null,
        "main_image": {
            "description": "",
            "filetitle": "",
            "main_file": false,
            "use_in_gallery": true,
            "access": "public",
            "image_width": 1086,
            "image_height": 397,
            "name": "fink-2013-gvp-.png",
            "type": "image/png",
            "size": 647989,
            "path": "Publication:fink-2013-gvp",
            "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-.png",
            "thumb_image_sizes": [
                16,
                64,
                100,
                175,
                300,
                600
            ],
            "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-:thumb{{size}}.png"
        },
        "sync_repositum_override": null,
        "repositum_presentation_id": null,
        "authors": [
            1001
        ],
        "supervisor": [
            193
        ],
        "research_areas": [],
        "keywords": [
            "transfer",
            "rendering",
            "video processing",
            "concurrency",
            "OpenGL"
        ],
        "weblinks": [],
        "files": [
            {
                "description": "",
                "filetitle": "",
                "main_file": false,
                "use_in_gallery": true,
                "access": "public",
                "image_width": 1086,
                "image_height": 397,
                "name": "fink-2013-gvp-.png",
                "type": "image/png",
                "size": 647989,
                "path": "Publication:fink-2013-gvp",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-.png",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-:thumb{{size}}.png"
            },
            {
                "description": "Poster of thesis",
                "filetitle": "poster",
                "main_file": true,
                "use_in_gallery": false,
                "access": "public",
                "name": "fink-2013-gvp-poster.pdf",
                "type": "application/pdf",
                "size": 2726705,
                "path": "Publication:fink-2013-gvp",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-poster.pdf",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-poster:thumb{{size}}.png"
            },
            {
                "description": "PDF of submitted thesis.",
                "filetitle": "thesis",
                "main_file": true,
                "use_in_gallery": false,
                "access": "public",
                "name": "fink-2013-gvp-thesis.pdf",
                "type": "application/pdf",
                "size": 12153165,
                "path": "Publication:fink-2013-gvp",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-thesis.pdf",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/fink-2013-gvp-thesis:thumb{{size}}.png"
            }
        ],
        "projects_workgroups": [
            "rend"
        ],
        "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-gvp/",
        "__class": "Publication"
    },
    {
        "id": "fink-2013-cag",
        "type_id": "journalpaper_notalk",
        "tu_id": null,
        "repositum_id": null,
        "title": "Teaching a Modern Graphics Pipeline Using a Shader-based Software Renderer",
        "date": "2013-02",
        "abstract": "This paper presents the syllabus for an introductory computer graphics course that emphasizes the use of programmable shaders while teaching raster-level algorithms at the same time. We describe a Java-based framework that is used for programming assignments in this course. This framework implements a shader-enabled software renderer and an interactive 3D editor. Teaching shader programming in concert with the low-level graphics pipeline makes it easier for our students to learn modern OpenGL with shaders in our follow-up intermediate course. We also show how to create attractive course material by using COLLADA, an open standard for 3D content exchange, and our approach to organizing the practical course.",
        "authors_et_al": false,
        "substitute": null,
        "main_image": {
            "description": "The editor of the course framework.",
            "filetitle": "editor",
            "main_file": false,
            "use_in_gallery": true,
            "access": "public",
            "image_width": 886,
            "image_height": 728,
            "name": "fink-2013-cag-editor.png",
            "type": "image/png",
            "size": 261474,
            "path": "Publication:fink-2013-cag",
            "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-editor.png",
            "thumb_image_sizes": [
                16,
                64,
                100,
                175,
                300,
                600
            ],
            "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-editor:thumb{{size}}.png"
        },
        "sync_repositum_override": null,
        "repositum_presentation_id": null,
        "authors": [
            1001,
            743,
            193
        ],
        "issn": "0097-8493",
        "journal": "Computers & Graphics",
        "number": "1--2",
        "pages_from": "12",
        "pages_to": "20",
        "volume": "37",
        "research_areas": [],
        "keywords": [
            "teaching",
            "programmable shading",
            "CG education",
            "course organization",
            "COLLADA"
        ],
        "weblinks": [
            {
                "href": "http://dx.doi.org/10.1016/j.cag.2012.10.005",
                "caption": null,
                "description": null,
                "main_file": 0
            }
        ],
        "files": [
            {
                "description": "The editor of the course framework.",
                "filetitle": "editor",
                "main_file": false,
                "use_in_gallery": true,
                "access": "public",
                "image_width": 886,
                "image_height": 728,
                "name": "fink-2013-cag-editor.png",
                "type": "image/png",
                "size": 261474,
                "path": "Publication:fink-2013-cag",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-editor.png",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-editor:thumb{{size}}.png"
            },
            {
                "description": "Preprint of the journal article.",
                "filetitle": "preprint",
                "main_file": true,
                "use_in_gallery": false,
                "access": "public",
                "name": "fink-2013-cag-preprint.pdf",
                "type": "application/pdf",
                "size": 1053265,
                "path": "Publication:fink-2013-cag",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-preprint.pdf",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-preprint:thumb{{size}}.png"
            },
            {
                "description": "Result from the annual student competition.",
                "filetitle": "student_competition",
                "main_file": false,
                "use_in_gallery": true,
                "access": "public",
                "image_width": 1853,
                "image_height": 612,
                "name": "fink-2013-cag-student_competition.png",
                "type": "image/png",
                "size": 611574,
                "path": "Publication:fink-2013-cag",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-student_competition.png",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/fink-2013-cag-student_competition:thumb{{size}}.png"
            }
        ],
        "projects_workgroups": [
            "rend"
        ],
        "url": "https://www.cg.tuwien.ac.at/research/publications/2013/fink-2013-cag/",
        "__class": "Publication"
    },
    {
        "id": "fink-2012-cg1",
        "type_id": "inproceedings",
        "tu_id": null,
        "repositum_id": null,
        "title": "Teaching a Modern Graphics Pipeline Using a Shader-based Software Renderer",
        "date": "2012-05",
        "abstract": "Shaders are a fundamental pattern of the modern graphics pipeline. This paper presents a syllabus for an introductory computer graphics course that emphasizes the use of programmable shaders while teaching raster-level algorithms at the same time. We describe a Java-based framework that is used for programming assignments in this course. This framework implements a shader-enabled software renderer and an interactive 3D editor. We also show how to create attractive course materials by using COLLADA, an open standard for 3D content exchange.",
        "authors_et_al": false,
        "substitute": null,
        "main_image": {
            "description": "The user interface of the CG1 lab framework.",
            "filetitle": "UI",
            "main_file": false,
            "use_in_gallery": true,
            "access": "public",
            "image_width": 955,
            "image_height": 701,
            "name": "fink-2012-cg1-UI.png",
            "type": "image/png",
            "size": 274987,
            "path": "Publication:fink-2012-cg1",
            "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-UI.png",
            "thumb_image_sizes": [
                16,
                64,
                100,
                175,
                300,
                600
            ],
            "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-UI:thumb{{size}}.png"
        },
        "sync_repositum_override": null,
        "repositum_presentation_id": null,
        "authors": [
            1001,
            743,
            193
        ],
        "booktitle": "Eurographics 2012 -- Education Papers",
        "date_from": "2012-05-13",
        "date_to": "2012-05-18",
        "editor": "Giovanni Gallo and Beatriz Sousa Santos",
        "event": "Eurographics 2012",
        "issn": "1017-4656",
        "lecturer": [
            1001
        ],
        "location": "Cagliari, Italy",
        "pages_from": "73",
        "pages_to": "80",
        "publisher": "Eurographics Association",
        "research_areas": [
            "Rendering"
        ],
        "keywords": [
            "Education",
            "Collada",
            "Java",
            "Introductory Computer Graphics",
            "Software Rasterizer"
        ],
        "weblinks": [],
        "files": {
            "0": {
                "description": null,
                "filetitle": "assignment_1",
                "main_file": false,
                "use_in_gallery": false,
                "access": "public",
                "preview_image_width": 1024,
                "preview_image_height": 768,
                "name": "fink-2012-cg1-assignment_1.mov",
                "type": "video/quicktime",
                "size": 689409,
                "path": "Publication:fink-2012-cg1",
                "preview_name": "fink-2012-cg1-assignment_1:preview.png",
                "preview_type": "image/jpeg",
                "preview_size": 26946,
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_1.mov",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_1:thumb{{size}}.png",
                "video_mp4": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_1:video.mp4"
            },
            "1": {
                "description": null,
                "filetitle": "assignment_2",
                "main_file": false,
                "use_in_gallery": false,
                "access": "public",
                "preview_image_width": 1024,
                "preview_image_height": 768,
                "name": "fink-2012-cg1-assignment_2.mov",
                "type": "video/quicktime",
                "size": 20726005,
                "path": "Publication:fink-2012-cg1",
                "preview_name": "fink-2012-cg1-assignment_2:preview.png",
                "preview_type": "image/jpeg",
                "preview_size": 123736,
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_2.mov",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_2:thumb{{size}}.png",
                "video_mp4": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_2:video.mp4"
            },
            "2": {
                "description": null,
                "filetitle": "assignment_3",
                "main_file": false,
                "use_in_gallery": false,
                "access": "public",
                "preview_image_width": 1024,
                "preview_image_height": 768,
                "name": "fink-2012-cg1-assignment_3.mov",
                "type": "video/quicktime",
                "size": 67921701,
                "path": "Publication:fink-2012-cg1",
                "preview_name": "fink-2012-cg1-assignment_3:preview.png",
                "preview_type": "image/jpeg",
                "preview_size": 107525,
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_3.mov",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_3:thumb{{size}}.png",
                "video_mp4": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_3:video.mp4"
            },
            "3": {
                "description": null,
                "filetitle": "assignment_4",
                "main_file": false,
                "use_in_gallery": false,
                "access": "public",
                "preview_image_width": 1024,
                "preview_image_height": 768,
                "name": "fink-2012-cg1-assignment_4.mov",
                "type": "video/quicktime",
                "size": 10336476,
                "path": "Publication:fink-2012-cg1",
                "preview_name": "fink-2012-cg1-assignment_4:preview.png",
                "preview_type": "image/jpeg",
                "preview_size": 78709,
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_4.mov",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_4:thumb{{size}}.png",
                "video_mp4": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_4:video.mp4"
            },
            "4": {
                "description": null,
                "filetitle": "assignment_5",
                "main_file": false,
                "use_in_gallery": false,
                "access": "public",
                "preview_image_width": 1024,
                "preview_image_height": 768,
                "name": "fink-2012-cg1-assignment_5.mov",
                "type": "video/quicktime",
                "size": 10515728,
                "path": "Publication:fink-2012-cg1",
                "preview_name": "fink-2012-cg1-assignment_5:preview.png",
                "preview_type": "image/jpeg",
                "preview_size": 49602,
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_5.mov",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_5:thumb{{size}}.png",
                "video_mp4": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_5:video.mp4"
            },
            "5": {
                "description": null,
                "filetitle": "assignment_6",
                "main_file": false,
                "use_in_gallery": false,
                "access": "public",
                "preview_image_width": 1024,
                "preview_image_height": 768,
                "name": "fink-2012-cg1-assignment_6.mov",
                "type": "video/quicktime",
                "size": 30258255,
                "path": "Publication:fink-2012-cg1",
                "preview_name": "fink-2012-cg1-assignment_6:preview.png",
                "preview_type": "image/jpeg",
                "preview_size": 52755,
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_6.mov",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_6:thumb{{size}}.png",
                "video_mp4": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-assignment_6:video.mp4"
            },
            "6": {
                "description": null,
                "filetitle": "preprint",
                "main_file": true,
                "use_in_gallery": true,
                "access": "public",
                "name": "fink-2012-cg1-preprint.pdf",
                "type": "application/pdf",
                "size": 1085841,
                "path": "Publication:fink-2012-cg1",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-preprint.pdf",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-preprint:thumb{{size}}.png"
            },
            "9": {
                "description": "The user interface of the CG1 lab framework.",
                "filetitle": "UI",
                "main_file": false,
                "use_in_gallery": true,
                "access": "public",
                "image_width": 955,
                "image_height": 701,
                "name": "fink-2012-cg1-UI.png",
                "type": "image/png",
                "size": 274987,
                "path": "Publication:fink-2012-cg1",
                "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-UI.png",
                "thumb_image_sizes": [
                    16,
                    64,
                    100,
                    175,
                    300,
                    600
                ],
                "thumb_url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/fink-2012-cg1-UI:thumb{{size}}.png"
            }
        },
        "projects_workgroups": [
            "rend"
        ],
        "url": "https://www.cg.tuwien.ac.at/research/publications/2012/fink-2012-cg1/",
        "__class": "Publication"
    }
]
